From 9d8668320fa1c3649b9945d487f68c3a66675b9b Mon Sep 17 00:00:00 2001 From: Sébastien Dailly Date: Wed, 25 Mar 2015 15:28:55 +0100 Subject: Update article --- content/Informatique/sailfish.rst | 143 ++++++++++++++++++++++++++------------ 1 file changed, 99 insertions(+), 44 deletions(-) mode change 100644 => 100755 content/Informatique/sailfish.rst diff --git a/content/Informatique/sailfish.rst b/content/Informatique/sailfish.rst old mode 100644 new mode 100755 index 2a88cc9..18593e6 --- a/content/Informatique/sailfish.rst +++ b/content/Informatique/sailfish.rst @@ -7,31 +7,28 @@ Développement d'application pour Sailfish OS :date: 2015-12-31 :tags: Libre, Programmation -:summary: |summary| :logo: /images/sailfish/sailfish.jpg +:summary: Petite revue du développement et de la sécurité du système + d'exploitation Sailfish, suite à la diffusion de ma première + application. .. figure:: {filename}/images/sailfish/sailfish.jpg :figwidth: 150 :figclass: floatleft - :alt: Goban + :alt: Logo de sailfish OS -|summary| -.. |summary| replace:: - J'ai publié cette semaine ma première application pour Sailfish OS. Il - s'agit du système qui tourne sur les téléphones Jolla. Ce petit jeu permet - de charger des problèmes de go déjà préparés, pour ensuite les tester et - rechercher la solution. - -La première version a été publiée sur le site openrepos.net_ la semaine -dernière, pour la première version du jeu avec les fonctionnalités que je -souhaitais. +J'ai publié cette semaine ma première application pour Sailfish OS. Il s'agit +du système qui tourne sur les téléphones Jolla. Ce petit jeu permet de charger +des problèmes de go déjà préparés, pour ensuite les tester et rechercher la +solution. La première version a été publiée sur le site openrepos.net_ la +semaine dernière, pour la première version du jeu avec les fonctionnalités que +je souhaitais. C'est l'occasion de faire une petite revue du développement pour +Sailfish OS. .. _openrepos.net: https://openrepos.net/content/chimrod/tsumego -C'est l'occasion de faire une petite revue du développement pour Sailfish Os. - Présentation ============ @@ -67,22 +64,27 @@ Le développement se fait donc en QML, et un binding python est également dispo Des exemples sont fournis, permettant de lancer quelques applications, -principalement en QML et javascript. La partie C++ est limitée au lancement de +principalement en QML et javascript ; la partie C++ est limitée au lancement de l'application. -Des incohérences sont autorisées par l'éditeur et le compilateur dans -l'agencement des composants — par exemple il est possible de mettre un +On peut remarquer des incohérences autorisées par l'éditeur et le compilateur +dans l'agencement des composants — par exemple il est possible de mettre un composant « page » dans un autre composant « page » ce qui provoque des erreurs à l'affichage ou dans le comportement. Quand on a pris l'habitude des langages fortement typés où le compilateur bloque tout programme mal structuré, ça -agace… +agace… Il s'agit d'un problème dans l'éditeur Qt Creator et non sur le système +mais pour un développeur qui ne connaît pas, ce genre de problème met du temps +avant d'être compris et résolu. La documentation ---------------- La documentation ne couvre que la partie composant graphique de QML. Les composants propres au système Sailfish OS sont bien décrits et l'aide est -intégrée à Qt Creator sans qu'il soit nécessaire d'aller chercher sur le net. +intégrée à Qt Creator sans qu'il soit nécessaire d'aller chercher sur le net +(la documentation autrefois disponible en ligne a été retirée lors de la +dernière diffusion de l'environnement de développement ; on trouve donc de +nombreux liens qui pointent désormais inaccessibles… ) Par contre, le fonctionnement des binding python (par exemple) n'est pas couvert, et il est nécessaire de parcourir le code des autres projets pour @@ -99,6 +101,27 @@ La compilation Il n'y a donc aucune difficulté pour tester packager, diffuser une application. +Bilan +----- + +Je n'ai eu aucun problème à installer et lancer l'environnement de +développement. Tout fonctionne correctement dès l'installation sans rien avoir +à configurer. + +Les technologies utilisées sont plutôt bien choisies (au moins pour quelqu'un +qui a déjà son PC sous linux), et actuelles. Je pense que le pari d'avoir +choisi Qt est gagnant, autant pour l'équipe de développement du système, qui +dispose déjà d'un environnement bien construit que pour le développeur +d'application qui trouve facilement de la documentation pour son besoin. + +L'émulateur tourne dans une image virtualbox. Il est possible de se connecter à +la machine via ssh, ce qui permet d'accéder au système, il n'y a pas de +limitation d'accès et il est possible d'être root comme sur le téléphone. + +Sur mon poste, l'environnement est beaucoup plus lent que le téléphone, il est +parfois nécessaire d'attendre un moment avant de charger une page et qu'une +animation se termine. + La sécurité =========== @@ -112,7 +135,10 @@ La sécurité .. _David Goehring: https://www.flickr.com/photos/carbonnyc/2294144289 .. _creativecommons: https://creativecommons.org/licenses/by/2.0/ -Oups ! Contrairement à un système android, dans lequel les applications +Gestion de droits +----------------- + +**Oups !** Contrairement à un système android, dans lequel les applications affichent les droits qu'elles requirent (avec plus ou moins de succès bien sûr), ici rien de tout ça : le développeur est maître à bord de son application, et celle-ci tourne avec les droits de l'utilisateur en disposant @@ -120,27 +146,56 @@ pleinement du système. On dispose donc d'un accès à l'ensemble des fichiers, aux connexions réseaux etc. Ça rend le développement bien sûr plus facile, mais ça signifie qu'il faut -rester vigileant quand on télécharge une nouvelle application. - -Bilan -===== - -Je n'ai eu aucun problème à installer et lancer l'environnement de -développement. Tout fonctionne correctement dès l'installation sans rien avoir -à configurer. - -Les technologies utilisées sont plutôt bien choisies (au moins pour quelqu'un -qui a déjà son PC sous linux), et vraiment actuelles. Je pense que le pari -d'avoir choisi Qt est gagnant, autant pour l'équipe de développement du -système, qui dispose déjà d'un environnement bien construit que pour le -développeur d'application qui trouve facilement de la documentation pour son -besoin. - -L'émulateur tourne dans une image virtualbox. Il est possible de se connecter à -la machine via ssh, ce qui permet d'accéder au système, il n'y a pas de -limitation d'accès et il est possible d'être root comme sur le téléphone. - -Sur mon poste, l'environnement est beaucoup plus lent que le téléphone, il est -parfois nécessaire d'attendre un moment avant de charger une page et qu'une -animation se termine. - +rester vigileant quand on télécharge une nouvelle application. En fait le +comportement est identique à la situation que l'on peut rencontrer sur son +poste d'utilisateur : l'utilisateur installe ce qu'il veut sur son ordinateur, +et ce qu'il installe relève de sa responsabilité… + +Pour l'instant, une grosse partie de la sécurité repose sur la faible +utilisation du système, mais à terme, le problème risque de prendre de plus en +plus d'importance… + +La diffusion +------------ + +Il n'est pas difficile de diffuser son application une fois prête. Le site +openrepos permet facilement d'ouvrir un compte et fournir un espace pour +envoyer ses applications. Du côté utilisateur, il suffit d'activer le compte du +développeur pour pouvoir installer l'ensemble de ses applications. + +Par contre, le *open* du nom indique juste que le site est ouvert à tout le +monde : aucune obligation de diffuser son code source (ni même aucune garantie +que le code que l'on télécharge correspond à celui affiché…). Cela veut donc +dire qu'il faut être prudent lorsqu'on télécharge une application. Pour +l'instant je n'ai pas entendu parler de compte diffusant des malwares (la +faible part de marchés des téléphones jolla doit aider), mais c'est un gros +avertissement pour l'ensemble des utilisateurs. + +.. admonition:: Bémol + + Il faut quand même avoir autorisé l'installation d'applications depuis des + dépôts tiers pour pouvoir installer les applications depuis ce catalogue. + + (mais qui aujourd'hui n'a jamais installé une application + depuis un catalogue non officiel ?) + +Quelles solutions ? +------------------- + +La sécurité est une affaire de contraintes et de confiance. Contrainte pour +garantir qu'une application ne sort pas du cadre qui lui a été accordée, et +confiance de l'utilisateur vers l'application qu'il utilise (ou vers la chaîne +qui relie l'application au développeur). Pour l'instant aucun des deux points +n'est satisfaisant. + +Pour autant, il n'existe pas de solution parfaite : les droits accordés aux +applications android n'empêchent pas la diffusion de malwares sur le système, +et les développeurs échangent avec les utilisateurs sur les `forums de maemo`_, +ce qui permet de garder une proximité. + +.. _forums de maemo: http://talk.maemo.org/forumdisplay.php?f=52 + +Tout ça pour dire que cette solution n'est peut être pas viable à grande +échelle, mais elle n'est pas non plus catastrophique *pour l'instant*. Pour +autant je n'ai pas vu de discussions qui vont dans le sens de mettre en place +davantage de contrôles sur les applications sur les catalogues d'applications. -- cgit v1.2.3