Les solutions d’applications hybrides ont beaucoup évolué depuis 2005 et se présentent aujourd’hui comme des outils de plus en plus puissants. Pour vous aider à y voir plus clair sur cet environnement encore sous-estimé, Quentin notre expert et passionné de Cross-Platform vous livre son analyse sur les avantages, mais aussi les limites de ces technologies face aux points essentiels d’un projet mobile. 

Quelles solutions hybrides
pour quel résultat sur votre application mobile ?

La Technologie Cross-Platform, c’est quoi ?

Le développement d’une application mobile sur plusieurs plateformes (iOS, Android, Windows Phone…) peut vite devenir un véritable défi technique pour celui qui ne maîtrise pas les langages de programmation natifs (Java, .net, Objective-C…).
Et pourtant une autre solution existe – l’Hybride – cette technologie qui vous permet de développer votre app sur plusieurs environnements avec un code unique généralisé. Mêlant technologies web (HTML5, Javascript, CSS…) et APIs mobiles (afin de pouvoir appeler des fonctionnalités natives du smartphone comme l’appareil photo), les solutions hybrides vous permettront d’avoir une application distribuée sur les stores de téléchargement mobiles.

PhoneGap, Cordova et Ionic, focus sur les frameworks hybrides

Souvent en Open Source et gratuites, il existe de nombreuses technologies et solutions hybrides, découvrons celles utilisant le noyau « Cordova » :

Apache Cordova

CORDOVA, le pilier de l’hybride mobile: il est le noyau open source de PhoneGap.
Pour la petite histoire, Cordova est né du rachat de Nitobi par Adobe en 2011, légué à la Fondation Apache, PhoneGap évolue pour devenir Apache Cordova.
Cordova est un des frameworks à être le plus évolutif et mis à jour, il est composé de :

  • Une partie interface utilisateur : il s’agit d’un navigateur web qui va prendre la surface de l’écran. C’est ce navigateur natif (UIWebview pour IOS par exemple) qui va gérer toute la partie affichage et qui va faire le lien entre les interactions utilisateur et le noyau Cordova.
  • Une partie Hardware : nombreuses APIs qui font le lien entre le hardware et la partie interface utilisateur via des méthodes en JavaScript.

Cordova propose notamment la possibilité de développer ses propres « Plugins » si vous avez besoin de fonctionnalités supplémentaires.

PhoneGap Dev

PHONEGAP, le pionner : créé en 2009 par l’entreprise Nitobi et après de nombreuses évolutions, il est dorénavant utilisé comme service propriétaire d’Adobe. PhoneGap propose un ensemble d’outils graphiques pour la création de projet, application mobile de test, etc. ainsi qu’une solution « Cloud » composée de modules tels que :

  • La compilation de projet dans le « Cloud », ainsi les équipes de développement n’ont plus besoin de configurer ou installer Cordova sur leurs machines, ni d’être équipées d’un Mac pour la compilation d’application IOS.
  • Des émulateurs en ligne.
  • L’intégration possible de modules de collaborations.
  • La possibilité d’effectuer des compilations programmées, mais aussi l’intégration d’outils d’intégration continue.
  • L’hébergement et le partage par mail de l’application, avec possibilité d’installer l’application via le partage d’un lien envoyé par mail.
ionic dev

IONIC, la révolution Angular : Ionic de Drifty Co est un Framework créé en 2013 reposant aussi sur le noyau Cordova, mais intégrant en plus la technologie « AngularJS ». La particularité de ce nouveau Framework est son point d’attention sur la performance et un design plus proche du natif.

App Hybride et Design

Le design d’une app rassemble tous les éléments graphiques et textuels qui seront affichés sur l’écran de votre mobile, l’expérience visuelle d’une app est alors essentielle pour attirer vos utilisateurs. Celui-ci doit donc être bien exécuté. Les mockups seront alors le support référence (forme plus ou moins complexe à réaliser, marge à respecter, etc.) pour garantir le rendu visuel lors de notre développement hybride.

Notre conclusion :

