Logo HTML5

La création d’une application mobile n’est pas triviale et il est nécessaire d’effectuer les bons choix dès le début afin d’aboutir à une solution de qualité, respectant coûts, délais et assurant une pérennité dans le temps.

Dans cet article nous expliquons pourquoi et dans quels cas utiliser le standard HTML5 dans le cadre d’un développement d’application mobile.

Foisonnement des systèmes d’exploitation mobile

Connaissez vous tous les systèmes d’exploitations qu’il existe aujourd’hui sur le marché mobile ?

Il y a fort à parier que non, bien que la majorité des Français utilisent actuellement des SmartPhones équipés d’iOS ou Android ces deux systèmes d’exploitation sont loin d’être les seuls.

En tentant d’effectuer une liste exhaustive des systèmes d’exploitation mobiles ont pourrait par exemple citer :

  • iOS
  • Android
  • BlackBerry OS
  • Windows Phone
  • WebOS
  • Symbian
  • Bada
  • Meego
  • Tizen
  • Version modifiée d’Android du Kindle Fire
  • Etc.

Une des questions à se poser lorsque l’on initie la conception d’une application mobile est lequel ou lesquels de ces systèmes d’exploitation doit-on cibler en priorité ?

Un rapide tour sur StatCounter nous permet d’apprécier la répartition des terminaux mobiles sur le territoire Français en 2012.

Repartition OS mobiles

