Développement mobile natif ou développement mobile multiplateforme : comment choisir?
Lorsque nos expert.e.s débutent leur travail sur un nouveau projet d’application mobile, ils.elles se questionnent d’abord à savoir s’ils ou si elles concevront une application mobile native ou une application mobile multiplateforme. Si les aspects du rendu et de la performance des deux approches sont relativement équivalents, pourquoi est-il si crucial faire un choix éclairé entre ces deux types de développement? Évaluons d’abord les deux options qui s’offrent à nous :
Le développement natif
Historiquement, les applications mobiles étaient développées de manière native, car il n’existait pas de solution multiplateforme performante.
En développement natif, deux langages sont prédominants :
-
Swift est le langage développé par Apple pour développer sur iOS. Il a remplacé Objective-C, étant beaucoup plus efficace pour les développeur.euse.s.
-
Kotlin, développé par la firme JetBrains, s’est établi comme le meilleur choix pour développer des applications sur Android. Il permet notamment une interopérabilité complète avec Java, une autre option de développement Android.
Le développement multiplateforme
Le développement multiplateforme est apparu avec pour objectif de réduire les coûts de développement en augmentant la réutilisation de code. Le principe est d’utiliser le même code pour créer une application unique, compatible sur différents périphériques et plateformes.
En développement multiplateforme, différents types d’options sont disponibles :
-
React-Native : développé par Meta, ce cadriciel (framework) d’interface utilisateur permet aux développeur.euse.s d’utiliser des concepts similaires au framework Web React.js pour produire des applications, en utilisant les composantes d’interface utilisateur natives de chacune des plateformes. Les développeur.euse.s peuvent ainsi développer en TypeScript et produire une application iOS et Android très performantes offrant une interface utilisateur intéressante. Les fonctionnalités natives sont accessibles avec un grand nombre de plugiciels (plugin) disponibles. Il est aussi possible d’intégrer du code natif (Swift, Kotlin) si une fonctionnalité particulière requiert l’accès à une fonctionnalité native et que le plugiciel n’existe pas déjà.
-
.NET : de développement multiplateforme au code source libre unifiée, elle permet de créer de nombreux types d'applications. Un avantage notable de .NET est le fait que l’entièreté des interfaces API natifs des plateformes (comme iOS et Android) sont directement accessibles en C# : il n’y a donc pas besoin de mélanger du Swift ou du Kotlin dans le code pour accéder à ces interfaces API. Pour partager le code de l’interface utilisateur, Uno Platform est une importante plateforme au code source libre permettant de créer des interfaces fonctionnant sur iOS, macOS, Linux, Android et WebAssembly. Uno Platform est, entre autres, particulièrement efficace pour développer des interfaces qui s’adaptent aux différentes tailles d’écrans, par exemple entre un iPad et un iPhone.
-
Flutter : ce framework en code source libre de Google permet de créer des applications multiplateformes compilées en mode natif à partir d’un seul code.
Les besoins à considérer dans le choix du type de développement d’application mobile
Répondre aux besoins de votre marché et de vos utilisateurs
Heureusement, le choix d’un type de développement ou d’un autre ne sera pas une entrave à l’atteinte de vos objectifs d’affaires. Celui-ci peut toutefois être influencé par un enjeu de marché ou le contexte d’affaires : certaines entreprises privilégieront un développement sur iOS exclusivement, considérant que la majorité de ses consommateurs sont des utilisateurs d’iPhone. D’autres voudront une application unique qui répond aux besoins de tous les utilisateurs, se dirigeront donc vers une application multiplateforme.
Répondre aux besoins de délai de mise en marché
C’est souvent pour la rapidité de production que le développement multiplateforme est privilégié : en effet, puisque c’est un développement unique pour plusieurs plateformes, il est évident que la durée de développement global est sensiblement plus rapide si l’on souhaite développer une application mobile pour plusieurs systèmes d’exploitation.
Fournir la meilleure expérience utilisateur (UX) et interface utilisateur (UI)
En matière de conception visuelle, le choix du développement natif ou multiplateforme ne va pas influencer les décisions, puisque l’objectif principal est de tirer profit au maximum des contrôles et des fonctionnalités natives, comme le bouton « retour en arrière » ou la carte de navigation, pour bâtir une expérience utilisateur basée sur des comportements connus de l’utilisateur.
Concernant l’interface utilisateur, il existe deux options :
- Créer une interface utilisateur extrêmement personnalisée à l’image de la marque, quelle que soit la plateforme;
- Créer une interface Android qui restera près de l’interface utilisateur du Material Design de Google et une interface iOS qui respectera les lignes directrices des HIG (Human Interface Guidelines).
Généralement, c’est la deuxième option qui est la plus populaire : elle permet de bâtir une interface basée sur des acquis des usagers, leur évitant de se sentir perdus.
Pour cela, le développement multiplateforme permet de faire appel aux fonctionnalités natives pour adapter les fonctionnalités les plus communes à chaque système d’exploitation – et donc chaque habitude d’utilisation. À l’opposé, le développement natif utilisera directement les fonctionnalités natives.
Passer l’épreuve des tests de qualité
Le plus grand avantage des tests d'applications multiplateformes par rapport aux tests d’applications natives est la quantité d'informations que l’on peut obtenir en commençant les tests sur une plateforme ou l’autre. Pour une application multiplateforme, une première série de tests sur iOS ou Android permettra de corriger la majorité des bogues. Ensuite, les bogues spécifiques à chaque plateforme, qui sont maintenant plus rares qu’auparavant, pourront être corrigés.
L’un des défis des tests mutliplateformes est que, parfois, la correction d'un bogue spécifique à une plateforme peut avoir un effet sur une autre plateforme. En raison de ce risque, toute modification nécessitera des tests sur toutes les plateformes pour assurer qu’aucun nouveau problème n’a été introduit.
Répondre aux besoins internes
Le choix du langage va avoir un impact très important sur l’ensemble du projet, du début à la fin. En effet, l’équipe qui prendra en charge l’application mobile, à l’interne et chez nventive, devra être spécialisée dans un type de développement.
Il faut donc faire preuve de vigilance quant aux compétences pré-existantes de votre équipe interne, puisque les expert.e.s de chez nventive maitrisent tous les types de développement.
Répondre aux besoins d’évolution et de maintenance
En ce qui concerne la maintenance et l’évolution, plusieurs facteurs s’appliquent à la fois au développement natif et multiplateforme.
Le premier est bien évidemment la mise à jour régulière des plateformes : chaque année, Apple et Google sortent une nouvelle version de leur système d’exploitation, imposant inévitablement une mise à jour de l'application. Ceci amène toutefois de belles possibilités d’évolution continue, avec l’ajout de nouvelles fonctionnalités proposées par les nouvelles versions.
Du côté de la maintenance multiplateforme, en plus des mises à jour des systèmes d’exploitation, notons également la technologie multiplateforme dont il faut tenir compte. C'est-à-dire que lorsqu’on choisit ce genre de technologie, on doit effectivement maintenir à jour trois plateformes.
Le choix d'une technologie multiplateforme a quand même l’avantage majeur d’un code unique, ce qui en simplifie la gestion.
Considérer le coût total de possession
Il est important de tenir compte du coût total de possession, c’est-à-dire le coût de développement de l’application, ainsi que ses coûts d’exploitation pendant la durée de sa vie utile. Ces coûts sont généralement plus bas pour une application multiplateforme, pour toutes les raisons citées ci-dessus : coût de développement, ressources humaines nécessaires, coûts d’évolution et de maintenance, etc.
Pour résumer, il existe plusieurs raisons pour lesquelles faire le choix d’un développement natif : pour certains projets, cette approche va permettre de développer l’expérience la plus complète possible, en faisant appel aux fonctionnalités natives les plus précises, comme les détecteurs (sensors), la réalité augmentée ou virtuelle et en offrant une interface utilisateur avec des fonctionnalités comme le floutage (blur) ou le néomorphisme.
En ce qui à trait à la stratégie numérique, certains ensembles de fonctionnalités pourront donc influencer la décision d’opter pour ce type d’approche.
Le développement multiplateforme est le choix effectué dans la plus grande majorité de nos projets pour de nombreuses raisons, notamment des raisons de coûts et de durée de développement. Les performances et le rendu sont tout aussi satisfaisants, et les technologies multiplateformes permettent tout aussi bien de profiter des dernières fonctionnalités sans délai trop important.
De plus, un plus grand nombre de développeur.euse.s sont spécialisé.e.s en développement multiplateforme, permettant de développer et de faire évoluer la solution aussi longtemps que nécessaire.
Vous comprenez désormais de quelle manière nos expert.e.s font le choix entre le développement mobile natif ou le développement mobile multiplateforme.