Développement d’applications multiplateformes en 2020 : les meilleurs frameworks à prendre en compte

illustration of c

En 12 ans d’existence, les applications mobiles ont parcouru un long chemin.

En 2008, ils étaient à peine 500. Aujourd’hui, ils sont plus de cinq millions. (1)

Que la publicité d’Apple de 2009 « Il y a une application pour ça » soit un mantra marketing ou une véritable prophétie, une chose est sûre : la façon dont nous communiquons avec le monde qui nous entoure et dont nous en faisons l’expérience a complètement changé au cours de la dernière décennie ; un changement de mode de vie largement attribué aux petits carrés soigneusement disposés sur nos écrans.

À tel point que cette vie axée sur les applications nous amène à consulter notre téléphone 58 fois par jour, 90 % de ce temps étant consacré à l’utilisation d’applications. (2, 3)

Naturellement, les entreprises, grandes ou petites, ont suivi de près la tendance mobile, comprenant qu’une application propriétaire augmente leur visibilité, fidélise leurs clients et améliore leurs résultats.

À l’échelle mondiale, le chiffre d’affaires des applications mobiles (téléchargements payants, achats in-app et publicité) devrait avoisiner les 600 milliards de dollars, et les chiffres devraient augmenter, car l’existence d’une application commerciale devient la norme pour toute entreprise en devenir. (4)

Les applications sont donc non seulement très demandées, mais elles peuvent aussi être très rentables. Pourtant, lorsqu’il s’agit de créer une application native pour Android et iOS, les coûts de développement élevés et les délais de déploiement lents peuvent exercer une pression énorme 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 tous : les avantages et les inconvénients du développement mobile multiplateforme

Ceux d’entre vous qui suivent de près la scène du développement d’applications en ont déjà entendu parler : Xamarin, React Native, Flutter, Cordova, etc.

Au fil des ans, ces frameworks ont répondu aux attentes des entreprises désireuses d’atteindre les utilisateurs de smartphones sur les plateformes 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 réussi à bénéficier de.. :

  • Même accessibilité avec moitié moins d’efforts. L’un des principaux avantages du développement d’applications multiplateformes est la facilité de réutilisation du code. Au lieu de publier plusieurs applications natives pour chaque plateforme, vous pouvez réutiliser une grande partie du code et déployer la même application sur plusieurs plateformes.
  • Réduction des coûts. Le code étant écrit une seule fois, l’équipe de développement devra fournir deux fois moins d’efforts, ce qui se traduit par une réduction des coûts de production, de maintenance et d’embauche. La nécessité d’apprendre un langage spécifique à une plateforme est également réduite, car la maîtrise de JavaScript, C++, C# et HTML5 suffit dans la plupart des cas pour le développement multiplateforme.
  • Délai de mise sur le marché plus court. Moins de travail signifie également des délais de déploiement plus courts. Par conséquent, moins de temps passé en développement signifie que vous pouvez fournir de la valeur à vos clients plus rapidement et adapter vos applications en fonction de leurs commentaires plus tôt.
  • Sensation de proximité. Malgré les différences substantielles d’interface utilisateur entre iOS et Android, les applications multiplateformes peuvent émuler la sensation native en gérant par défaut les différences de conception et de navigation.

