Thomas Le Coz | 3 septembre 2019 | Développement Mobile

La création d’application mobile hybride iOS et Android

Lorsque vous faites le choix de la création d’une application mobile, parmi de nombreuses questions vient le choix de la technologie et du langage de développement qui sera utilisé. Si vous devez produire une application mobile pour iOS et Android, vous avez le choix entre la création d’applications dites “natives” ou d’une application dite “hybride” ou “cross-platform”.

Les applications natives sont développées spécifiquement pour le système d’exploitation du téléphone sur lequel elle s’exécutera : une application native Android ne pourra pas être exécutée sur un iPhone et vice versa.

Dans cet article, vous allez apprendre tout ce qu’il faut savoir sur les technologies hybrides et cross-platform, ces technologies qui permettent de développer une application pour Android et iOS à partir d’un même code source.

Application hybride : définition

Une application hybride est une application dont le même code source est utilisable pour créer une application Android et une application iOS — et possiblement Windows Phone ou autres OS mobiles marginales ou maintenant désuètes.

La plupart des applications disponibles aujourd’hui sont des applications natives : elles ont été développées spécifiquement pour Android et iOS. Cela nécessite deux codes sources différents dans deux langages différents — bien souvent Swift pour iOS et Java pour Android — ainsi que des compétences internes différentes pour maîtriser ces langages et maintenir ces applications.

La technologie hybride permet de tout centraliser : un seul code source peut générer deux applications pour Android et iOS. Ce qui permet de réduire le temps et le coût des opérations.

Une seule technologie est utilisée pour déployer sur les deux plateformes et un seul code source est à maintenir et mettre à jour pour les futures versions.

La différence entre hybride et cross-platform

À des fins de simplification, j’utilise le terme “application hybride” pour parler à la fois des applications hybrides et des applications cross-platform mais il s’agit là d’un abus de langage. Les applications hybrides utilisent des éléments web pour créer l’application et son contenu puis un “wrapper” ou une enveloppe native pour que l’application web puisse être utilisée comme une application native sur le téléphone.

Application hybride avec wrapperCela induit certaines limites et contraintes, notamment au niveau des éléments affichables et de la performance de l’application, celle-ci exécutant d’abord un code natif — l’enveloppe ou le wrapper — puis jouant l’application au travers du navigateur web natif à la plateforme.

Les applications cross-platform quant à elles compilent un même code source en deux applications natives. Il ne s’agit plus d’une vue web exécutée sur le navigateur du téléphone mais bien de code natif, permettant plus de flexibilité et une meilleure performance sur le téléphone.

Application hybride compileeSauf mention express, je parle essentiellement d’application cross-platform dans la suite de cet article. Le terme est utilisé pour décrire les deux technologies et le cross-platform est de loin l’option la plus performante aujourd’hui.

Développer une application hybride : les avantages

Le premier avantage énoncé est bien souvent le coût de l’application : les technologies hybrides ne nécessitent qu’un seul code source pour publier deux applications. Cela réduit le travail de moitié comparé au développement d’applications natives.

Le coût de maintenance et des mises à jour suivantes est lui aussi réduit puisqu’il n’y a encore une fois qu’un seul code source à modifier.

Le deuxième avantage est la vitesse de développement et déploiement : le délais de mise sur le marché pour les deux plateforme — Android et iOS — est bien plus court puisque les deux applications sont développées simultanément.

Comparé à l’hybride pure — technologies web portées sur mobile — le cross-platform permet en plus de développer des plugins qui vont venir utiliser les fonctionnalités natives du téléphone, ce qui permet de contourner les limitations de l’hybride.

React, une technologie de développement cross-platform permet par exemple l’utilisation de l’ARKit de l’iPhone grâce à ces plugins. L’ARKit, la technologie de réalité augmentée de iOS n’est pas accessible avec les technologies web mises à disposition par l’hybride mais est accessible avec des technologies cross-platforms.

Ces avantages font du cross-platform un choix stratégique dans de nombreux cas. Néanmoins l’hybride et les technologies cross-platform ont elles aussi des limites.

Les inconvénient des applications hybrides

La plupart des limites des solutions de développement hybrides ont été résolues avec l’arrivée du cross-platform. Il reste cependant certains cas où le développement d’une application native pour chaque plateforme est préférable.

