Natif vs Cross-Platform : quelle approche pour développer une application mobile ?
Native ou Cross-Platform ? Comment choisir la meilleure approche pour développer une application mobile ? Et s’il existait une autre alternative.
Commençons par expliquer le concept à ta grand-mère
Imagine que tu veux construire une maison. Tu peux soit engager un constructeur local qui connaît bien le terrain et les matériaux (développement natif), soit choisir un constructeur qui peut s'adapter à différents types de terrains et de matériaux, mais avec des compromis (développement cross-platform). Le développement natif signifie créer une application spécifiquement pour une plateforme comme iOS ou Android, tandis que le développement cross-platform permet de créer une seule application qui fonctionne sur plusieurs plateformes en même temps.
Let’s dive in !
Obligatoires pour les produits B2C, les applications mobiles sont de plus en plus demandées dans des produits B2B mais où les utilisateurs sont des employés “lambda” comme les solutions de paye, de gestion de congé où d’avantages employés. Créer une application mobile peut se faire de deux manières principales : natif ou cross-platform. (nous verrons à la fin de cet article qu’il existe un hack : stay tuned)
Mais quelle est la différence entre ces deux approches et laquelle choisir ?
Développement natif
Longtemps la seule possibilité, le développement natif consiste à créer des applications en utilisant les langages et les outils spécifiques à une plateforme donnée. Pour iOS, cela signifie utiliser Swift ou Objective-C avec Xcode, et pour Android, utiliser Java ou Kotlin avec Android Studio.
Avantages
Une performance optimale : Les applications natives sont optimisées pour les plateformes spécifiques, offrant des performances et une réactivité supérieures.
Une intégration parfaite avec le hardware : les applications natives ont un accès direct aux capteurs et autres services permettant une utilisation avancée des fonctionnalités offertes par le téléphone.
Une intégration parfaite avec le software : l’utilisation directe de l’api de développement permet de créer des interfaces utilisateur et des interactions qui respectent les conventions de chaque plateforme, offrant une expérience plus fluide et immersive.
Inconvénients
Le développement natif à un inconvénient majeur qui est la nécessité de dupliquer les développements à chaque nouvelle fonctionnalité. Imaginons que vous ajoutez une feature à votre application SaaS, vous devez lancer deux chantier mobile pour la rajouter sur l’application de chaque plateforme. De plus, les développeurs sont souvent spécialisés dans une technologie, ce qui va donc nécessiter d’avoir un développeur pour chaque plateforme.
Pour résumer, si le mobile fait partie du coeur de votre stratégie avec une application complexe et nécessitant une grande performance alors le développement natif est fait pour vous. Autrement, c’est une approche complexe et coûteuse.
Développement cross-platform
Une alternative, c’est le développement cross-platform qui permet de créer une application qui peut fonctionner sur plusieurs plateformes à partir d’une seule codebase, en utilisant des frameworks comme React Native (développé par Facebook) ou Flutter (développé par Google).
Avantages
Une seule codebase : Plus besoin de dupliquer le développement et les développeurs grâce à une codebase unique et mono-framework.
Un développement accéléré : Une nouvelle feature peut être implémentée pour toutes les plateformes simultanément
Inconvénients
Les inconvénients du développement cross-platform, c’est bien sûr l’inverse des avantages du développement natif. Le développement cross-platform étant plus loin du hardware, les performances et les intégrations au système sont automatiquement moins bonnes.
L’intérêt du cross-platform va donc dépendre des performances et de la qualité ressentie que vous souhaitez avoir dans votre application. Si le mobile n’est pas au coeur de votre stratégie produit, cela peut être un bon moyen d’offrir une expérience qualitative sans trop investir.
Le Hack : ton application web dans une Webview
J’avais promis un hack alors le voici. Imaginons que tu ai besoin de sortir une application mobile très rapidement avec peu de moyens. Cela peut se faire en quelques jours en s’appuyant sur le fait que tu as déjà une application web et que comme toute application web elle peut être affichée sur mobile.
Et pour cela il n’y a que peu choses à faire :
T’assurer que ton application est vraiment de très responsive pour que l’utilisateur n’y voit que du feu
Construire une application cross-platform qui ne soit qu’une coquille vide pour afficher le site de ton application. Et concrètement cette application ne va contenir qu’une webview et des plugins permettant d’accéder aux API natives.
Tester et ajouter la détection des interactions qui sont très spécifiques à l’usage mobile comme le swipe pour revenir en arrière par exemple.
L’énorme avantage de cette solution, est le fait de ne plus avoir à se soucier du développement mobile une fois la V0 sortie. A chaque mise à jour de voter application web, les nouvelles features sont directement accessibles sur mobile.
Et d’un point de vue Product ?
En tant que Product Manager, comprendre les différentes options sur la table, va te permettre de challenger ton équipe technique la prochaine fois qu’on te parlera d’application mobile. En effet, c’est un choix très important dans ta stratégie produit car il a un impact long termes.
Selon les paramètres de ton projet, l’une des options devrait permettre de mieux y répondre et voici donc un tableau récapitulatif :
Alors maintenant, si on te demande une application mobile iso features pour dans 1 mois, tu sais qu’il y a une solution.