Net Maui vs Flutter : Quel framework multiplateforme vous conviendra en 2024 ?

/ 15.02.2024 Actualités

Si vous vous demandez si .NET MAUI remplacera Xamarin, vous êtes au bon endroit, car selon les données actuelles, Microsoft abandonnera progressivement le support de Xamarin Forms à partir du 1er mai 2024. En raison de l’arrêt de la prise en charge de la plateforme, les entreprises sont confrontées à la décision de migrer le produit vers .NET MAUI en tant que successeur de Xamarin.Forms ou d’utiliser des frameworks multiplateformes populaires tels que Flutter ou React Native. 

Les développeurs sont toujours à la recherche de moyens plus rapides, plus simples et moins couteux pour mettre leurs produits sur le marché. De nombreuses solutions multiplateformes réduisent le cout et la complexité des projets en permettant la prise en charge de plusieurs plateformes à partir d’une base de code unique. Cela peut avoir une incidence considérable sur le délai de mise sur le marché et la disponibilité des produits, car il suffit d’écrire le code de l’application une seule fois, puis de l’exécuter sur chaque appareil. 

Quel est le choix pour le développement d’applications multiplateformes ? 

Choisir la bonne plateforme pour votre prochain projet peut s’avérer difficile. Les solutions les plus populaires dans ce domaine sont React Native, Ionic, .NET MAUI de Microsoft et Flutter, soutenu par Google. Bien qu’aucune technologie ne soit parfaite, l’une d’entre elles peut certainement être mieux adaptée aux exigences du système de votre projet. Même si celle-ci est moins favorable en apparence, il est essentiel de connaitre les avantages et les inconvénients de la solution disponible que vous choisirez. 

Commençons par quelques connaissances de base sur ces cadres. 

Qu’est-ce que .NET MAUI ? 

Pour bien comprendre ce qu’est le MAUI .NET, faisons un petit tour d’horizon de son évolution. 

Xamarin 

Xamarin est un outil utilisé pour le développement multiplateforme. Il a été lancé en mai 2011 par les ingénieurs qui ont créé Mono, Xamarin.Android et Xamarin.iOS. Jusqu’en 2014, les vues Xamarin devaient être implémentées séparément pour chaque plateforme (XML – Android, Storyboard/XIB – iOS). L’introduction de Xamarin Forms a rendu possible la création d’une couche de vue commune, quelle que soit la plateforme. Finalement, Mono est devenu Xamarin et, en 2016, a fait partie de .NET MAUI de Microsoft, qui a été construit sur la base de Xamarin. .NET MAUI a permis aux développeurs d’écrire du code en C#, le rendant disponible sur les plateformes iOS et Android. 

Xamarin Forms 

En 2014, Xamarin.Forms a été ajouté au cadre, permettant la réutilisation de l’interface utilisateur sur toutes les plateformes et réduisant le temps de mise en marché. Une méthode conviviale de conception d’interfaces à l’aide de XAML a ensuite été introduite. Cette innovation a facilité la création d’interfaces utilisateur qui s’adaptent de manière transparente à différentes plateformes. 

.NET MAUI 

En 2020, Microsoft a annoncé MAUI (Multi-platform App UI), une évolution de Xamarin.Forms. Sortie en mai 2022, MAUI reprend les meilleurs aspects de la plateforme Xamarin.Forms et les porte à un niveau supérieur. La grande nouveauté de MAUI est que si nous avons besoin d’une solution pour chaque plateforme dans notre projet Xamarin.Forms, nous aurons désormais une base de code dans un seul projet. Cela signifie que vous pouvez écrire le code une seule fois et l’exécuter sur plusieurs plateformes cibles, ce qui simplifie la programmation et garantit la cohérence. 

Résumons donc quelques points clés de .NET MAUI.

Principales caractéristiques du MAUI .NET en tant que cadre multiplateforme 

  • Langage de programmation 

.NET MAUI utilise C#, un langage de programmation mature et largement utilisé, développé par Microsoft. Le langage C# est connu pour ses caractéristiques orientées objet et son soutien important au développement d’applications d’entreprise. 

  • Plus natif que multiplateforme 

.NET MAUI utilise une approche hybride. Il utilise une base de code C# unique pour prendre en charge iOS et Android, mais nécessite une base de code distincte pour le Web et les ordinateurs de bureau. Cela signifie qu’il faut écrire du code supplémentaire pour prendre en charge ces autres plateformes. 

  • Communauté et soutien 

