Smartphones Linux : le point du dev

Un petit point sur le hardware et le software disponibles pour un développeur libre qui voudrait utiliser un smartphone et développer dessus.

Il existe trois plateformes basées sur Linux (je n’écris volontairement pas GNU/Linux car si Android utilise bien le noyau Linux, il n’utilise pas pour autant les outils GNU) :

Maemo :

Maemo est censé, chez Nokia, remplacer Symbian qui est dépassé technologiquement pour les nouveaux usages mobiles. Après avoir été expérimenté (trop) longuement (depuis 2005 !) sur les tablettes N770, N800 et N810, il est enfin disponible sur un téléphone : le N900, depuis novembre 2009.

Or, si le N900 est disponible, il utilise la plateforme Maemo 5 qui va disparaitre et aucun smartphone n’est disponible sous Maemo 6. Je ne lancerai donc pas une énième fois le troll GTK (Maemo 5) vs Qt (Maemo 6) qui n’a juste pas lieu d’être : Maemo n’est pas dans la course. Et à la vitesse où va cette course, il ne parviendra peut-être jamais à y rentrer.

Je ne m’étendrai pas sur Maemo car je veux à la fois développer des applications  que je puisse  tester,  et que d’autres puissent utiliser, et il faut pour cela pouvoir se procurer un smartphone adapté, et ne pas m’investir dans une plateforme en fin de vie. De plus, le fait que Maemo utilise Xorg le rend techniquement contestable, tant la complexité et la lourdeur inhérentes à X11 sont malvenues sur un smartphone.

Android :

Du côté d’Android c’est une toute autre histoire. Des smartphones sont disponibles depuis octobre 2008 aux États-Unis et mars 2009 en France. Au niveau commercial c’est déjà une grande réussite : Android est la plateforme qui progresse le plus et s’est imposé en un an comme le principal (le seul ?) challenger de l’iPhone (voir les statistiques d’AdMob pour plus de détails).

D’un point de vue technique, Android fournit un SDK basé sur le langage de programmation Java. Cependant, il ne repose pas sur la JVM de Sun, mais sur Dalvik, une machine virtuelle à registres (comme Parrot) spécialement développée pour les contraintes hardware (mémoire faible, processeur peu puissant…) de l’embarqué. Dalvik est à ma connaissance la seule machine virtuelle à registres qui soit un succès industriel, face à la masse des machines virtuelles à pile (JVM de Sun, CLR de Microsoft…).

Mais que peut-on faire si on ne veut pas programmer en Java ? Les développeurs ont souvent un langage de programmation favori, qu’ils ont peu ou pas envie d’abandonner ; dans mon cas c’est PythonOn pense alors naturellement aux implémentations des langages écrites en Java, Jython pour Python ; mais si elles fonctionnent sur la JVM de Sun, ce n’est pas forcément le cas pas sur Dalvik ! Heureusement, Google a pensé à nous avec ASE, l’Android Scripting Environment, qui permet d’utiliser l’ensemble des API Android à partir de différents langages interprétés, et le choix est vraiment grand : Python, Lua, Perl, Ruby, JavaScript, BeanShell et même shell !!

Tous les langages ne sont pas égaux devant ASE. Les langages natifs, c’est-à-dire écrits en Java, comme Ruby basé sur JRuby, JavaScript basé sur Rhino ou encore BeanShell, peuvent théoriquement accéder directement aux API Java natives, alors que les langages « cross-compilés », comme Python (basé sur CPython) ou Lua qui sont écrits en C, ne peuvent procéder que par des appels JSON RPC. C’est cependant cette dernière méthode qui semble conseillée quel que soit le langage utilisé.

Je suis donc maintenant motivé pour me lancer dans l’aventure Android, d’autant que Google vient d’anoncer, lors d’une conférence de presse le 5 janvier, le lancement de son premier smartphone : le Nexus One fabriqué par HTC. C’est tout simplement une « bête de course » du point de vue hardware : processeur à 1 Ghz, 512 Mo de RAM et un écran 3,7″ d’une résolution de 480*800 (pour rappel l’iPhone 3GS fonctionne à 600 Mhz avec 256 Mo de RAM et un écran 3,5″ en 320*480) !!! La disponibilité du Nexus One en France est prévue pour le mois de mars.

J’hésite cependant encore avec le Motorola Milestone, qui a lui l’avantage d’être déjà disponible et de posséder un clavier physique, ce qui pourrait se révéler bien pratique pour des sessions d’administration de machines par SSH, avec le terminal en plein écran !

webOS :