Au vu des limites de Phonegap, nous pouvons l’écarter comme solution efficace. Ionic propose quant à lui beaucoup de composants permettant de se rapprocher d’une vue native (surtout depuis la sortie de Ionic2), cependant lorsqu’il s’agit de réaliser une vue « complexe » la disposition de ses composants devient compliquée et des anomalies commencent à apparaitre. Le développement natif, lui, permet d’assurer un rendu visuel optimal, mais demande plus de temps et de ressources. Aussi en prenant simplement en compte la notion de design, si celui-ci est « simple » nous pouvons vous conseiller d’utiliser Ionic, mais lorsque celui-ci se complexifie, il est préférable de réaliser les vues en natif.

App Hybride et fonctionnalités

Chaque application mobile est composée de fonctionnalités plus ou moins complexes dans leur développement. Pour un rendu de qualité, c’est cette complexité qui déterminera l’usage d’une solution hybride par rapport à un langage natif.

Notre conclusion :

Les solutions peuvent maintenant avoir accès aux mêmes fonctionnalités qu’un développement natif et l’utiliser même plus simplement. Cependant en cas de besoin spécifique (ex : app métier) ces solutions ne seront plus compatibles ou demanderont un travail supplémentaire, ce qui ferait alors du développement natif la meilleure solution.

Outils de développement

Si vous êtes développeur vous savez sûrement (on l’espère) qu’il existe des outils permettant de gagner du temps ou de simplifier le développement de votre app (ex : IDE, outil de debug, plug-ins externes…). Si vous ne l’êtes pas, sachez quand même qu’il est possible de faciliter le travail de vos équipes techniques !

Notre Conclusion

Depuis quelques années, avec l’intégration des solutions hybrides au sein des IDE de développement mobile, les équipes de développement ont accès au même panel d’outils que ce soit en développement hybride ou natif. Un point partout, balle au centre !

App Hybride et Expérience Utilisateur

L’User Expérience rassemble les choix ergonomiques qui permettront de rendre l’utilisation de votre app agréable : fluidité de navigations, réponse rapide de l’application, interface intuitive via des icônes ou design reconnus par les utilisateurs.

Notre Conclusion :

Il existe maintenant des solutions hybrides comme Ionic proposant une expérience utilisateur proche de celle d’un développement natif. Cependant quelques différences existent toujours telles que les animations ou encore une performance amoindrie sur la fluidité, l’ergonomie d’une app Hybride restant par défaut unique quel que soit l’OS. Ce qui fait qu’aujourd’hui encore, si vous souhaitez avoir une expérience utilisateur optimale, le développement natif sera à prioriser.

Ce qu’il faut retenir :

De plus en plus évolutives, les solutions hybrides offrent aujourd’hui des possibilités en terme de développement mobile de plus en plus poussées et cela avec des baisses de coûts (au-delà de 2 OS) et de temps (entre 30 et 50%) très avantageuses, tout en vous permettant de proposer une application téléchargeable sur les stores.
Si la maintenabilité des apps hybrides fait défaut de façon générale (principalement à cause des sorties régulières de nouvelles versions d’OS), chaque framework a ses propres forces et faiblesses, ce serait une erreur et une perte de temps de vouloir à tout prix imiter les interfaces natives sans tenir comptes des particularités de l’Hybride. Utilisez donc plutôt les bénéfices de chaque outil pour créer une expérience mobile attrayante. Ainsi, si Ionic est la meilleure solution pour un résultat esthétique et fonctionnel, Cordova sera n°1 pour un développement compatible avec Android, iOS et Windows Phone.

Au vue de ces conclusions les développements hybrides sont à privilégier dans le cas d’un projet d’app POC (ou non complexe), ou lors d’une application ponctuelle type jeu concours ou événementiel (qui ne sera pas voué à être maintenu dans la durée). Avant de choisir votre technologie pensez donc bien à vous poser ces questions : « Quel est le niveau de complexité de mon projet », « Sur quelles plateformes de développement doit-être présente mon app ? », « Quelle niveau d’exigence est accordée à l’ergonomie et au design de l’app ? », « Quelle sera la fréquence des mises jours ? »…
Dans les autres cas, nous ne pouvons que vous conseiller de vous tourner vers un développement natif pour avoir un rendu bien plus qualitatif et des retours utilisateurs favorables.