Dot.Blog

C#, XAML, WinUI, WPF, Android, MAUI, IoT, IA, ChatGPT, Prompt Engineering

MAUI Essentials

Prenant la suite des Xamarin.Essentials en les modernisant pour MAUI, voici les Essentials, aujourd’hui intégrés directement à MAUI

Des Xamarin.Essentials à MAUI.Essentials

Xamarin.Essentials est devenu une bibliothèque essentielle pour les développeurs .NET qui créent des applications sur iOS, Android, Tizen, macOS et Windows depuis sa sortie initiale il y a plusieurs années. Depuis lors, la bibliothèque a été installée près de 10 millions de fois, compte 79 contributeurs et a servi de base aux développeurs du monde entier pour accéder aux API natives. La dernière version intégrant des nouveautés est la 1.7. Son support s’est arrêté et les MAUI.Essentials ont pris la suite. 
Toutefois, au lieu de rester une bibliothèque à part, MAUI.Essentials a été intégrée à MAUI par Microsoft, de fait le nom même « Essentials » en tant que bibliothèque tend à disparaître puisqu’il n’est plus que le nom d’un Namespace dans MAUI.
Mais cela ne change rien à son contenu indispensable, ce qui justifie d’ailleurs son intégration à MAUI.

Arrêt des Xamarin.Essentials

Plus tôt en 2022 Microsoft avait annoncé qu’ils suivraient le même calendrier que Xamarin.Forms. Cela signifie qu’ils continueraient à assurer le service Xamarin.Essentials jusqu'en novembre 2022 et accepterons les demandes de correction de bogues et publieront de nouvelles versions de service. Les nouvelles fonctionnalités et API ne seront ajoutées qu'à .NET MAUI Essentials après cette date.
Au moment où vous lirez ces lignes l’année 2022 sera derrière nous et Xamarin.Essentials ne sera plus qu’une bibliothèque dont le support sera terminé. Si vous avez des applications Xamarin.Forms et qu’elles utilisent les Essentials, n’espérez plus aucune nouveautés. Tout est, tout sera dans les MAUI.Essentials, elles-mêmes intégrées directement à MAUI depuis un moment. On ne parlera plus des Essentials, elles feront partie de MAUI comme d’autres namespaces. Arrivé à ce point-là, le code utilisant les Xamarin.Essentials devra être migré si ce n’est pas déjà fait, en tout cas pour bénéficier de toutes les nouveautés (voir mes articles sur la migration de code Xamarin.Forms vers MAUI).

.NET MAUI Essentials

.NET MAUI est l'avenir de Xamarin.Forms et en toute logique .NET MAUI Essentials est l'avenir de Xamarin.Essentials. C’est même le présent car .NET MAUI Essentials fait maintenant partie du référentiel .NET MAUI GitHub.

.NET MAUI Essentials est en effet directement intégré à .NET MAUI depuis .NET 6 Preview 6 et .NET MAUI Preview 6 . Lorsque vous créez une nouvelle application .NET MAUI, elle utilise maintenant la nouvelle bibliothèque .NET MAUI et vous pouvez voir dans le fichier .csproj l’option des Essentials. Avec cette option activée, toutes les classes de .NET MAUI Essentials sont accessibles dans votre projet sans installer de paquet Nuget ! Tout ce que vous avez à faire est d'ajouter cette option si jamais elle n’est pas déjà présente dans le projet et toutes les API que vous connaissez sont à portée de main. 

Dans le projet : <UseMaui>true</UseMaui>
Dans le code : using Microsoft.Maui.Essentials;

On sait qu'aujourd'hui certains développeurs vont mettre à jour leurs applications Xamarin.iOS et Xamarin.Android existantes vers .NET 6+ mais sans .NET MAUI tout en souhaitant toujours tirer parti de toutes les API dans Xamarin.Essentials. Il y a ce qu’il vous faut ! Vous pouvez ajouter à vos applications iOS et Android .NET 6 pour intégrer toutes les dernières API : <UsingMauiEssentials>true</UsingMauiEssentials>

Adresses

Les MAUI.Essentials furent, au début, disponibles comme une bibliothèque à part installable via un paquet Nuget, ce n’est plus le cas puisque ce code a été fondu dans celui de MAUI lui-même.
De même que le namespace Essentials fait partie de MAUI et son code source peut être consulté sur GitHb : https://github.com/dotnet/maui/tree/main/src/Essentials 

Mais qu’y a-t-il dans Essentials ?

On parle on batifole mais il ne faudrait pas oublier … l’essentiel c’est-à-dire le contenu de MAUI.Essentials et son utilité !
On se doute que cette dernière est vraiment importante puisque la librairie à été ingurgitée par MAUI pour en devenir un simple namespace à part entière. Cela désacralise un peu sa situation : une belle bibliothèque avec son nom et ses admirateurs pour ne devenir qu’un simple et humble namespace absorbé par une bibliothèque bien plus grosse. Ce serait écrire l’histoire avec de l’encre noire… La réalité est que le plus grand honneur pour un code, le destin le plus glorieux est un jour, comme Essentials, de devenir tellement important aux yeux de Microsoft qu’il finisse par être intégré au dernières API de l’éditeur. Et c’est ce destin glorieux qu’attendaient les Xamarin.Essentials pour se fondre dans MAUI. 

Mais que contient ce code pour être si important ?

Essentials est principalement dédié aux accès aux services dépendant des devices. C’est-à-dire le code le plus enquiquinant à écrire surtout en cross-Plateforme ! Heureusement pris en charge par Essentials, ce code n’a plus a être manipulé, codé, débogué sous tous les OS par le développeur. Créer une application cross-plateforme qui accède aux Emails, aux Paratages, aux Maps, aux Contacts, à l’accéléromètre, au baromètre, aux information de la batterie… tout cela devient disponible comme une fonctionnalité de base s’adaptant automatiquement à la cible, sans connaissances particulières !

Conclusion

Adieu les Xamarin.Essentials, coucou aux MAUI.Essentials qui n’auront existé que très peu sous ce nom et forcément … Aloha MAUI !

Stay Tuned ! 


Faites des heureux, partagez l'article !
blog comments powered by Disqus