Une limite commune touche les interfaces utilisateur avancées : certains affichages complexes sont difficiles à implémenter notamment parce qu’il faut considérer leur transposition d’une plateforme à une autre. Un menu sur iOS n’a pas le même aspect qu’un menu sur Android : dans le cas d’un menu standard, les frameworks de développement permettent une bonne adaptation mais dans le cas d’interfaces complexes ces adaptations peuvent devenir très complexes.

Une autre limite parfois évoquée est que le code n’étant pas natif, il est théoriquement moins stable que pour une application native et peut entraîner certains bugs.

La plupart des fonctionnalités du téléphone (GPS, caméra, notifications, …) sont accessibles par des plugins mis à disposition par les communautés de développeurs. Cela peut amener une dépendance envers ces communautés, des soucis lors des mises à jour des OS si ceux-ci amènent des mises à jour au niveau de l’accès aux fonctionnalités du téléphone — puisqu’il faut alors que les développeurs des plugins les mettent à jour et un accès aux fonctionnalités plus compliqué que pour un développement natif

Quelles sont les technologies de développement “hybrides” ?

Lorsque vous recrutez un freelance ou une agence pour le développement de votre application, il est intéressant de lui poser des questions sur ce qu’il entend par “hybride”.

Ci-dessous, vous trouverez une liste des principales technologies disponibles pour faire du cross-platform ou de l’hybride, ainsi que quelques applications connues de façon à ce que vous puissiez vous projeter sur ce qu’il est possible de faire et du “rendu” de ces applications.

Applications web portées et PWA : Progressive WebApps

Les applications “HTML5” qui ne mentionnent pas d’autres noms comme ceux cités dans cette section sont bien souvent des sites web portés sur mobile sont particulièrement limitées mais peuvent tout à fait convenir pour des applications simples comme une vitrine ou une publication périodique (magazine, blog, …).

Technologies hybrides : Ionic, Apache Cordova et PhoneGap

Ces trois technologies sont toutes liées :

  • Apache Cordova est un projet libre qui sert de base aux développements sur plusieurs plateformes en utilisant des technologies web (HTML5, Javascript et CSS) plutôt que du code natif
  • PhoneGap est une version de Cordova produite et maintenue par Adobe
  • Ionic Framework est un ensemble de classes CSS et de bibliothèques et modules Javascript basé sur AngularJS, permettant d’augmenter Cordova

Technologies cross-platform: Appcelerator, Titanium, Xamarin, React Native et Flutter

Ces technologies sont les plus permissives et permettent de bénéficier du meilleur des deux mondes : une grande flexibilité dans le développement et des applications performantes et réactives, le tout avec un code source unique pour des déploiements sur plusieurs plateformes.

Une mention spéciale sur React Native : nous avons pu travailler sur de nombreuses applications avec React et cette technologie permet de couvrir toutes les spécifications qui ont pu nous être soumises par nos clients.

C’est une technologie flexible qui a fait ses preuves, puisque utilisée pour des applications largement utilisées comme Facebook ou Instagram et qui, par ses plugins et sa communauté ne souffre pas des limitations d’autres technologies.

Instagram, application react native
Instagram, application cross-plateform React Native avec un milliard (!) d’utilisateurs actifs par mois

Nous sommes bien entendu toujours ouverts aux nouvelles apparitions comme Flutter, développé par Google est la réponse du fameux moteur de recherche à Facebook (auteur de React).

Conclusion

La technologie hybride a beaucoup évolué et est un choix pertinent dans de plus en plus de situations.

Hormis dans le cas d’applications nécessitant l’utilisation de ressources propres à un OS en particulier comme par exemple l’ARKit de iOS ou bien l’utilisation d’applications avec une forte dimension graphique.

Les technologies hybrides comme React sont un excellent choix dans la plupart des cas, notamment dans le développement de MVP — Minimum Viable Product — dédié à la validation d’un business model.

Cela permet en effet de minimiser le budget et le temps de déploiement sur le marché, deux facteurs importants lors la création d’un premier projets où les fonds sont limités et les retours utilisateurs doivent être collectés le plus rapidement possible.

Les inconvénients exprimés les années passées comme le manque de réactivité ou le manque de fonctionnalités sont maintenant largement compensés par l’augmentation des performances des téléphones ainsi que des modules ou plugins permettant d’interagir avec les fonctionnalités de ces téléphones.