Il y a un an, lors du CES de janvier 2009, Palm avait créé l’évènement avec l’annonce du Palm Pré et de son nouveau système d’exploitation : webOS. Les critiques avaient été très élogieuses et l’on a même pensé que l’on tenait là le principal concurrent de l’iPhone. En effet, webOS est le seul système alternatif  à proposer les mêmes facilités multitouch que l’iPhone (il semblerait que sur ce sujet, Palm et Apple se tiennent par la barbichette des brevets logiciels). La qualité et la simplicité de l’ergonomie étaient aussi tout à fait remarquables, et le design très « sexy ».

Le Palm Pré a été introduit au États-Unis le 6 juin, et les ventes ont été bonnes. Mais tout cela s’est un peu essouflé car Sprint, l’opérateur exclusif aux USA, est semble-t-il en perte de vitesse, et le Palm Pré n’a pas été commercialisé dans beaucoup d’autres pays : il n’est par exemple toujours pas disponible en France. Seule nouveauté depuis un an, l’introduction d’un nouveau modèle moins puissant visant l’entrée de gamme des smartphones, le Palm Pixi.

Et puis voilà à nouveau que, lors de la présentation du 7 janvier au CES, Palm fait des annonces tonitruantes ! D’abord l’arrivée de deux nouveaux modèles : le Palm Pré Plus et le Palm Pixi Plus, qui proposent de grandes améliorations matérielles. Le Palm Pré voit sa capacité de stockage et sa RAM doublées, à 16 Go et 512 Mo respectivement, tandis que le Palm Pixi n’est plus castré des possibilités Wi-Fi que l’on peut légitimement attendre d’un smartphone, fût-il d’entrée de gamme. Et ces deux modèles seront disponibles en France au début du second trimestre.

Ensuite, le programme pour développeur, qui permet de fournir ses applications via le App Catalog officiel de Palm (équivalent du célèbre App Store d’Apple) est maintenant ouvert à tous. Mais ce n’est pas tout, un programme spécial pour les développeurs Open Source existe, qui offre comme avantage d’économiser les 99$ de cotisation annuelle (en ce moment offerts à tous) et les 50$ par application soumises au App Catalog. De plus, Palm montre sa compréhension des logiciels libres, car l’on peut tout à fait commercialiser ses applications libres, et il n’y a aucune discrimination, comme pour les applications propriétaires c’est 70% du prix pour le développeur (comme sur l’App Store).

Développeur qui pourra désormais programmer de vrais jeux exploitant tout la puissance du la puce graphique, grâce à la mise à disposition d’un nouveau SDK spécialement destiné au jeux : le Plug-in Development Kit. Ce dernier est basé sur l’excellente et très utilisée librairie SDL, véritable standard des logiciels libres. Le PDK est censé être programmé en C ou en C++, mais il existe des bindings SDL pour un nombre de langage de programmation très impressionnant, et j’ai du mal à voir ce qui pourrait m’empêcher d’utiliser sous peu Pygame pour programmer des jeux en Python !

Pour ce qui est des applications plus classiques, Palm propose désormais un IDE fonctionnant dans votre navigateur web : Project Ares. On pourra saluer la cohérence technologique qui permet de faire aisément cela puisque l’ensemble du SDK Palm est construit à base  de technologies web, et espérer que cela permettra de faciliter l’accès à la programmation webOS au plus grand nombre.

Enfin, pour motiver les développeurs à se lancer et ainsi remplir son App Catalog, Palm propose le concours Hot Apps doté d’un million de dollars à partager entre les applications les plus téléchargées du 1er février au 31 mai.

Sur le front des smartphones Linux est là et bien là, en position de force, prêt à exterminer les systèmes d’exploitation privateurs de liberté Windows Mobile et BlackBerry OS et à mener le grand combat final contre l’iPhone !

Tags: , , , , , , ,

