La check-list « Concevoir le cahier des charges de mon app » : cliquez ici !

Application mobile native ou hybride, cross-platform ? Web app ? Vous êtes perdu(e) ? On vous explique !

3.Sep.21

Même si nous n’avons aucune difficulté à utiliser notre smartphone au quotidien, nous n’en maitrisons pas, pour autant, le glossaire de la mobilité. Il est vrai que nous utilisons des applications natives (WhatsApp, Spotify, Waze, Pinterest…), cross-platform ou hybrides (Facebook, Instagram, Twitter, Airbnb, Ubereats…) tous les jours, sans avoir besoin de savoir ce qui se cache derrière ces termes.

Pourtant, dans tout projet de conception d’application mobile (ou de refonte), le choix de la technologie est un élément déterminant : il a un impact notable sur la performance, l’expérience utilisateur, le délai de mise sur le marché, le budget nécessaire ou encore la pérennité de l’application. En fonction du contexte d’utilisation (usage personnel ou professionnel), du profil de la cible visée (de quel équipement elle dispose, sous quel OS…) et des objectifs de l’application, le choix entre application native, cross-platform ou hybride s’effectuera de manière appropriée. Il est donc essentiel de se poser quelques questions avant de se lancer.

Dans cet article, nous vous expliquons ce que sont des applications mobiles natives, cross-platform ou hybrides, et listons les critères qui vous permettront d’opter pour la technologie la mieux adaptée à votre projet.

Application native, cross-platform ou hybride : définitions

Des systèmes d’exploitation différents, des interfaces spécifiques, des profils d’utilisateurs caractérisés

En préambule, il est important de préciser que dans le monde des smartphones, deux systèmes d’exploitation dominent le marché : Android, développé par Google, et iOS, disponible sur tous les équipements mobiles d’Apple. Si ces deux OS sont différents, ils offrent des fonctionnalités similaires, mais dans une interface et un design qui ont leurs spécificités. Il y a donc des inconditionnels de la marque à la pomme, de même qu’il y a des utilisateurs de smartphones attachés à Android et qui savent en reconnaître les spécificités.

Il faut savoir que, même s’ils représentent une moindre part du marché (autour de 20%), les utilisateurs de smartphones Apple n’en sont pas moins intéressants pour les marques, car ils sont plus enclins que les utilisateurs de smartphones Android à dépenser de l’argent dans leurs applications mobiles. Une toute première question à vous poser est sans doute la suivante : votre cible est-elle plutôt Android, plutôt iOS, ou bien est-elle sans préférences ?

Une application native, qu’est-ce que c’est ?

Les applications mobiles sont dites « natives » lorsqu’elles utilisent les outils de développement de leur système d’exploitation, c’est-à-dire les plateformes et langages Android Studio, Java ou Kotlin pour Android, et xCode, Swift ou Objective-C pour iOS.

Les langages de développement de ces 2 plateformes sont très différents : les développeurs maitrisent en général l’un ou l’autre de ces environnements. Ces langages sont compilés par nature, ce qui signifie qu’ils sont exécutables directement par la machine et optimisés pour le terminal mobile. Un programme compilé est en général plus rapide que le même programme écrit dans un langage dit « interprété ».

Si vous faites le choix du natif et que vous souhaitez que votre application soit disponible sur Android et sur iOS, il sera donc nécessaire de développer deux fois l’application.

Et une application hybride, alors ?

Une application mobile hybride est une application dont le code source permet de générer deux applications : l’une pour Android et l’autre pour iOS. Elle s’appuie pour cela sur des technologies « Web » telles que le Javascript, HTML ou encore CSS. Son contenu s’exécute dans un « conteneur » natif, une webview (c’est-à-dire une page internet), grâce à un framework (Cordova, Capacitor), pour pouvoir être utilisée comme une appli native. Il s’agit donc, comme toute application Web, d’un code « interprété » qui nécessite d’être traduit par la machine à chaque exécution, ce qui réduit la performance de l’appli.

L’une des technologies le plus utilisées pour faire un développement hybride est Ionic Framework.

Si votre projet est de disposer d’une application mobile fonctionnant sur iOS et Android, choisir l’hybride plutôt que le natif vous permet de réduire le temps (et le budget) du développement. Également, un seul code est à mettre à jour lors des évolutions.

Quelle différence avec une application cross-platform ?

Les appli cross-platform ressemblent beaucoup aux appli hybrides. Cependant, contrairement aux appli hybrides dont le code s’exécute dans une « webview » native, les applications cross-platform produisent un même code source qui, compilé, produit deux applications natives. Cela induit une meilleure performance et une expérience utilisateur plus proche du natif.

Les technologies utilisées pour développer une application cross-platform sont Appcelerator, Titanium, Xamarin, React Native et Flutter ou encore Kotlin multi plateforme.

Et la « Web app » dans tout ça ?

Il ne s’agit pas d’une techno mobile mais d’une version mobile d’un site web. Ces applications sont directement encapsulées dans un navigateur web.

Contrairement aux 3 précédents types d’application, une web app n’est pas disponible sur les stores et elle n’a pas besoin d’être installée sur le smartphone pour fonctionner, ce qui procure un avantage en terme de stockage. L’inconvénient, c’est qu’elle nécessite internet pour fonctionner (son contenu est donc inaccessible hors ligne), bien que des technologies telles que les Progressive Web App tentent d’y remédier.

Une web app ne peut pas non plus utiliser toutes les fonctionnalités de bas niveau du terminal mobile (par exemple, il est possible d’utiliser le système de notification du navigateur mais pas la puce NFC du terminal) et son comportement reste éloigné des standards mobiles.

Application native, cross-platform ou hybride : sur quels critères vous appuyer pour choisir la technologie adaptée à votre projet ?

