HTML5 et mobile, encore un effort !

Il est tentant de voir poindre, avec le support d'HTML5, la solution de multi-publication pour mobile qui nous libérerait des contraintes des développements natifs iOS, Android ou Windows Phone. A l'épreuve du feu, on devine le potentiel mais on mesure le chemin restant à couvrir.

N'en déplaise aux théoriciens du logiciel, les voies de l'informatiques sont tortueuses, et les langages et outils font parfois de spectaculaires come-back ou sont victimes de détournements improbables. Ainsi en va-t-il du très brillant GWT, qui compile du Java en du Javascript, hérésie pour le puriste, et qui s'avère bien pratique pour certains développements web. Ou encore de l'Objective C, condamné au club restreint des développeurs Mac OS intégristes, et à qui iOS a pourtant offert une deuxième vie spectaculaire. La leçon générale est que le dogme est rarement pertinent et que seule l'efficacité constatée du vrai code sur le vrai silicium compte.
Le mobile, nouveau terrain de jeu informatique, était ainsi voué par les architectes de l'industrie à passer directement à l'étape web et java sans passer par la case code natif, mais la fragmentation de ces solutions transverses n'a pas permis la création de contenu en masse. Nos téléphones ont donc traversé, en accéléré, l'histoire du PC, avec l'émergence de systèmes d'exploitations fédérateurs, même si au passage challengers et leaders ont échangé leur place.

Histoire accélérée malgré tout, car sur les trois écosystèmes dominants, HTML5 pointe le bout de son nez quasiment en même temps que sur nos laptops.  Peut-on donc déjà basculer certains services en application web, dans le nuage, et avec un code unique quelque soit le smartphone ciblé ? Nous avons, chez Orange Labs, tenté l'expérience sur un des services stars, la TV. 
Nos conclusions sont mitigées. Le support d'HTML5 est globalement très bon, et à condition d'intégrer les contraintes afférentes dans la conception de l'interface, on peut produire de fort jolies choses.
Mais il reste des différences d'implémentation qui peuvent vraiment faire perdre le temps économisé sur trois développements natifs si l'on n'y prend pas garde. La principale difficulté est celle de la multi-publication, c'est à dire la gestion des ces variations entre terminaux, pour laquelle il existe de nombreux outils mais dont aucun n'est réellement polyvalent : il faut choisir soigneusement, quitte à payer de sa personne et contribuer directement en open-source. La gestion des évènements 'touch', ensuite, posent de nombreuses questions de conception de l'interface et d'optimisation des performances, pour le scrolling notamment. Enfin le stockage de données en local, absolument vital pour les mobiles dont l'accès à internet est par nature fluctuant, n'est toujours pas standardisé et nécessite des trésors d'ingéniosité pour pouvoir être utilisé.

En définitive, nous commençons d'utiliser l'HTML5 pour certains contenus mobiles, mais avec parcimonie, au cas par cas.
Et nous œuvrons activement pour améliorer le standard, notamment dans le récent groupe animé par Facebook et quelques opérateurs mobiles sur le sujet.

Pour aller plus loin, une bibliothèque open source pour le javascript mobile : http://www.winktoolkit.org
Et l'initiative du W3C : https://github.com/coremob/level-1