En matière de développement mobile plus qu’ailleurs l’accès
aux API de la plateforme est essentiel. Comment en est-on arrivé à
MAUI ?
Une évolution progressive
Le .NET d'aujourd'hui est open source et c’est une
plateforme de développement multiplateforme avec des outils solides et
éprouvés. Ce qu’on appelle « Modern .NET » aide les développeurs à
créer des applications natives pour divers facteurs de forme mobiles et une
pléthore d'appareils. Avec Xamarin, Xamarin.Forms et maintenant .NET MAUI, le
code .NET s'étend facilement à iOS et Android avec un accès complet aux API des
plateformes natives.
Cependant, les développeurs ont rapidement compris que les
API natives sont mieux utilisées à partir de .NET/C#, avec des mappages dépendants
de la plateforme sous-jacente exposées via une abstraction. Sans cela, les
développeurs .NET auraient appris Java ou Swift/Objective-C pour accéder aux
API natives…
Cependant, la façon dont nous accédons aux API mobiles
natives via .NET a évolué au fil des ans. Voyons où .NET a commencé avec les
API de plate-forme et où les choses se dirigent. Racontons tout cela en faisant
un parallèle avec la naissance des USA pour rendre les choses plus vivantes…
Première période : Le Far West
Le Far West était une période de
l'histoire américaine qui s’est jouée aux frontières de l'expansion vers
l'ouest et des colonies qui se sont créées autour de la ruée vers
l'or. Alors qu'il y régnait une certaine anarchie et de nombreux conflits,
l'époque est immortalisée par les représentations médiatiques et romantiques de
l'image du cow-boy et de l'individualisme sauvage.
Xamarin et Xamarin.Forms ont joué un grand rôle dans la
démocratisation du code .NET qui fonctionnait de manière transparente sur les
appareils mobiles exécutant iOS/Android. Les développeurs ont appris à
écrire une logique métier dans du code C# qui serait partagé entre les
plateformes et même à utiliser C#/XAML comme abstraction d'interface
utilisateur multiplateforme. Cependant, lorsqu'il s'agissait d'accéder aux
API de la plate-forme, les développeurs ne voulait pas écrire du code natif. Après
tout, .NET ne pouvait-il pas faire le travail ? La réponse fut les plugins -
de petites abstractions qui enveloppaient du code spécifique à la plate-forme
et exposaient des fonctionnalités en C# pur.
Il y avait beaucoup d'enthousiasme - la communauté des
développeurs a écrit une tonne de plugins Xamarin, tout comme les gens de
Microsoft. Tout ce que les développeurs Xamarin avaient à faire était d'importer
des packages NuGet - il y avait des plugins pour à peu près toutes les
fonctionnalités de l'API de la plate-forme. Cela a finalement conduit à
une situation de trop grand choix - il y avait plusieurs plugins pour faire la
même chose. Les applications d'entreprise avaient besoin de quelques
garanties et de la visibilité, et les développeurs ne savaient pas à quels
packages faire confiance. Néanmoins, la communauté .NET se souvient avec
émotion des immenses contributions individuelles qui ont fait des plugins
Xamarin un écosystème riche. Sans ces efforts individuels, pour la majorité
gratuite, la suite ne se serait peut-être pas passé de la même façon. Nous leur
devons beaucoup assurément.
Deuxième période : Les États-Unis
Treize colonies de
Grande-Bretagne le long de la côte atlantique ont publié la déclaration
d'indépendance en juillet 1776, créant ainsi l'union américaine. La
naissance d'une nation est rarement facile – mais davantage d'États ont rejoint
l'union, souvent à la suite d'un conflit puis une guerre civile totale a
éclaté, mais au final l'intégrité des États de l’Union est restée intacte,
menant ainsi aux États-Unis d'Amérique.
Pour les développeurs Xamarin, les abstractions C# étaient le meilleur
moyen d'accéder aux API/fonctionnalités de la plate-forme - l'écosystème de
plug-in Xamarin s'était développé de manière presque
incontrôlable. Microsoft avait besoin de combiner toutes ces pépites éparpillées
en un seul endroit et d'offrir une solution stable pour accéder aux API mobiles
natives. De là l’idée des Xamarin.Essentials -
une seule bibliothèque pour tout regrouper. Android, iOS et UWP offraient
des API de plate-forme/fonctionnalités du système d'exploitation uniques
auxquelles les développeurs avaient désormais accès en C#. installez un package
NuGet et c’est tout...
Xamarin.Essentials a représenté un effort substantiel dans
la normalisation de l'accès aux API de la plate-forme à partir de .NET et a
fourni aux développeurs Xamarin un canevas stable sur lequel s'appuyer pour les
fonctionnalités natives. Il est désormais intégré aux projets Xamarin avec des templates
par défaut. Avec plus de 40 API multiplateformes, les développeurs .NET
sont gâtés. Avec un accès facilité à la plateforme, quelle que soit la nature de
l'interface utilisateur de l'application. Xamarin.Essentials, à ce jour,
reste la référence en matière de standardisation des fonctionnalités des API
multiplateformes, toutes unies dans le confort indéniable de C#.
Troisième période : Fusion de l'Alaska
Lorsque les superpuissances
mondiales sont en désaccord sur les luttes impériales, de grandes portions de
terres changent parfois de propriétaire. En 1867, les États-Unis
d'Amérique ont pris possession de l'Alaska après l'avoir acheté à la Russie,
l'ajoutant finalement en tant que 49e État de l'union. Bien que séparé du
reste des États continentaux, l'Alaska est stratégique dans sa position et
abrite de magnifiques paysages naturels intacts.
Xamarin et Xamarin.Forms ont peut-être été le moyen préféré
des développeurs .NET pour écrire des applications multiplateformes, mais il
est également indéniable que certains des points faibles de l'écosystème se
sont fait sentir - cibler plusieurs plates-formes n'était pas facile, les
grands projets d'applications mobiles devenaient compliqués, les
personnalisations de la plate-forme étaient délicates à faire et l'outillage
pouvait largement être meilleur. C’est là qu’arrive MAUI ! La nouvelle
génération d’outils de développement multiplateforme intégrée à .NET.
Alors que .NET MAUI a commencé avec un état d'esprit très axé
sur le mobile, l'évolution des Xamarin.Forms a rapidement mené au ciblage des
plateformes de bureau, tout en offrant plus de confort aux
développeurs. .NET MAUI est un projet véritablement unique ciblant
diverses plateformes, il dispose d'outils perfectionnés et permet un meilleur
partage de code avec les applications Web. Cependant, les développeurs ont
toujours besoin d'accéder aux API de la plate-forme, en particulier sur les
plates-formes mobiles comme iOS/Android. Pourquoi jeter tout le travail qui a
été consacré à Xamarin.Essentials ?
Dès les premiers jours de .NET MAUI, le mot à la mode
était .NET MAUI Essentials - la même pile d'API
multiplateformes natives que les développeurs aimant tant mais portée sous MAUI. Ce
qui a évolué, c'est le changement de propriétaire : .NET MAUI Essentials fait
désormais partie intégrante de .NET, inspirant ainsi toute la confiance et la
stabilité dont les développeurs et leurs clients ont besoin. Sous le
capot, .NET MAUI Essentials fournit la même API de plate-forme ou des
abstractions de fonctionnalités, toutes exposées en C#. Essentials est une
pierre angulaire de .NET MAUI, permettant à diverses piles d'interfaces
utilisateur multiplateformes écrites en C#/XAML/Blazor d'accéder facilement aux
API de plateforme natives.
Quatrième période : L’Archipel Hawaïen
En août 1959, Hawaï est devenu le
50e État des États-Unis d'Amérique. Les îles hawaïennes sont un archipel
de huit îles principales, plusieurs atolls et de nombreux îlots plus petits
dans l'océan Pacifique Nord. Alors qu'il s'agit d'un État américain
stratégique, les îles hawaïennes combinées respirent l'histoire et la culture
polynésiennes et sont considérées comme un paradis tropical.
Vous savez ce qui se passe quand quelque chose est ancré dans
l'histoire, devenu d'une importance capitale et enraciné dans la culture - cela
devient évident. .NET MAUI Essentials est devenu une partie si stratégique
de .NET MAUI qu'il n'y est plus explicitement - il est assimilé et simplement
intégré. Après avoir été une partie importante des aperçus .NET MAUI, juste
avant la première Release Candidate, .NET MAUI Essentials a été repensé et le
nom Essentials n'est plus. Ne vous y trompez pas, tous les avantages de
.NET MAUI Essentials sont toujours là, juste intégrés pour faire partie de .NET
MAUI lui-même.
Dans le passé, l'espace de noms monolithique Microsoft.Maui.Essentials intégrait
tous les .NET MAUI Essentials, que les développeurs aient besoin ou non de
toutes les API de la plate-forme. Maintenant, l'objectif est de garder les
choses granulaires et de faire en sorte que les développeurs apportent des
espaces de noms lorsqu'ils utilisent explicitement des API/fonctionnalités spécifiques
à une plate-forme. Jetons un coup d'œil à certains des groupes les plus utilisés.
Vous avez besoin d'API spécifiques aux appareils mobiles,
telles que la source d'alimentation, l'orientation, l'affichage, la lampe de
poche, les vibrations, etc. ? Utilisez Microsoft.Maui.Devices.

Vous avez besoin d'API d'accès aux fonctions multimédia,
comme l'appareil photo ou la photothèque ? Utilisez Microsoft.Maui.Media.