.NET MAUI étant un framework plus récent, le soutien de sa communauté sur GitHub continue de croitre, recueillant une note de 21,3 k étoiles (février 2024). Cependant, il est soutenu par Microsoft, ce qui signifie qu’il aura probablement un avenir à long terme. .NET MAUI présente également une forte compatibilité avec les bibliothèques et outils .NET existants. 

  • Performance et expérience de l’utilisateur 

 .NET MAUI est encore en cours de développement, ses performances et son expérience utilisateur sont donc moins matures que celles de Flutter. Cependant, .NET MAUI devrait s’améliorer dans ces domaines au fil du temps. 

  • Productivité 

Possibilité de créer des applications attrayantes et plus rapides en intégrant les capacités de Visual Studio Enterprise à .NET MAUI. 

.NET MAUI a-t-il un avenir ? 

Selon les développeurs qui ont travaillé avec Xamarin, .NET MAUI est un bon choix pour ceux qui connaissent et travaillent en .NET/C#. MAUI est une solution relativement nouvelle et fait encore l’objet d’un processus de développement intensif. Le portage des fonctionnalités de base de Xamarin vers MAUI est un défi et n’est pas toujours couronné de succès. Pour de nombreux développeurs .Net, MAUI est assez immature et n’est pas très pratique pour le codage quotidien. L’expérience utilisateur, le chargement à chaud et XAML ne sont pas satisfaisants, et le temps de compilation est trop long. 

C’est parce que MAUI est simplement une grande itération dans Xamarin Forms. Le référentiel montre que la moitié des problèmes ouverts sont des bogues de régression et l’autre moitié des problèmes liés à Xamarin. 

On a l’impression que Microsoft n’a pas encore décidé de la direction à donner au développement de MAUI, et c’est là son principal problème. Il existe de nombreuses façons d’écrire des applications MAUI et de nombreuses façons différentes de faire les choses. Le choix de l’approche dépend notamment de l’utilisation de MVVM (Model – View – ViewModel), MVU (Model-View-Update), du balisage Maui ou XAML, ou de Blazor Hybrid. Qu’en est-il des liens Maui Blazor ? Il s’agit de deux solutions très différentes. L’une fournit simplement une application Web Blazor, et l’autre utilise le style de programmation Blazor en utilisant tous les composants natifs. 

Cela donne constamment à MAUI une impression de chaos, dans lequel il est assez difficile de rechercher des informations, car il existe de nombreuses approches différentes pour résoudre les problèmes. C’est pourquoi il est recommandé de ne pas développer d’applications exclusivement en MAUI, mais de l’utiliser comme une enveloppe qui compile un site Web à différentes fins. En revanche, Blazor et le futur Blazor United, qui fonctionne bien avec MAUI, ont certainement un bel avenir devant eux. 

Résumons donc le MAUI .NET : 

  •  Il est encore nouveau sur le marché 

En tant qu’évolution de Xamarin.Forms, MAUI .Net doit encore faire face à des problèmes non résolus. Les développeurs peuvent rencontrer des bogues ou des limitations qui peuvent affecter les délais de développement des projets et la stabilité générale. Bien que Microsoft soutienne MAUI .NET, il faudra peut-être un certain temps pour que la plateforme murisse et atteigne le même niveau de stabilité et de fiabilité que des alternatives plus établies telles que React Native ou Flutter. 

  • Dépendant de l’écosystème .NET 

Si cela est bénéfique pour les développeurs déjà familiarisés avec les technologies .NET, pour ceux qui utilisent d’autres langages de programmation, le seuil d’entrée est difficile à franchir. En revanche, des frameworks tels que Flutter et React Native utilisent respectivement Dart et JavaScript, qui sont accessibles et attrayants pour un plus grand nombre de développeurs. 

  • Faible performance de la plateforme 

.NET MAUI, bien que supérieur à la plateforme Xamarin.Forms, n’atteint pas toujours les performances de la programmation native ou d’autres solutions multiplateformes telles que Flutter. Cela peut se traduire par un démarrage plus lent de l’application ou une réactivité réduite, ce qui peut avoir un impact négatif sur la perception de l’utilisateur. 

Nous allons maintenant nous concentrer sur les principales caractéristiques de Flutter, l’un des frameworks les plus populaires du marché. 

Qu’est-ce que Flutter ? 

Flutter est un SDK open source pour la création d’applications multiplateformes publié par Google en 2017. Il a pris d’assaut l’industrie des applications multiplateformes, et depuis 2023, 36 889 projets ont été construits à l’aide de Flutter, qui est l’un des 4 meilleurs frameworks de développement d’applications disponibles aujourd’hui. 

Le graphique ci-dessous montre que la popularité de Flutter n’a cessé de croitre au fil des ans. 

