Retour aux articles
  • 28.05.2021

React Native, Flutter ou Xamarin pour du développement multiplateforme ?

React Native, Flutter ou Xamarin pour du développement multiplateforme ?

Les frameworks de développement d'applications multiplateformes permettent d'exécuter le même code sur différents systèmes d'exploitation.

 

Pourquoi choisir le développement mobile multiplateforme ?

Le développement d'applications mobiles multiplateformes a tendance à être mal perçu pour un certain nombre de raisons. Jusqu'à très récemment, il n'existait aucune technologie adéquate pour le développement multiplateforme, et celles qui étaient disponibles n'étaient tout simplement pas bonnes. Elles limitaient les capacités des développeurs et nuisaient gravement aux performances des applications.

Mais malgré ces inconvénients, le développement multiplateforme peut offrir un certain nombre d'avantages :

Un cycle de développement plus court : Avec le développement multiplateforme, il est possible de partager jusqu'à 96 % du code entre plusieurs plateformes. Au lieu de développer deux applications distinctes, il suffit d’en développer qu'une seule, puis de partager ce code entre les systèmes d'exploitation, en effectuant des ajustements spécifiques à la plateforme si nécessaire.

Rentabilité : Le développement d'applications multiplateformes est incontestablement moins cher.

Processus de test simplifié : Une base de code plus petite nécessite moins de tests et permet aux ingénieurs QA de passer plus de temps sur chaque élément de l'application, ce qui se traduit par une couverture de test de meilleure qualité.

Examinons de plus près trois frameworks de développement d'applications mobiles multiplateformes : React Native, Flutter et Xamarin.

Développement multiplateforme : React Native

React Native est un framework de développement d'applications mobiles multiplateformes et open-source créé par Facebook en 2015. Il permet aux utilisateurs d'utiliser JavaScript et React ainsi que les capacités de la plateforme native pour créer des apps mobiles.

Quels sont les avantages de React Native ?

Interface utilisateur : Implémente des composants d'interface utilisateur natifs, ce qui permet aux apps de ressembler à des apps natives, et donc de fournir une interface utilisateur de haute qualité.

Composants prêts à l'emploi : Offre une vaste bibliothèque de composants d'interface utilisateur, permettant un temps de développement plus rapide.

Accès aux fonctionnalités natives : Comme l'appareil photo, l'accéléromètre, etc.

Code spécifique à la plateforme : Permet d'optimiser davantage les applications natives distinctes en utilisant du code natif.

Rechargement à chaud : Permet aux développeurs d'appliquer immédiatement des modifications aux applications sans avoir à les recompiler.

Fiabilité : Développé et soutenu par Facebook.

Gratuit : Plateforme open-source.

Quels sont les inconvénients de React-Native ?

Navigation : La navigation construite en React Native n'est pas transparente et n'est pas comparable à la navigation native.

Interface utilisateur complexe : React Native a du mal à construire des animations et des transitions complexes.

Développement multiplateforme : Flutter

Flutter est un framework de développement d'applications mobiles open-source et multiplateforme créé par Google en 2017. C'est le framework le plus jeune parmi ces trois et en moins de temps a recueilli une quantité substantielle d'attention qu'aujourd'hui il est devenu l'un des frameworks les plus populaires parmi les développeurs front-end.

Quels sont les avantages de Flutter

Un écosystème de développement complet : Flutter propose des API, des widgets préconstruits, des outils CLI et à peu près tous les outils nécessaires au développement d'applications mobiles multiplateformes.

Personnalisable : Bien qu'il offre une vaste bibliothèque de widgets préconstruits, il est également possible d’en créer ou de personnaliser ceux qui existent déjà.

Fiabilité : Développé et soutenu par Google

Rechargement à chaud : Permet aux développeurs de corriger les bogues plus rapidement grâce à une mise en œuvre plus rapide du code.

Gratuit : Plateforme open-source

Quels sont les inconvénients de Flutter ?

Taille importante des applications : Les applications Flutter peuvent être assez volumineuses par rapport à d'autres frameworks, ce qui peut obliger les développeurs à réduire le nombre de bibliothèques et de paquets utilisés, à compresser les images, voire à renoncer complètement à l'animation afin de réduire la taille de leur application.

API natives : Flutter n'expose pas beaucoup d'API natives qu’on peut utiliser. C'est pourquoi, pour de nombreux usages, on aura besoin de paquets tiers.

Développement multiplateforme : Xamarin

Xamarin est un framework de développement d'applications mobiles multiplateformes et open-source qui a été fondé en 2011, ce qui en fait le plus ancien des trois.

Quels sont les avantages de Xamarin ?

Performance : Les apps Xamarin sont connues pour avoir des niveaux de performance quasi natifs.

Un écosystème de développement complet : C#, .Net et Microsoft Visual Studio avec Xamarin sont tout ce dont on a besoin pour créer des applications mobiles avec Xamarin, ce qui en fait l'un des frameworks de développement d'applications mobiles multiplateformes les plus complets du marché.

Une expérience utilisateur sans faille : Xamarin.Forms permet de tirer parti des éléments d'interface standard en fournissant une bibliothèque de modèles afin qu’on puisse réutiliser son code sur différentes plateformes. Il est également possible d'utiliser Xamarin.iOS et Xamarin.Android pour une personnalisation manuelle, si nécessaire.

Quels sont les inconvénients de Xamarin ?

Délai de mise à jour : Chaque fois que de nouvelles fonctionnalités ou mises à jour de la plateforme sont déployées, il y a généralement un délai avant que ces changements ne soient reflétés dans les outils Xamarin.

Taille importante de l'application : Les applications Xamarin peuvent atteindre environ 5 mégaoctets pour les versions et 20 mégaoctets pour les builds de débogage, ce qui les rend plus volumineuses que les applications natives. Cela est principalement dû aux bibliothèques utilisées pour traduire les appels C# en appels natifs.

Graphismes lourds : Xamarin est idéal pour les applications dotées d'une interface utilisateur simple. Cependant, la création d'applications complexes ou de jeux mobiles avec Xamarin n'est peut-être pas la meilleure chose à faire, car vous devrez passer beaucoup de temps à écrire du code spécifique à la plateforme, ce qui va à l'encontre de l'objectif de son utilisation.

Code spécifique à la plate-forme : On doit peut-être réécrire certaines parties de l'interface utilisateur de son application en code natif. Cela signifie qu’on doit avoir des connaissances dans des langages de programmation natifs tels que Kotlin ou Java pour Android, et Swift ou Objective-C pour iOS.

Alors, que doit-on choisir ?

  • React Native est excellent pour les MVPs et les projets à forte interactivité
  • Flutter semble très prometteur et est une bonne option si la stack technique existante ne répond plus à nos besoins et qu’on est prêt à investir dans la migration du projet vers d'autres technologies pour une meilleure mise à l'échelle et une croissance plus rapide.
  • Xamarin est vieux mais il est bien maintenu.