Archive | octobre, 2012

Focus sur les applications hybride

9 Oct

Le blog est migré vers blog.reactor.fr

top-new

Jusqu’où peut-on aller avec une application hybride ?

A lire la presse spécialisée (ouais ok, « blog » si vous préférez, mais ça fait moins pro…), les applications hybrides seraient LA voie à adopter. Une solution prenant les avantages des applications 100% web et/ou 100% native. (Pour faire la différence, c’est par ici). Les plus grands acteurs comme Microsoft, Adobe, Facebook… ont opté pour cette solution… ce qui serait rassurant. (voir article) pour nous petit développeur de garage. (NB : les plus grands ont commencé dans un garage, en musique aussi d’ailleurs…)

Mais, de mon côté, je ne suis pas convaincu par cette orientation. Surtout, je me pose pas mal de question… Jusqu’où peut-on aller avec une application hybride ? Quelles sont les limites ? Comment fait-on ?

D’abord essayons de bien comprendre ce qu’est une application hybride. Une application hybride est écrite en HTML5 + CSS3 + Javascript ET surtout dispose d’un accès à presque toutes les ressources disponibles sur l’OS (Caméra, accéléromètre système de fichier…) via ce qui est appelé dans le jargon « des conteneurs natifs ». L’intérêt est de minimiser les coups de développement en utilisant HTML5 qui est un langage de présentation simple (même si toutes ses spécifications ne sont pas encore définitivement fixées), déjà utilisé par de nombreux développeur/intégrateur, facile à maintenir et cross-plateforme (rendu par un navigateur web classique ou via un webkit ou via un webview)

Ce schéma explique l’imbrication d’une page web HTML5 dans un conteneur appelé WebView qui est rendu (affiché si vous préférez) par l’application du téléphone. Celle ci est dite native car elle est compilée dans le langage de l’OS (Java pour Android, Objective C pour iOS, C# pour Windows Phone…)

(Source)

On visualise donc le résultat final sur notre appareil (Smartphone, tablette…peu importe) qui dispose d’un OS (iOS, Android… peu importe) qui dispose lui-même d’une WebView qui affiche de l’HTML5.

On est donc très large, normalement on couvre tous les cas, toutes les plateformes, tous les OS… Enfin pas tout à fait. L’élément clé est la liaison WebView – HTML5.

Pour l’instant certaines applications devront rester native, notamment si celles ci ont besoin d’un rendu graphique important (jeu vidéo). Une application hybride sera « plus lente » qu’une application native, mais ces écarts tendent à réduire au fur et a mesure que les appareils gagnent en puissance.

Pour les autres, on peut tenter l’hybride. Dans ce cas, on va utiliser ce qu’on appel un framework Javascript (JS), entendez une panoplie d’outil pré-codé qui nous facilite la vie tant qu’on sait encore comment s’en servir. Voila une petite liste des framework les plus connus :

Oui mais voila, moi développeur, lequel je vais choisir ? et pourquoi ? Pour m’aider j’ai trouvé ce site : http://www.markus-falk.com/mobile-frameworks-comparison-chart/

Une mine d’or ! C’est un immense tableau comparatif des différents frameworks et leurs possibilités. Il y a même un Wizard pour nous aider !

Vu le nombre de Framework, je vais arrêter mon article ici, et développer un exemple plus approfondie en essayant un ou deux parmi ce vaste choix qui m’est offert.

J’ai rapidement essayé PhoneGap et lancé une application sur l’Android Market (Test PhoneGap). J’ai testé avec mon Galaxy S et ça fonctionne bien. J’ai accès à de nombreuses fonctionnalités (Caméra, accéléromètre…), le tout en quelques lignes de codes. Le déploiement est simple. (Enfin, j’avais déjà fait ça en natif, ça aide beaucoup). Par contre elle n’est pas compatible avec la tablette Galaxy Tab 2 ! Je ne sais pas encore pourquoi.

Voila, s’achève une série de 3 articles sur l’univers des applications mobiles. Vous avez vu un bref état des lieux du marché, on a essayé d’avoir une vision à court terme, je vous ai présenté les grands acteurs et décisionnaires dans ce secteur. Ensuite on a pu voir les différents type d’application, leurs incidences sur les couts, leurs contraintes. Et pour finir nous avons développé le type d’application à la mode, l’application hybride qui nous amène au choix d’un Framework JS.

La suite ? Aidez moi à l’écrire ! A bientôt alors !

(…)

Auteur : Yann Vasseur