Clairement, au mois de Novembre 2012 iOS et Android se partagent 90% des parts de marché des OS mobiles sur le territoire Français (attention tout de même à modérer nos propos concernant les chiffres donnés, vous pourrez trouver d’autres statistiques sur d’autres sites, voir par exemple cet article http://www.windowsphonefr.com/evolution-os-mobiles-nov-2012/20957).

Aujourd’hui il est donc encore possible de créer une application mobile en développant une version native iOS d’un côté (code Objective C) et une version native Android de l’autre (code Java).

Cette solution permet de cibler une majorité d’utilisateurs mais a tout de même plusieurs inconvénients

  • Vous ignorez 10% d’utilisateurs potentiels qui peuvent vivre de façon négative le fait que votre application ne soit pas supportée par leur SmartPhone ;
  • Il existe une multitude de versions d’iOS (iOS 1, iOS 2, iOS 3, iOS 4, iOS 5, iOS 6) et d’Android (1.0, 1.1, 1.5, 1.6, 2.0, 2.1, 2.2, 2.3, 3.0, 3.1, 3.2, 4.0, 4.1, 4.2). Vous n’aurez pas d’autres choix que de cibler un sous ensemble de versions. Heureusement du côté des SDK la compatibilité ascendante est encore assez bonnes, mais sera t’il toujours ainsi ?
  • La plupart du temps les entreprises qui partent sur cette solution commencent par développer la version iOS de leur application. Quelques mois plus tard une version Android est créée. Au final les coûts de développement sont très élevés car il est nécessaire de créer deux applications bien distinctes, une en Objective C, l’autre en Java. Pire encore, si votre application fonctionne bien il se peut que vous décidiez ensuite de re-créer l’application pour BlackBerry, puis Windows Phone, etc. Les coûts doublent puis triple, puis sont multipliés par 4, etc.
  • Les développeurs disposant de compétences iOS sont très recherchés, les développeurs Android aussi, ne parlons pas des personnes capables de maîtriser les deux environnements. Vous aurez du mal à trouver les ressources nécessaires pour maintenir votre application et la faire évoluer à moyen / long terme.
  • Les coûts de maintenance explosent car vous devez gérer les mises à jour et les corrections de bugs sur deux applications en parallèle. La maintenance délicate de deux applications (ou plus) aura aussi un impact fort sur la qualité et risque de mécontenter les utilisateurs.

HTML5 permet de gommer en partie les problèmes cités précédemment :

  • Il est plus facile de cibler les utilisateurs des systèmes d’exploitation les moins représentés (actuellement) sur le marché mobile (BlackBerry, Windows Phone, etc.) car HTML5 est en général bien supporté sur ces plateformes.
  • HTML5 est un standard, bien que les implémentations de ce standard ne soient pas strictement identiques d’une plateforme à l’autre la “sensibilité” aux changements de versions de systèmes d’exploitation se fait moins ressentir.
  • Les coûts de développement sont moindres car vous ne maintenez qu’un unique code source développé en Javascript / CSS / HTML5 tout en ciblant plusieurs systèmes d’exploitation mobiles.
  • Les développeurs disposant de compétences Web sont extrêmement nombreux, il sera facile de trouver les ressources nécessaires à la maintenance de votre application.
  • Les corrections de bugs sont effectuées une unique fois, vous n’avez en général pas à appliquer de corrections spécifiques à chacun des systèmes d’exploitation.

Faire face aux différentes tailles et résolutions d’écrans

Malheureusement les disparités ne sont pas uniquement présentes du côté des systèmes d’exploitation mobiles, les tailles et résolutions d’écrans sont aussi très hétérogènes.

Le graphique suivant généré via StatCounter montre la répartition des résolutions d’écran mobiles en France en 2012.

Screen sizes

15 résolutions d’écran différentes sont recensées. La catégorie “others” englobe 35% des dispositifs, on peu imaginer que cette catégorie est associée à une multitudes d’autres résolutions.

Votre application devra donc gérer au mieux les différentes résolutions, le problème est que ce n’est pas une tâche aisée lorsque l’on développe en utilisant des technologies natives. Au contraire, HTML est bien adapté aux résolutions d’écran variées, il est simple de dimensionner les éléments graphiques de l’application proportionnellement à la taille et la résolution de l’écran.

L’année 2012 nous a clairement montré qu’il n’est plus possible aujourd’hui de traiter la partie mobile de manière complètement séparée de la partie desktop. La limite entre mobile et desktop tend à s’effacer, les utilisateurs accèdent à internet et aux applications en utilisant des terminaux de natures variées, SmartPhone, Tablettes, PC ou même tablettes hybrides comme la surface de chez Microsoft. Ces mêmes utilisateurs attendent un confort et une expérience utilisateur adaptée quelque soit le dispositif qu’ils utilisent pour accéder à votre application ou votre site web.

L’utilisation de technologies efficaces sur de nombreux dispositifs et tailles d’écrans devient donc de plus en plus importante. HTML5 facilite la mise en place d’une technique appelée Responsive Web Design pour faire face à ce problème de disparités.

Le Responsive Design permet de créer une application en définissant plusieurs affichages (ou layouts) en fonction des tailles et résolutions d’écran. L’application détecte automatiquement la résolution d’écran de l’appareil sur laquelle elle s’exécute puis choisie le type d’affichage le plus approprié. Par exemple une application pourrait choisir un affichage 2 colonnes sur une tablette et un affichage mono-colonne sur un smartphone. L’expérience utilisateur reste confortable quel que soit le terminal sur lequel l’application est exécutée.

Mutualiser les compétences

Il est rare que la création d’une application mobile ne se fasse pas à côté d’un site ou d’une plateforme Web existante.

Bien que la création d’une application mobile nécessite des compétences spécifiques, les personnes responsables de votre site internet peuvent intervenir sur les tâches de maintenance de votre application mobile HTML5.

D’un autre côté le développement natif demande de nouvelles compétences rares et coûteuses, développement iOS / Objective C, Android / Java, Windows Phone / C#, etc.

Avoir une vision moyen / long terme

En informatique tout miser sur une technologie propriétaire n’a été que rarement le bon choix. Du côté du marché mobile l’exemple de Nokia est marquant, le constructeur a pourtant dominé le marché pendant longtemps, qui aurait pu prédire une telle dégringolade ? Quel a été le sort des entreprises ayant fortement investi dans les technologies Nokia ?

Nous ne pouvons évidemment pas prévoir de tels événements chez Apple ou Google qui se portent plutôt bien aujourd’hui. Mais , très honnêtement nous ne savons rien sur l’avenir à long terme d’iOS et de Android.

Il y a fort à parier que dans 1 ou 2 ans le paysage des technologies mobiles aura énormément évolué, peut-être que les leader du marché ne seront plus les mêmes. Peut-être que RIM et Microsoft grappillerons des parts de marché ? Peut-être que d’autres acteurs arriveront ? Là encore, nous ne savons pas.

Miser sur les standards semble beaucoup moins risqué pour l’avenir, HTML a toujours été une technologie clé dans le développement d’Internet et à de fortes chances de le rester. HTML5 est soutenu par un consortium de grandes entreprises et est adopté très largement par la communauté des développeurs.

Enfin, nous observons aussi deux tendances qui ont des chances d’évoluer :

  • De nouveaux systèmes d’exploitation « full HTML5 » sont en prévision pour l’année 2013. C’est par exemple le cas de Firefox OS ou de Tizen.
  • Les « Installed Web App » ont aussi un avenir prometteur, ces applications sont des applications « full HTML5 » qui ne sont pas packagées au sein de coquilles Android ou iOS mais sont en quelque sorte des sites internet qui utilisent les mécanismes de HTML5 afin de pouvoir fonctionner à la fois en mode online et offline. Ces applications peuvent être installées depuis un simple lien sur Internet et n’ont plus besoin d’être déployées sur un store.

Ok, ok, alors HTML5 c’est parfait pour mon application mobile ?

Nous terminons cet article en modérant un légèrement propos, chez GoMoob nous sommes de fervents défenseurs de HTML5 et parions sur son énorme potentiel pour l’avenir.

Cependant, la technologie est encore récente, elle peut ne pas être adaptée dans certains cas ou nécessiter une étude particulière pour « dérisquer » des points techniques les plus délicats :

  • HTML5 n’est pas encore adapté aux applications nécessitant la mise en place d’animations graphiques poussées (jeux, multimédia, etc.). Ces applications nécessitent l’utilisation de l’accélération graphique et vous aurez la plupart du temps recours aux APIs natives des OS dans ce cas. Sachez tout de même qu’une partie des terminaux mobiles actuels utilisent l’accélération graphique pour améliorer les performances de certaines fonctionnalités HTML5. Malheureusement ce n’est pas le cas sur tous les dispositifs, mais c’est un bon point pour l’avenir.
  • Tous les navigateurs accompagnés de leurs systèmes d’exploitation ne supportent malheureusement pas les mêmes fonctions HTML5. Vous pourrez avoir la garantie que certaines fonctions marcheront presque partout mais, dans d’autres cas vous devrez faire des arbitrages. Parfois vous devrez abandonner le support d’une fonction sur une version spécifique d’un OS. Un bon point de départ pour savoir si les besoins de votre applications sont bien supportées sur la plupart des OS est l’excellent site « Mobile HTML5 » http://mobilehtml5.org/

Publié le   28 Décembre 2012
par   Baptiste Gaillard