Ces avantages semblent presque trop beaux pour être vrais. Pourquoi s’engager dans la voie native et créer deux applications distinctes pour les deux plateformes alors que vous pouvez obtenir la même accessibilité en faisant la moitié du travail ?

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

  • Barrière linguistique. L’une des principales difficultés liées au développement d’applications multiplateformes réside dans le fait que les développeurs écrivent une application dans un langage non natif. Cela signifie qu’ils n’auront pas le même accès aux composants natifs, simplement parce que le code est écrit dans un langage de plus haut niveau. Pour faire le lien entre les deux, ils doivent s’appuyer sur des bibliothèques tierces spécifiques à chaque framework, et plus le framework est jeune, plus la bibliothèque est rare.
  • Divergence UX. Android et iOS ayant tous deux des interfaces graphiques très spécifiques (navigation, boutons, menus, etc.), il faut déployer davantage d’efforts pour créer une interface native pour chaque plateforme. Parfois, le travail nécessaire pour y parvenir l’emporte sur les avantages énumérés ci-dessus.
  • Problèmes de performance. La performance est un autre facteur de rupture connu, et même si les différences sont pour la plupart infimes, développer un jeu mobile avec Flutter ou React Native ne sera pas à la hauteur de la technologie native.
  • Taille. En fonction du framework, les liens de code et les plugins tiers peuvent presque doubler la taille du fichier de votre application multiplateforme. Comme vous pouvez l’imaginer, les applications plus volumineuses ne sont pas aussi appréciées que leurs homologues plus légères. Non seulement elles nécessitent plus d’espace de stockage sur l’appareil de l’utilisateur, mais elles prennent également plus de temps et de données à télécharger. En fait, Google Play Apps & Games a publié un rapport montrant qu’une application de 100 Mo reçoit environ 30 % de téléchargements en moins qu’une application d’environ 10 Mo.
  • Votre public cible. Enfin, il se peut que vous ne deviez servir que les utilisateurs d’Android ou d’iOS, auquel cas il serait tout à fait logique d’opter pour une solution native. Le langage de programmation est désormais entièrement compatible avec la plateforme et l’appareil, ce qui signifie que votre développeur n’aura pas à chercher le plugin gyroscope pour Cordova.

Vous voyez maintenant que le développement multiplateforme n’a pas que des avantages. Beaucoup de choses peuvent mal tourner et c’est à vous de décider s’il s’agit d’une approche valable pour votre projet.

Pourtant, pour une grande majorité d’entreprises (comme Facebook, Google et eBay), l’approche du développement multiplateforme s’est avérée être une méthode rentable et fiable pour la création d’applications.

Évaluons quelques-uns des principaux cadres en 2020 et voyons où ils brillent et où ils échouent.

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 moteur de son utilisation à grande échelle est le langage de programmation du cadre, JavaScript, qui est utilisé sur 95 % des 1,7 milliard de sites web dans le monde. (7, 8)

Cela signifie qu’un développeur qui a déjà construit un site web en utilisant JavaScript ne sera pas confronté à une courbe d’apprentissage abrupte lorsqu’il travaillera sur une application multiplateforme en React Native.

Un autre avantage important de React Native est sa capacité à imiter avec succès l’aspect natif d’une application. Bien qu’il n’inclue pas beaucoup de composants d’interface utilisateur, il existe une abondance de composants tiers qui permettent une expérience native fluide.

Le problème, c’est que lorsque vous vous appuyez trop fortement sur des bibliothèques externes, vous risquez d’échanger une sensation de natif contre des performances plus lentes. React Native nécessitant un pont pour ses wrappers natifs, vous risquez de vous retrouver avec une application comportant trop d’appels natifs, ce qui entraînera des problèmes de performances.

Cordova : WebView en vaut-il la peine ?

Tout comme React Native, Cordova est une option séduisante pour les développeurs web qui se laissent convaincre par l’idée de réutiliser leurs compétences existantes en HTML, CSS et JS pour créer une application pour Android et iOS.

Sur le papier, Cordova semble être un rêve. Il existe un grand nombre d’outils et de bibliothèques qui vous facilitent la vie – Ionic, par exemple, est parfait pour gérer l’interface utilisateur et intégrer des services supplémentaires tels que la biométrie des empreintes digitales et le traitement des paiements dans votre application.

Mais soyez prudent avant de sauter dans le wagon Cordova. Si vous ne connaissez pas les limites du framework (et les vôtres), ce rêve peut rapidement se transformer en cauchemar.

Tout d’abord, il serait insensé d’écrire un jeu sérieux ou une application lourde avec Cordova. Contrairement à React Native, qui appelle les fonctionnalités natives via un pont, Cordova rend le code dans une WebView, et l’exécution d’une app de cette manière peut non seulement entraîner une perte de performance significative, mais aussi rendre l’app sujette à des attaques XSS.

Il est également probable que vous passiez du temps à trouver des solutions de contournement pour les bogues spécifiques à la plateforme. Parfois, ce processus entraînera une bonne dose de frustration, car les fonctionnalités natives que vous avez toujours considérées comme acquises doivent maintenant être corrigées par des plugins qui nécessitent une personnalisation ou, pire encore, un développement à partir de zéro.

