Développement d'applications multiplateformes en 2020 : les meilleurs frameworks à envisager

illustration of c
Last updated

Au cours de leurs 12 années d'existence, les applications mobiles ont beaucoup évolué.

En 2008, ils n'étaient que 500. Aujourd'hui, ils sont plus de cinq millions. (1)

Que la publicité d'Apple de 2009 intitulée « Il y a une appli pour ça » ait été un slogan marketing ou une véritable prophétie, une chose est sûre : la manière dont nous communiquons avec le monde qui nous entoure et dont nous le percevons a complètement changé au cours de la dernière décennie ; une évolution de notre mode de vie largement attribuable à ces petits carrés soigneusement disposés sur nos écrans.

À tel point, en fait, que ce mode de vie régi par les applications que nous menons désormais nous amène à consulter notre téléphone 58 fois par jour, dont 90 % du temps est consacré à l'utilisation d'applications. (2, 3)

Il va sans dire que les entreprises, grandes comme petites, ont suivi de près cette tendance du mobile, conscientes qu’une application propriétaire renforce leur visibilité, fidélise leur clientèle et améliore leurs résultats financiers. 

À l'échelle mondiale, le chiffre d'affaires généré par les applications mobiles (téléchargements payants, achats intégrés et publicité) devrait avoisiner les 600 milliards de dollars, et ces chiffres devraient encore augmenter, car disposer d'une application professionnelle devient la norme pour toute entreprise en plein essor. (4) 

Les applications sont donc non seulement très demandées, mais elles peuvent également être très rentables. Cependant, lorsqu'il s'agit d'en développer une en mode natif à la fois pour Android et iOS, les coûts de développement élevés et les délais de déploiement longs peuvent exercer une pression considérable, même sur les équipes les plus ambitieuses.

La bonne nouvelle, c'est qu'il existe un moyen de contourner ce problème.

Une base de code pour toutes les plateformes : les avantages et les inconvénients du développement mobile multiplateforme

Ceux d'entre vous qui suivent de près l'actualité du développement d'applications en ont sûrement déjà entendu parler : Xamarin, React Native, Flutter, Cordova, etc.