Performances et richesse fonctionnelle

Nous l’avons vu plus haut, les applications natives sont plus rapides puisque qu’elles s’appuient sur un langage compilé et elles exploitent pleinement les fonctionnalités spécifiques du terminal mobile (caméra, GPS, accéléromètre, gyroscope, notifications, mode déconnecté…)

Les appli hybrides permettent elles aussi d’accéder aux fonctionnalités du terminal mobile mais leurs performances sont moins bonnes, puisque leur code (produit par un Framework Front-end tel que Ionic) n’est pas compilé, mais interprété.

Ce « défaut » est en parti résolu par la technologie cross-platform, puisqu’elle permet de compiler le code dans une appli native (pour Android ou pour iOS). Cependant, il ne s’agit que d’une mutualisation partielle du code.

Expérience utilisateur

Les applications natives offrent une excellente expérience utilisateur puisqu’elles respectent la multitude de standards de design propres à chaque plateforme (par exemple, un menu sous iOS a un aspect tout à fait différent d’un menu sous Android). Par ailleurs, l’utilisation du SDK (kit de développement) natif de l’OS garantit une gestion optimale de la multitude des terminaux mobiles disponibles sur le marché, et une meilleure pérennité de l’application et de son code source.

À contrario, certaines fonctionnalités propres à chaque OS ne sont pas disponibles via un développement hybride, ce qui nécessite d’inclure du développement natif dans l’hybride. Par ailleurs, même si une application hybride offre une ergonomie cohérente entre les différentes plateformes pour lesquelles elle est développée, il est nécessaire, moyennant un effort de développement supplémentaire, de l’adapter aux standards de navigation spécifiques à chaque OS, si ce critère est important pour les utilisateurs visés. Nous pouvons prendre pour exemple le retour en arrière : sur Android, le terminal comporte un bouton physique ; sur iOS, celui-ci s’effectue via un mouvement sur l’écran ; il convient donc de penser à ces aspects avant de commencer les développements.

Le développement cross-platform offre une réponse à cette limitation de l’hybride car des plugins permettent d’utiliser les fonctionnalités natives du smartphone.

Communauté

Les technologies natives, supportées par les créateurs de chaque OS, ont la communauté la plus étendue.

Les technologies hybrides arrivent en suivant ; plus anciennes que la technologie cross-platform, elles ont largement fait leurs preuves sur des milliers d’applications. Notamment, l’écosystème du Framework Ionic est important et évolue en permanence.

La technologie cross-platform est plus récente et il semble qu’elle tende à progresser. Cependant, il y a encore peu de références majeures sur le marché.

Maintenabilité, évolutivité

L’avantage de l’hybride comme du cross-platform est qu’il n’y a qu’une seule version de l’application à maintenir (c’est donc moins coûteux) ; cependant, il peut survenir des problèmes de stabilité à l’occasion des montées de versions. En effet, si les fonctionnalités spécifiques au téléphone mobile sont accessibles via des plugins, des problématiques de compatibilité entre plugins peuvent apparaître lors de la mise à jour des OS. Par ailleurs, la rapidité d’évolution des librairies web (Ionic, Angular…) rendent nécessaire une montée fréquente de versions.

Concernant les applications cross-platform, la technologie étant récente, les outils de développement sont encore en phase d’ajustement. La maintenabilité et l’évolutivité des appli cross-platform est donc à valider dans le temps.

Celles d’une l’application native sont facilitées puisqu’elle est développée en langage natif, sans adjonction de plugins extérieurs. Le développeur peut accéder à l’ensemble des outils et librairies fournis par Apple et Google, et il bénéficie des dernières fonctionnalités mises à disposition par les plateformes. En conséquence, la durée de vie d’une appli native est en général supérieure à celle d’une appli hybride ou cross-platform.

Mutualisation des compétences

Il est plus facile de trouver sur le marché des compétences pour développer une application hybride (accessible aux développeurs « web ») que pour développer une appli native (maitrisant Swift ou Kotlin). D’autre part, concernant le natif, un développeur aguerri pourra sans doute passer d’une plateforme à l’autre, mais cela s’avèrera plus compliqué pour un développeur moins expérimenté.

Budget et délai de mise à disposition

Sur le critère Coût de développement, une application hybride est moins chère et plus rapide à développer qu’une application native (si multiplateforme). Par ailleurs, nous l’avons vu, tout développement ou évolution d’une application native doit être dupliqué, ce qui impacte le budget et le délai de mise à disposition sur le marché.

Sur ces deux critères, les applications hybrides et cross-platform ont un avantage puisqu’elles sont plus rapidement développées et déployées.

En résumé

À chaque contexte et objectif poursuivi, correspond une solution apportée en termes de technologies mobiles. Pour vous aider à faire votre choix, voici quelques exemples de questions à vous poser :

  • Quelles sont les préférences de votre cible (Android, iOS, les deux ou sans préférence)
  • Quelles sont les compétences disponibles ? (s’il n’y en a pas en interne, quelles sont vos alternatives ?)
  • Quel est le budget prévu ?
  • Y’a-t-il des contraintes de temps ?
  • Y’a-t-il besoin des fonctionnalités spécifiques au terminal mobile (aujourd’hui et demain) : GPS, camera, capteurs, notification, mode déconnecté…
  • Y’a-t-il une version web préexistante ?
  • Quelle est l’importance accordée à l’expérience utilisateur ?
  • Souhaitez-vous avant tout tester une idée d’application sans dépenser trop d’argent (MVP) ?

Nous restons à votre disposition pour échanger avec vous et vous accompagner dans le choix de la technologie adaptée à votre projet. En attendant, on vous offre, en bonus, la check-list de votre cahier des charges, pour ne rien oublier !