Pour les petites applications simples, Cordova est une option qui vaut la peine. Les applications de style de vie, d’actualités, d’événements, d’éducation et de messagerie, par exemple, ont été et peuvent être facilement créées avec Cordova, qui, à l’heure où nous écrivons ces lignes, représente 7,88 % du marché. représente 7,88 % du 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 les solutions de contournement que vous n’en aurez gagné en écrivant une seule base de code.

Xamarin : l’OG multiplateforme

Xamarin a été l’un des tout premiers frameworks open-source lancés dans le but de rapprocher les plateformes natives et de rendre le développement mobile moins onéreux.

Et bien que Xamarin ait été lancé en 2011, ce n’est qu’après son acquisition par Microsoft en 2016 que la communauté des développeurs a finalement commencé à lui accorder une certaine crédibilité et une certaine traction.

Aujourd’hui, il s’agit de l’un des cadres de développement multiplateforme les plus populaires, 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 jugé par beaucoup plus difficile à apprendre que React Native, bien que le code fonctionne de manière transparente sur une série de plateformes, notamment Android, iOS, tvOS, watchOS, macOS et Windows.

En outre, les développeurs disposent de tous les outils dont ils ont besoin pour créer leur application multiplateforme grâce à .NET, y compris les API spécifiques à la plate-forme, les packages et XAML.

Aujourd’hui, vous avez le choix entre deux voies pour créer une application dans Xamarin, qui permettent toutes deux d’atteindre des niveaux de performance proches de l’état natif.

  1. Xamarin Native offre une approche de bas niveau pour construire des applications distinctes pour chaque plateforme avec les bibliothèques Xamarin.iOS et Xamarin.Android. C’est une base pour exposer certaines fonctionnalités natives à Xamarin Forms en appelant des API spécifiques à la plateforme.
  2. Xamarin.Forms est un cadre au-dessus de Xamarin Native avec toutes les fonctionnalités de Xamarin. C’est une meilleure option pour ceux qui débutent avec Xamarin car les développeurs peuvent réutiliser jusqu’à 96% du code et les propriétaires de produits peuvent faire évoluer et maintenir leurs applications plus facilement.

Flutter : le nouveau venu

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

Mais bien que novice sur le marché, Flutter a provoqué une onde de choc dans la communauté depuis sa sortie par Google en 2018, s’avérant être 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. En effet, une grande partie de la 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 à passer à cette méthode de construction d’applications orientée objet.

Et même s’ils rencontrent quelques obstacles en cours de route, Flutter fournit une documentation complète pour les aider dans leur transition. pour les aider dans leur transition.

Vient ensuite l’architecture de Flutter qui, par rapport à React Native, ne s’appuie pas sur le pont JavaScript pour traduire les appels en API natives. Le code écrit en Dart se compile en code machine natif, ce qui se traduit par des performances d’application plus fluides et améliorées et une meilleure UX.

Cependant, la façon dont Flutter communique directement avec la plateforme en utilisant sa propre bibliothèque de composants intégrés n’est pas idéale. Les plugins tiers sont difficiles à trouver et les API spécifiques au matériel sont loin d’être aussi nombreuses qu’avec React Native, ce qui fait de Flutter un choix inférieur pour les applications dépendantes du matériel.

Il convient également de mentionner que le moteur C/C++ et Dart sont assez encombrants, et que si les applications créées avec Flutter fonctionnent mieux, elles prennent beaucoup de place.

Cependant, les widgets sont entièrement personnalisables et, combinés à la fonction de rechargement à chaud, font de Flutter un framework idéal pour développer une application MVP avec une interface utilisateur sur mesure et parfaite au pixel près.

Quel cadre choisir ?

La réponse à cette question dépend en grande partie des objectifs que vous vous êtes fixés pour votre application, ainsi que du temps et du budget que vous pouvez allouer à sa production et à sa maintenance.

Quelle que soit l’approche pour laquelle vous optez – native, multiplateforme ou même une combinaison des deux – le mobile ne va pas disparaître. Au contraire, nous devrions passer en moyenne 3,7 heures par jour sur nos smartphones cette année, soit une augmentation de 10 % d’une année sur l’autre et de 35 % par rapport à 2017. (10)

Quelle que soit la façon dont vous décidez de créer votre application, soyez assuré que Microblink sera là pour vous aider lorsque vous aurez besoin d’une solution de numérisation puissante et transparente intégrée à votre application.

avril 30, 2020

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.