Au fil des ans, ces frameworks ont répondu aux attentes des entreprises souhaitant toucher les utilisateurs de smartphones fonctionnant sous iOS et Android (qui représentent 98 % du marché des systèmes d'exploitation mobiles), sans avoir à développer deux applications distinctes pour chaque système d'exploitation. (5, 6)

Ce faisant, ils ont pu bénéficier des avantages suivants :

  • Same accessibility with half the effort. One of the biggest benefits cross-platform app development offers is the ease of code reusability. Instead of releasing multiple native apps for each platform, you can reuse a significant amount of code and have the same app deployed across multiple platforms.
  • Reduced costs. Because the code is written once, the development team will have to put in half the effort which translates into reduced production, maintenance, and hiring costs. The need for learning a platform-specific language is also reduced as fluency in JavaScript, C++, C#, and HTML5 will in most cases suffice for cross-platform development.
  • Shorter time to market. Less work also means quicker deployment times. Subsequently, less time spent in development means you can deliver value to your customers faster and tweak your applications according to their feedback sooner.
  • Near-native feel. Despite the substantial UX and UI differences between iOS and Android, cross-platform apps can emulate the native feel by handling design and navigation mismatches by default.
Vous souhaitez en savoir plus ?
Contactez-nous dès aujourd'hui pour échanger avec un expert Microblink en matière de fraude et d'identité

Ces avantages semblent presque trop beaux pour être vrais. Pourquoi quelqu’un choisirait-il la voie du développement natif et créerait-il deux applications distinctes pour les deux plateformes alors qu’il est possible d’obtenir le même niveau d’accessibilité en fournissant deux fois moins d’efforts ? 

Il s'avère qu'il y a plusieurs raisons à cela, notamment : 

  • Language barrier. One of the main challenges that come with cross-platform app development is the fact developers are writing an app in a non-native language. This means they won’t have the same access to the native components simply because the code is written in a higher-level language. To bridge the two, they need to rely on third-party libraries specific to each framework, and the younger the framework is, the scarcer the library.
  • UX discrepancy. Because both Android and iOS have very specific graphical user interfaces (navigation, buttons, menus, etc.), more effort is required to achieve a native feel for each platform. Sometimes, the labor put into making this happen outweighs the above-listed benefits.
  • Performance issues. Performance is another known dealbreaker, and even though the differences are for the most part minute, developing a mobile game with Flutter or React Native won’t match the native technology.
  • Size. Depending on the framework, code linkage and third-party plugins can nearly double the file size of your cross-platform app. And as you can imagine, larger apps don’t get as much love as their lighter counterparts. Not only do they require more storage space on the user’s device, but they also take more time and data to download. In fact, Google Play Apps & Games published a report showing a 100MB app will receive ~30% fewer downloads than an app that weighs around 10MB. 
  • Your target audience. Finally, you may only need to serve Android or iOS users, in which case going native would make perfect sense. The programming language is now fully compatible with the platform and the device, meaning your developer won’t have to fish out that gyroscope plugin for Cordova.

Vous voyez désormais que le développement multiplateforme n'est pas toujours une partie de plaisir. De nombreux problèmes peuvent survenir, et c'est à vous de décider si cette approche est la bonne pour votre projet.

Pourtant, pour une grande majorité d'entreprises (telles que Facebook, Google et eBay), l'approche de développement multiplateforme s'est avérée être une méthode rentable et fiable pour créer des applications. 

Passons en revue certains des principaux frameworks de 2020 et voyons leurs points forts et leurs points faibles.

React Native : écrire une fois, déployer partout

Fondé par Facebook en 2015, React Native s'est rapidement imposé comme l'un des frameworks de développement multiplateforme les plus populaires auprès des développeurs. 

Le principal facteur à l'origine de son utilisation à grande échelle est le langage de programmation de ce framework, JavaScript, qui est utilisé sur 95 % des 1,7 milliard de sites web dans le monde. (7, 8)

Cela signifie qu'un développeur ayant déjà créé un site web avec JavaScript n'aura pas à faire face à une courbe d'apprentissage trop raide lorsqu'il travaillera sur une application multiplateforme avec React Native. 

Un autre avantage majeur de React Native réside dans sa capacité à reproduire fidèlement l'aspect et le comportement d'une application native. Bien qu'il ne propose pas beaucoup de composants d'interface utilisateur prêts à l'emploi, il existe une multitude de composants tiers qui permettent d'offrir une expérience native fluide. 

Le problème, c'est que lorsque l'on s'appuie trop sur des bibliothèques externes, on risque de sacrifier une expérience proche de celle d'une application native au profit de performances moindres. Comme React Native nécessite un pont pour ses wrappers natifs, on peut se retrouver avec une application comportant un trop grand nombre d'appels natifs, ce qui entraîne des problèmes de performances.

Cordova : est-ce que WebView en vaut la peine ? 

Tout comme React Native, Cordova constitue une option séduisante pour les développeurs web qui sont séduits par l'idée de réutiliser leurs compétences existantes en HTML, CSS et JS pour créer une application à la fois pour Android et iOS.

Sur le papier, Cordova semble être la solution idéale. Il existe toute une série d’outils et de bibliothèques qui vous facilitent la vie : Ionic, par exemple, est idéal pour gérer l’interface utilisateur et intégrer des services supplémentaires, tels que la biométrie par empreinte digitale et le traitement des paiements, dans votre application.

Mais faites preuve de prudence avant de vous lancer dans l'aventure Cordova. Si vous ne connaissez pas les limites de ce framework (et les vôtres), ce rêve peut rapidement se transformer en cauchemar. 

Tout d'abord, il serait absurde de développer un jeu sérieux ou une application lourde avec Cordova. Contrairement à React Native, qui fait appel à des fonctionnalités natives via un pont, Cordova exécute le code dans une WebView ; or, l'exécution d'une application de cette manière peut non seulement entraîner une perte de performances significative, mais aussi rendre l'application vulnérable aux attaques XSS. 

Vous devrez probablement aussi passer un certain temps à trouver des solutions de contournement pour les bugs spécifiques à certaines plateformes. Parfois, ce processus peut s'avérer très frustrant, car des fonctionnalités natives que vous avez toujours considérées comme acquises doivent désormais être complétées par des plugins qu'il faut personnaliser, voire, pire encore, développer de toutes pièces. 

Pour les applications simples et de petite envergure, Cordova est une option qui mérite d'être envisagée. Les applications consacrées au mode de vie, à l'actualité, aux événements, à l'éducation et à la messagerie, par exemple, ont été et peuvent être facilement développées avec Cordova, qui, à la date de rédaction de cet article, détient 7,88 % des parts de marché des applications. 

Mais si vous développez un jeu comportant beaucoup d'animations, envisagez d'utiliser l'approche native. Vous perdrez plus de temps à trouver des solutions de contournement qu'il ne vous en aura fallu pour gagner du temps en écrivant un code unique.

Xamarin : le pionnier du développement multiplateforme

Xamarin a été l'un des tout premiers frameworks open source lancés dans le but de faire le pont entre les plateformes natives et de rendre le développement mobile plus abordable. 

Et bien que Xamarin ait été lancé en 2011, ce n'est qu'après son rachat par Microsoft en 2016 que la communauté des développeurs a enfin commencé à lui accorder une certaine crédibilité et à lui accorder un certain intérêt.

Aujourd'hui, c'est l'un des frameworks de développement multiplateforme incontournables, qui compte plus de 60 000 contributeurs issus de plus de 3 700 entreprises. (9)

Basé sur C#, un langage de programmation orienté objet, Xamarin est considéré par beaucoup comme plus difficile à maîtriser que React Native, bien que le code fonctionne parfaitement sur diverses plateformes, notamment Android, iOS, tvOS, watchOS, macOS et Windows.

De plus, les développeurs disposent de tous les outils nécessaires pour créer leur application multiplateforme via .NET, notamment des API spécifiques à chaque plateforme, des packages et le langage XAML.

Aujourd'hui, deux approches s'offrent à vous pour développer une application avec Xamarin, qui permettent toutes deux d'atteindre des niveaux de performances proches de ceux des applications natives.

  1. Xamarin Native offers a low-level approach to building separate applications for each platform with Xamarin.iOS and Xamarin.Android libraries. It’s a basis for exposing some native functionalities to Xamarin Forms by calling platform-specific APIs.
     
  2. Xamarin.Forms is a framework on top of Xamarin Native with all functionalities of Xamarin. It’s a better option for those just starting out with Xamarin as developers are able to reuse up to 96% of the code and product owners can scale and maintain their apps more easily.

Flutter : le petit nouveau

Contrairement à React Native et à Xamarin, Flutter est un framework qui n'existe que depuis quelques années. 

Mais bien qu'il s'agisse d'un nouveau venu sur le marché, Flutter a fait sensation au sein de la communauté dès son lancement par Google en 2018, s'imposant comme un concurrent fiable et innovant. 

Son langage de programmation, Dart, n'est peut-être pas aussi populaire que JavaScript, mais il est relativement facile à apprendre ; notamment parce qu'une grande partie de sa syntaxe est similaire à celle de Swift, Kotlin et Java, ce qui signifie que les développeurs ayant une expérience en C/C++ n'auront pas trop de mal à s'adapter à cette approche orientée objet de la création d'applications. 

Et même s'ils devaient rencontrer quelques obstacles en cours de route, Flutter met à leur disposition une documentation très complète pour les accompagner dans cette transition.

Vient ensuite l'architecture de Flutter qui, contrairement à React Native, ne repose pas sur JavaScript Bridge pour traduire les appels en API natives. Le code écrit en Dart est compilé en code machine natif, ce qui se traduit par des performances plus fluides et améliorées de l'application, ainsi qu'une meilleure expérience utilisateur. 

Cependant, la manière dont Flutter communique directement avec la plateforme à l’aide de sa propre bibliothèque de composants intégrés n’est pas idéale. Les plugins tiers sont rares et les API spécifiques au matériel sont bien moins nombreuses qu’avec React Native, ce qui fait de Flutter un choix moins adapté pour les applications dépendantes du matériel. 

Il convient également de mentionner que les moteurs C/C++ et Dart sont assez lourds, et que, même si les applications développées avec Flutter peuvent fonctionner plus efficacement, elles occuperont beaucoup d'espace. 

Cela dit, les widgets fournis par défaut sont entièrement personnalisables et, associés à la fonctionnalité de rechargement à chaud, font de Flutter un framework idéal pour développer une application MVP dotée d'une interface utilisateur sur mesure et d'une précision au pixel près.

Quel framework choisir ?

Eh bien, la réponse à cette question dépendra en grande partie des objectifs que vous vous êtes fixés pour votre application, ainsi que du temps et du budget que vous pouvez y consacrer pour sa création et sa maintenance. 

Quelle que soit l'approche que vous choisissiez — native, multiplateforme, voire une combinaison des deux —, le mobile n'est pas près de disparaître. Au contraire, on s'attend à ce que nous passions en moyenne 3,7 heures par jour sur nos smartphones cette année, soit une hausse de 10 % par rapport à l'année dernière et une augmentation de 35 % par rapport à 2017. (10)

Quelle que soit la manière dont vous décidiez de développer votre application, soyez assuré que Microblink sera là pour vous accompagner lorsque vous aurez besoin d'une solution de numérisation performante et fluide intégrée à celle-ci.

Découvrez nos solutions

L’exploration de nos solutions est à portée de clic. Essayez nos produits ou discutez avec l’un de nos experts pour approfondir notre offre.

Rapport
Analyse de la montée en puissance de la fraude à l'identité alimentée par l'IA

L'IA n'a pas seulement accéléré la fraude. Elle en a fait un véritable système. Nous avons analysé des millions d'interactions liées à l'identité afin de cartographier l'évolution des attaques d'usurpation d'identité selon les régions, les types d'attaques et les niveaux de sophistication — et d'identifier ce que les organisations doivent repenser pour rester dans la course.

Consultez les données