Et selon une enquête Statista menée auprès des développeurs en 2022, Flutter est le framework mobile multiplateforme le plus populaire utilisé par les développeurs mondiaux. D’après l’enquête, 46 % des développeurs utilisent Flutter. Dans l’ensemble, environ un tiers des développeurs mobiles utilisent des technologies ou des frameworks multiplateformes ; le reste des développeurs mobiles utilisent des outils natifs. 

Pourquoi Flutter est-il largement utilisé dans les applications multiplateformes ? 

Flutter offre une grande vitesse de développement dans le processus de développement d’applications multiplateformes et permet de créer des applications plus conviviales. Son approche est différente de celle des autres solutions multiplateformes. Elle utilise le langage de programmation Dart, développé par Google, pour éviter d’avoir recours à des langages déclaratifs distincts, tels que JSX ou XML, pour définir les mises en page ou le code. Flutter est écrit dans ce seul langage, ce qui offre plus d’options d’outils puisque l’interface utilisateur et la logique partagent la même structure. Flutter dispose donc de l’un des meilleurs IDE et outils de développement pour faciliter la vie des développeurs. 

 Résumons donc ce qu’il faut savoir sur Flutter : 

  •  Language et écosystème 

Flutter utilise Dart comme langage de programmation, qui offre une approche réactive et déclarative de la construction d’interfaces utilisateur avec une syntaxe similaire à celle de C#. L’écosystème comprend un riche ensemble de paquets et de plugins disponibles par le biais de pub.dev.   

  • Rendu de l’interface utilisateur 

 Flutter utilise un moteur de rendu personnalisé, Skia, pour créer une interface utilisateur plus rapide avec des composants visuellement attrayants et cohérents. Les widgets de Flutter sont hautement personnalisables et permettent des conceptions parfaites au pixel près. 

  • Popularité et communauté 

 Flutter a gagné une immense popularité parmi les développeurs, en particulier pour le développement d’applications mobiles, et sa communauté dynamique contribue à son développement. Il est très présent sur des plateformes telles que Stack Overflow et GitHub. 

  • Plateforme cible ? Une approche multiplateforme 

Flutter utilise un seul code et une seule base pour prendre en charge de nombreuses plateformes, notamment iOS, Android, Web et bureau (API unifiée). Cela signifie que vous pouvez écrire votre code une seule fois et le déployer sur toutes ces plateformes sans aucune modification. Flutter y parvient grâce à une approche « write once, run everywhere » (WORA), dans laquelle le même code est compilé en code natif pour chaque plateforme. 

  •  Grande communauté et soutien 

 Flutter dispose d’une communauté beaucoup plus importante et active que .NET MAUI. Cela signifie qu’il y a plus de ressources disponibles pour les développeurs Flutter, comme des tutoriels, de la documentation et des bibliothèques tierces. Flutter dispose également d’un plus grand nombre d’appareils pris en charge. 

  • Performance et expérience de l’utilisateur 

 Flutter est connu pour ses performances élevées et son excellente expérience utilisateur. Il utilise le moteur graphique Skia, réputé pour sa rapidité et ses performances. Flutter fournit également un certain nombre de widgets intégrés, permettant aux développeurs de créer des interfaces utilisateur d’aspect natif. 

Flutter est-il une technologie d’avenir ? 

Flutter est une technologie solide pour le développement rapide d’applications grâce à son moteur de rendu très performant et à son riche ensemble de widgets intégrés. Il a certainement un avenir pour le développement multiplateforme et est idéal pour créer des applications pour les startups qui veulent construire un MVP aussi rapidement que possible. Google continue d’investir massivement dans l’écosystème de développement natif d’Android, en développant et en mettant à jour en permanence de nouvelles bibliothèques. L’un des grands avantages de Flutter est qu’il s’agit d’un projet open source dont la communauté est importante et en pleine croissance. 

Même si toute l’équipe de Flutter était licenciée, il est certain que beaucoup continueraient à travailler sur le projet et même à créer une fondation pour poursuivre son développement. Les ingénieurs peuvent continuer à contribuer à Flutter où qu’ils aillent, contrairement à toute application propriétaire (Stadia, d’autres applications Google qui ne sont plus en développement). De plus, il y aura toujours des contributeurs open source et d’autres entreprises (Bytedance, Alibaba, Sony, Ubuntu) qui auront à cœur de continuer à le maintenir. 

Quand l’utilisation de .NET MAUI est-elle préférable à celle de Flutter ? 

.NET MAUI peut être un meilleur choix que Flutter dans certains scénarios : 

  • Préférence linguistique 

Si votre équipe de développement est plus à l’aise avec C# et XAML, .NET MAUI peut être un meilleur choix, car il utilise ces langages. 

  •  Intégration 

.NET MAUI s’intègre bien à Visual Studio et Visual Studio Code. 

  • Collection élargie de paquets NuGet et d’outils .NET disponibles lorsque l’on travaille avec Maui 