10 Responses to “Smartphones Linux : le point du dev”

  1. Grays dit :

    Quid de l’OpenMoko? C’est un smartphone utilisable et sur lequel on peut développer. Il existe plusieurs distributions dont la partie téléphonie fonctionne bien; SHR, qtmoko, Hackable:1, Om2009. Sans avoir de chiffre, je sais que plusieurs personnes l’utilisent comme téléphone principal et c’est quand même un plaisir de pouvoir faire un apt-get update dans un terminal qu’on a pas payé x$. Parait même que la partie gps est meilleure que sur iphone/android.

  2. David BERCOT dit :

    Bonjour,
    En fait, je pensais que le Nexus One avait être le portable Androïd ultime. Or, il y a éventuellement l’aspect multi-touch (à confirmer), mais surtout l’absence de GPS !!! Comment cela est-il possible ?
    Donc, à titre personnel, je te dirais donc d’étudier encore les autres modèles qui sont soit déjà sur le marché, soit en passe d’arriver.
    Merci pour la piste ASE. Je vais essayer d’installer ça sur mon HTC Hero et essayer de faire un peu de python (je débute ;-))).
    Enfin, pour ce qui est de Palm, je dois reconnaître que, à la fois esthétiquement, mais aussi sur l’interface, le Pré me plaisait bien… Mais comme il n’est pas sorti en France, je n’ai pas hésité longtemps. C’est dommage…

  3. Guyou dit :

    Merci pour ce rapide tour d’horizon.

    Perso, je regrette le paragraphe sur Maemo car, bien que n’ayant pas suivi grand chose, il me semble que tu as raison, ce qui me chagrine d’autant plus que j’aime bien Gtk.

  4. Michael dit :

    Je pense qu’il y a un peu plus que ça. Déja, si on en croit l’ancien site de trolltech, qtopia a été mis dans un certain nombre d’appareil. Peut être pas vendu en france, car j’ai jamais vu en temps que tel, mais en même temps, j’ai pas eu de téléphone mobile avant 2007. Mais ce n’etait pas des téléphones ouverts, à ma connaissance.

    Ensuite, tu parles de developper dessus, mais tu peux aussi faire du dev sur symbian depuis linux, et il existe un port de python pour windows ce. Dans la mesure ou tu inclus des logiciels ayant des composantes proprios comme maemo et android, je pense que tu ne parle pas vraiment de la liberté de la plateforme ( http://blog.1407.org/2009/09/01/nokias-free-software-bullshit-and-insults-in-maemo/ pour une réaction que je juge assez agressive à la communication de nokia sur le n900, même si dans le fond, le mec n’a pas tort ).

    Enfin, tu sembles oublier que debian même a été porté sur certains terminaux. Par exemple, sur le Neo Freerunner, ou tu retrouves les apis classiques linux ( contrairement à android ), sur maemo, sur le palm pre ( comme le rappelle joey hess, qui fait tourner un chroot debian sur webos http://kitenet.net/~joey/blog/entry/Palm_Pre_privacy/ ), et qu’il y a également des distributions basé sur OpenEmbedded qui tourne sur les portables htc ( http://groups.fsf.org/wiki/LibrePlanet:LibrePlanetItalia/replicant ).

    Un point que tu oublie aussi, c’est de te demander si le fait de devoir passer par un market fermé est vraiment compatible avec le prérequis de logiciel libre. Sur mon nokia e65, je peux installer ce que je veux, via internet, sans censure à priori ou posteriori. C’est pas le cas sur l’appstore et l’iphone. Mais c’est aussi pas le cas sur le market ( http://www.mobinaute.com/295698-google-menage-applications-proposees-android-market.html ), même si la censure est moins forte. Et en fonction du portable que tu va prendre, vérifie si tu peux avoir le compte root. Bien sur, est ce que devoir exploiter une faille pour avoir le controle de son matériel est philosophiquement acceptable, est une question qu’on va laisser en suspend.

    Et pour finir, les developpeurs ont l’air de trouver la plateforme android plus complexe, parce qu’il y a 2/3 versions du sdk, que les fabricants ne vont pas mettre à jour de toute façon leur parc, parce qu’il y a pas de garantie de format ou de tailles d’ecran, ni de puissance matériel, et qu’au final, ça reste les problémes qui ont plombé la plateforme java embarqué traditionnel. Il faut reconnaitre que sur le fond, dalvik, c’est du j2me avec une api différente, aprés tout.

  5. J’allais le dire, et openmoko ?

  6. realniko dit :

    Bonjour,
    Sais-tu si il est possible avec ces environnement de bidouiller à un assez bas niveau pour obtenir des informations par exemples sur les BTS/ BSC utilisées ou autre bidouilles relatives à la téléphonie ?

  7. Social comments and analytics for this post…

    This post was mentioned on Twitter by hobbestigrou: Smartphones Linux : le point du dev http://tinyurl.com/ydzwfu9

  8. Khertan dit :

    Je vais tenter de faire court …

    Android est mort la prochaine version du system sortira un jour est l actuelle est dépaasé
    Remplacez Android par ce que vous voulez …

    C est pas une argumentation ca !

    Android tu ne developpera qu’en pseudo Java …
    Sous WebOS … bon courage avec l e javascript !

    Sous Maemo tu peut deja creer tes applis en c++/qt est celle ci tourneront sous Maemo 5 et Maemo 6.
    Tu peux aussi faire du python/qt ou python/gtk … gtk sera toujours dispo sous Maemo6.
    En fait tu fais ce que tu veux en utilisant ce que tu veux comme language framework.

    Ensuite viens la distribution des applis …. un market fermé ? (ovi n est pas ce qu il y a de plus ouvert !) ou les depots maemo ? (Maemo.org/downloads)

  9. […] Gallaire's Blog Free (libre) software and free (libre) culture (science and law) « Smartphones Linux : le point du dev Debian Installer : ça bouge ! […]

Leave a Reply