Application hybride : c'est quoi ?

1 seul code, application multi-plateforme : iOS, Android, Web

Application hybride : définition

Une application hybride est une application développée avec les technologies du web, c'est à dire des pages html/css et du javascript. Afin de s'adapter aux différentes tailles d´écrans des terminaux mobiles, une application hybride utilise des pages responsives.
A cela s'ajoute des composants (aussi appelés plugins ou SDK) développés dans le langage natif du mobile (iOS ou Android) et encapsulé par le framework Cordova.

Aussi à partir du même code, il est possible de fabriquer une application iOS, Android et même grâce à IONIC la version progressive web app (moyennant quelques adaptations).

Ce qu'il faut savoir c'est qu'au final, une application hybride est quasiment la même chose qu'une application native. Les utilisateurs peuvent la télécharger depuis l'Apple Store ou Google Play Store, et grâce aux SDK natifs, elles peuvent accèder aux mêmes fonctionnalités du téléphone qu'une application native. Ainsi il est possible d'envoyer des notifications pushs, de gérer la géolocalisation, d'accéder à la caméra de l'appareil...
D'ailleurs une fois le développement mobile de l'application hybride réalisé, le développeur utilise les logiciels de développement natifs, à savoir Xcode pour iOS et Android studio (pour android donc), afin de générer les binaires associés à chaque plateforme mobile.

Venant du développement natif, j'ai longuement refusé d'entendre parler des applications non natives. En effet, pendant longtemps celles ci étaient lentes, n'offraient pas toutes les possibilités d'une application native, et il était très facile de faire la différence en terme de performance entre une application native et une application hybride.

Mais depuis 2016/2017, les choses ont bien changées avec l'arrivée de nouveaux frameworks de développement et l'évolution du langage html5, il est devenu plus difficile de faire la différence entre une application hybride et une application développée en natif. Pour ceux qui voudraient creuser le sujet et qui souhaite développer une application hybride, voici un lien vers un livre blanc qui creuse le sujet et explique le développement hybride versus le développement natif.

Le framework IONIC : présentation

IONIC est un de ces nouveaux frameworks, permettant de réaliser une application hybride à partir d'un seul code source (design compris), et de fabriquer la version iOS, Android, Progressive web app (web), le tout de manière très rapide et surtout très simple ! (contraitement à d'autre framework tel que React Natif). On parle aussi de développement cross platforme mobile.

Comme expliqué ci dessus, IONIC repose sur des composants web reprenant l'ensemble des éléments visuels que l'on peut retrouver sur une application mobile mais il est aussi possible de créer ses propres composants.

IONIC donne bien sûr accès aux fonctions natives des mobiles grâce à ces fameux SDK.

Enfin IONIC permet de construire une version pour le web (et c'est un gros plus) sous forme de progressive web app (PWA).
Pour ce dernier cas, les composants natifs sont remplacés (lorsque c'est possible) par leurs équivalents web. Pour plus d'informations sur les progressive web apps, Google propose une page d'information.

Pour finir et être complet, il est même possible de fabriquer une version dîte de bureau, c'est à dire qui tournera sur votre PC (windows ou linux) ou sur votre MAC grâce au couplage de IONIC avec le framework Electron.

Avantages du développement mobile en hybride

On pourrait donc résumer l'avantage de concevoir et développer une application hybride par ces quelques points:

  • 1 seul développement réellement multi-plateforme.
  • 1 seul budget (découle du point précédent)
  • Application peut utiliser les fonctions natives du mobile.
  • Développement beaucoup plus rapide (2 à 3 fois plus rapide que le natif d'après mon expérience)
  • Performance équivalente (ou quasi) aux applications natives

Exemples d'applications mobiles hybrides développées

Agender
Pitstop
Pitstop Pro
HopHopFood