Avec l’arrivée du Google Nexus One, les différentes opérations de rachat/fusion, les sorties de nouvelles plateformes telles que Maemo, j’avoue avoir un peu de mal à tout suivre dans le monde des systèmes d’exploitations pour téléphones mobiles… J’ai eu l’occasion de discuter il y a quelques temps avec Mik Bry, Gran Guru mobile, qui travaille dans notre région. L’occasion d’évoquer avec lui l’évolution technique des plateformes de développement pour mobile…
Salut Mik, peux-tu te présenter en quelques mots ?
Salut, j’ai fait le choix d’être hyper-spécialisé sur le développement mobile dès l’année 2000, pour éviter les aléas d’un développeur Web ou d’un développeur classique plus «généraliste». Je m’occupe d’adapter des contenus, web ou autre, vers du mobile. Par contre, j’ai choisi de ne pas me spécialiser sur une plateforme mobile particulière, ce qui amène pas mal de boulot !
Tu as travaillé sur quels projets récemment ?
Récemment, j’ai terminé une mission de deux ans pour Seesmic, tout d’abord sur de la conversation vidéo, sur Symbian et Java mobile, puis ensuite en travaillant sur les clients Twitter pour mobile. En ce moment, je bosse notamment sur une appli iPhone qui mixe géolocalisation et connexion avec Facebook : je m’intéresse particulièrement à ces connexions entre le web et les téléphones, c’est assez sympa d’utiliser les API Facebook sur des devices mobiles. J’ai d’ailleurs présenté mon travail au Facebook Developer Garage, une conf qui a lieu jeudi dernier sur Paris.
Ce n’est pas trop compliqué pour toi de jongler entre toutes ces plateformes ?
Si, justement, car il n’y a pas du tout de standard au niveau du développement natif. On retrouve toujours le modèle vue contrôleur classique, mais tout change, à commencer par le langage : Objective-C pour l’iPhone, Java pour le Blackberry et Android, du C/C++ pour Symbian. Mais avec un gros flou du côté des intentions de Nokia : Maemo est un second OS chez Nokia basé sur Linux et utilisé au départ sur leurs minitablettes. Il est maintenant disponible sur N900, un téléphone un peu à part.
On peut aussi développer des webapps «classiques», mais on perd beaucoup du potentiel des téléphones : on peut certe faire de la géolocalisation, mais pas encore stocker des données offline de manière commune, par exemple.
Ne peut-on pas trouver un «plus grand commun dénominateur» à ces plateformes, en mettant en place des noyaux communs ?
J’ai souvent essayé, mais c’est très difficile à mettre en place. Le hardware n’est pas le même, les interfaces ne sont pas du tout standardisées. Par exemple, l’iPhone est multi-touch, pas les autres, ça serait frustrant de ne pas l’utiliser.
Toutefois, utiliser le C reste possible sur tous les téléphones, je réfléchis pas mal en ce moment à des moyens de standardiser certaines briques métiers.
On peut s’appuyer sur des communautés actives de développeurs, ou ton travail reste t’il très isolé ?
Ca ne t’étonnera pas, la communauté la plus importante reste autour de l’iPhone. On trouve également pas mal de choses autour de l’Android, mais pour les autres, le partage de connaissance est assez faible : Nokia propose un Wiki, mais sur des choses un peu pointues, l’enregistrement vidéo par exemple, c’est assez difficile.
Tu me disais aussi qu’il fallait avoir conscience du retard hardware qu’ont les téléphones et en tenir compte ?
Oui, les téléphones, même les plus performants du moment, utilisent des technologies plutôt anciennes. Les processeurs ARM, par exemple, qu’on utilise sur les téléphones «mainstream» ont été conçus il y a une dizaine d’années. L’iPhone 3GS utilise l’ARM-Cortex qui a été développé il y a 5 ans. Lorsque l’on cherche à évaluer la ressource hardware sur laquelle va se reposer un développement, il faut savoir jongler entre des téléphones sur 4 ou 5 générations différentes.
En fait, on recycle beaucoup avec les mobiles : pour la 3D, par exemple, on utilise aujourd’hui PowerVR qui a été conçu sur PC il y a une dizaine d’années. Et on commence seulement à utiliser les shaders avec OpenGL-ES 2, qui existe depuis plus de 5 ans.
On cherche le meilleur ratio coût/performances/consommation d’énergie, loin de la course à la performance des PC. Et utiliser de bonnes vieilles technologies permet d’amener ça, même si cela amène bien des complications pour le développeur.
Pour reparler de Nokia, on n’y comprend plus grand chose entre Symbian d’un côté, et Maemo de l’autre, tu peux nous donner ton éclairage ?
Nokia s’est rendu compte un peu tard de leur retard par rapport à la sortie de l’iPhone. Ils ont tenté de mettre à jour Symbian en ce sens, mais c’est une tâche très difficile : vaut-il mieux repartir d’une page blanche, comme Maemo, un Linux qui marche plutôt bien mais reste basique et nécessitant beaucoup de boulot, ou simplifier Symbian, lui redonner une interface plus claire? Ils ont pris le parti pris de prendre QT comme interface commune entre Symbian et Maemo, mais tout ceci reste encore confus et peu concret.
Nokia a racheté Symbian, puis Trolltech, leur architecture technique semble beaucoup dictée par leur politique de croissance externe ?
Oui, on se demandait pourquoi ils avaient racheté Trolltech, et c’était une vision un peu à long terme, qui leur permettait d’avoir une interface cross-platform, indépendamment de l’OS. C’est intéressant, car QT est pas mal utilisé dans les milieux industriels et scientifique. Mais actuellement, utiliser QT sur un Symbian nécessite de demander au client d’installer des librairies supplémentaires. Et sur Maemo, il faut le compiler soi même, cela reste encore très prototype.
Que penses-tu des rumeurs de fusion entre Android et ChromeOS ?
Pas forcément du bien… je ne vois personnellement pas trop l’intérêt de ChromeOS pour l’instant. Certes, le HTML5 et son potentiel sont intéressant, mais les téléphones ne sont pas encore prêts. Souviens toi d’Apple qui a commencé par promouvoir à la sortie de l’iPhone l’utilisation de webapps : ça n’a pas marché, ils ont dû changer leur fusil d’épaule à la dernière minute, et sortir le SDK qu’on connait aujourd’hui.
C’est d’ailleurs un cas intéressant, puisque ce revirement à été très rapide, et a été en partie dicté par la communauté des hackers qui développaient en natif pour l’iPhone dès l’été 2007. Aujourd’hui, ils ont repris le tout en main avec l’AppStore, et on en voit le résultat.
Donc actuellement, les webapps ne sont pas une piste viable pour les téléphones mobiles. Google veut aller en ce sens, mais ça reste une déclaration d’intention.
Si on parle des plus petits, les Palm, J2Me, cela a toujours un avenir ?
Si Palm reste seul, ils n’ont pas d’avenir. Ils ont eux aussi cherché à aller vers les Webapps et le HTML5, mais leur téléphone est trop lent, même avec l’accélération hardware.
J2Me, c’est mort, Blackberry continue historiquement à l’utiliser, ainsi que les «outsiders» LG, Samsung, etc… mais la technologie n’évolue plus. Motorola a aussi laissé tomber J2Me au profit d’Android, et Sun ne dirige plus rien : tout est gelé et il n’y aura plus d’évolution de Java côté client.
La convergence PC/mobile qu’on nous promet depuis longtemps, elle arrive ?
La seule convergence qu’on voit aujourd’hui, c’est au niveau des webapps. Il est vrai qu’Intel pousse pour que son architecture Atom soit présente des deux côtés, mais tout ceci est plus lent que ce qu’on nous promet. On aura toujours plusieurs trains de retard entre un téléphone et un PC. Difficile de voir comment ceci va évoluer, peut-être par le biais des TabletPC, qui représentent une marche intermédiaire entre ces deux univers.
Quel serait ton discours face à un décideur qui cherche à se lancer sur du mobile, qui voit bien sûr l’intérêt de l’iPhone, mais qui ne cherche pas à aller plus loin ?
La piste des webapps reste valable pour tester le marché et ses utilisateurs, à moindre coût. Le navigateur de l’iPhone est largement utilisé. Mais la webapp a une grosse contrainte : elle n’a pas le même impact qu’une appli dans l’AppStore, ce qui peut être un argument décisif stratégiquement. D’où la nécessité je pense de standardiser un peu le développement iPhone pour rendre moins lourd la procédure d’un développement iPhone, via des mockups, pour pouvoir tester le marché avec un ticket d’entrée moindre.
Et du côté des autres plateformes ?
Android, même s’il peine a décoller, a un beau potentiel, avec des téléphones tels que le Droid de Motorola. Le Blackberry également, mais ces deux possèdent des AppStore avec des visibilités bien moindres. Symbian est quant à lui d’un accès beaucoup plus complexe à programmer, et ne peut être considéré que comme un outsider. Maemo et le Nokia N900 sont intéressant pour pousser des idées comme le WebGL: La 3D dans un navigateur.
Reste le cas Windows Mobile cette plateforme est datée et n’évolue plus depuis des années hormis via des surcouches graphiques conçus par les fabriquants comme HTC. J’attends de voir WM7 prevu pour fin 2010. Microsoft est dans l’obligation de faire un grand OS mobile, mais la concurrence est féroce, dictée par Apple. Et HTC le fabriquant historique de téléphones WM semble lâcher cet OS pour Android. A moins que Windows prenne le taureau par les cornes et sorte son téléphone.
2010 va donc être une année passionnante dans le domaine du mobile !
Merci Mik pour ta disponibilité ! Mik bosse en indépendant sur divers projets de développement mobile, vous pouvez le contacter ici !