Le 10/05/2023
Découvrez le MAUI "Multi-platform App UI", grâce à Mehdi notre Agent Expert sur la technologie C#/.NET.
.NET MAUI est un framework développé par Microsoft permettant de créer des applications mobiles et desktops natives à destination des devices macOS, iOS, Android, Windows et Tizen à partir d'un seul projet écrit en C#. Il est l’évolution des Xamarin.forms qui permettaient déjà cela mais en allant plus loin dans l’unification des différents projets entre autres.
.NET MAUI exportera ce projet unique en code natif propre à chaque plateforme !
Les applications créées peuvent être d'une multitude de sorte, aussi bien ludiques, business, billetterie, domaine médical et bien d'autres.
Plus simplement, .NET MAUI peut produire tout ce qu'il est possible de faire indépendamment aujourd'hui sur chaque plateforme.
Comme Microsoft le dit, la philosophie derrière MAUI est « write-once run-anywhere ». Pour mettre cette philosophie en pratique, Microsoft a créé une seule API permettant de cibler toutes les plate-formes. Il est également possible d’ajouter du code spécifique à chaque plateforme si nécessaire !
Pour cela, rien de plus simple. Comme nous pouvons le voir dans l’arborescence de projet ci-dessus, le code propre à chaque plateforme est disponible directement sous le dossier « Platforms ».
La partie UI est écrite en XAML, un langage de balisage très puissant et accessible tirant fortement parti du DataBinding.
Chaque plateforme disposant de sa propre façon de gérer l’ajout d’image, les écrans de démarrage, les polices d’écritures etc…, il peut être compliqué de devoir connaître et gérer les spécificités propres à chaque OS. Avec MAUI, cette tâche qui peut-être très chronophage est grandement facilitée. En effet, il suffit d’indiquer le chemin source de ces différents assets dans le fichier « csproj » du projet et MAUI s’occupera automatiquement de gérer les dimensionnement, police etc… pour chaque OS ciblé. Un vrai gain de temps !
MAUI s’adresse principalement aux développeurs C#/.NET mais pas que ! Il est en effet possible d’utiliser F# pour les développeurs préférant la programmation fonctionnelle. Pareillement pour les Design Patterns, nous pouvons utiliser MVVM qui fonctionne parfaitement avec MAUI ou MVU par exemple si l’idée est de partir sur une approche plus fonctionnelle.
Un langage/Framework(C#/.NET) pour les gouverner tous ! MAUI vous permettra de capitaliser sur les développeurs C# déjà présents ou n’avoir besoin que d’un développeur ou une équipe C# là où il aurait été nécessaire d’avoir un ou plusieurs développeurs maitrisant les langages de chaque plateforme !
Tire parti de .NET6 et bientôt .NET7 pleinement.
La possibilité d’ajouter du code spécifique à chaque plate-forme si nécessaire et donc d’aller plus loin dans la personnalisation si nécessaire même si cela se fera à la marge, le framework MAUI proposant déjà tout ce qu’il faut de base.
Accès aux API natives de chaque plate-forme(Accéléromètre, GPS, batterie, notifications etc…) là ou des solutions telles que les PWA par exemple ne pourront pas avoir toujours accès aux fonctionnalités matérielles de bas niveau.
Hot Reloads. Rechargement à chaud lors des modifications de codes sans avoir besoin de relancer le débugage. S’ensuit une productivité accrue en évitant les temps d’arrêt et de relance des Debugs
Support des politiques d’accessibilité propre à chaque plate-forme avec les « Semantic Properties ». Chaque OS interprétera les différentes propriétés en fonction de son UX.