Néanmoins, nous devons être conscients qu’il est nécessaire de consacrer du temps à l’intégration d’un support adéquat et à l’adaptation complète de tous les paquets Xamarin pour rentabiliser cet écosystème. 

Quand Flutter est-il meilleur que .NET MAUI ? 

Le principal avantage est l’amélioration des performances des applications et de l’expérience des développeurs. 

  • Plus de fonctionnalités natives pour les appareils 

Flutter utilise des composants d’interface utilisateur natifs. Dans MAUI, cela peut également être un inconvénient, selon vos préférences, car cela peut entrainer des incohérences visuelles entre les différentes plateformes mobiles. 

  • Les applications Flutter ont tendance à être plus petites et plus rapides que celles construites à l’aide de .NET MAUI. 

Grâce à la compilation AOT (Ahead Of Time) de Flutter, qui réduit la taille du code compilé, un développeur Flutter expérimenté peut rapidement proposer des fonctionnalités avec de nombreux widgets personnalisables prêts à l’emploi et une bonne documentation intégrée. 

  • Flutter est plus mature que MAUI. 

De nombreuses applications construites avec Flutter peuvent être téléchargées et testées, ce qui en fait un choix plus facile. 

  • Le moteur Flutter peut fonctionner comme une application entière, ce qui signifie qu’en choisissant Flutter, les développeurs ne sont pas limités par lui 

 Il est facile de passer au code natif ou d’ajouter un écran Flutter à des applications natives existantes. Cela permet de tester et de présenter Flutter très rapidement. 

  • Créer plus rapidement des applications multiplateformes 

Flutter prend actuellement en charge des plateformes telles que Windows, iOS, Android, Google Fuchsia, la plateforme Web, Linux, macOS Windows et les appareils embarqués (industrie automobile ou électronique, par exemple, écrans, horloges numériques). Les développeurs Flutter peuvent écrire des applications complexes à partir d’une seule base de code et créer facilement des applications multiplateformes à des prix abordables. Ils gagnent également beaucoup de temps. 

  • Réduire les couts en créant des MVP 

Flutter convient au développement de MVP (produits minimalement viables) en raison de son évolutivité, de sa flexibilité et de l’utilisation de widgets intégrés. Les développeurs peuvent rapidement construire un MVP pour leur projet et apporter des modifications plus rapidement pour répondre aux exigences et aux versions personnalisées, réduisant ainsi le temps de mise en marché. 

  • Créer des applications visuellement attrayantes 

Flutter est basé sur des widgets et son architecture d’application peut être utilisée pour concevoir des interfaces utilisateur attrayantes. Vous pouvez également utiliser le constructeur visuel d’applications de Flutter Flow pour créer des interfaces utilisateur attrayantes sans codage. 

Créez des applications multiplateformes en fonction de vos besoins. 

Comme nous l’avons mentionné plus haut, .NET MAUI et Flutter sont tous deux des outils permettant de développer des applications multiplateformes. Flutter est un bon choix pour les projets qui nécessitent un cycle de développement rapide, une large gamme d’appareils pris en charge et une communauté solide. .NET MAUI convient aux projets qui nécessitent un langage de programmation couramment utilisé et une forte compatibilité avec les bibliothèques et outils .NET existants. 

 Le choix entre les deux dépend souvent des exigences précises du projet, de la connaissance des langages et des outils par l’équipe et des préférences personnelles. 

Besoin de conseils sur .NET MAUI ou Flutter ? Pour plus d’informations sur tout ce qui concerne .NET ou Flutter, contactez-nous à tout moment. Nous serons heureux de vous aider à choisir les bonnes solutions. 

Sources : 

  • https://www.codemag.com/Article/1911092/From-Xamarin-Native-to-Xamarin.Forms-Reaping-the-Rewards-without-the-Risk 
  • https://dotnet.microsoft.com/enus/platform/support/policy/xamarin
  • https://www.c-sharpcorner.com/article/maui-the-future-of-xamarin-forms/ 
  • https://github.com/dotnet/maui 
  • https://dotnet.microsoft.com/en-us/apps/maui 
  • https://buildwith.app/compare/dotnetmaui-vs-flutter 
Catégorie: Actualités


Mariola Nowak Content Writer
Tomasz Kluza Senior Full-Stack Developer

Conception, développement, DevOps ou Cloud - de quelle équipe avez-vous besoin pour accélérer le travail sur vos projets ?

Discutez avec vos partenaires de consultation pour voir si nous sommes compatibles.

Jakub Orczyk

Membre du Conseil d’administration/Directeur des ventes VM.PL

Réservez une consultation gratuite
kuba (2)