Xamarin.Forms

Le Xamarin Community Toolkit

par
publié le

Fruit de la collaboration entre l'équipe Xamarin et la communauté Open Source, le Xamarin Community Toolkit est à Xamarin.Forms ce que le sabre laser est au Jedi, c'est-à-dire son indispensable complément.

Si j'en parle aujourd'hui, c'est parce que le toolkit est désormais disponible dans sa version stable mais aussi parce que c'est lui qui recevra toutes les nouveautés concernant Xamarin.Forms, cette plateforme n'étant plus vouée à évoluer après la version 5.0 et jusqu'à son absorption par dotNet MAUI. Mais voyons cela plus en détails.

Xamarin.Forms 5.0

Xamarin.Forms est depuis peu disponible dans sa dernière version, et quand je dis dernière, c'est réellement la dernière. Ensuite, il n'y en aura plus ! Mais n'ayez crainte, il ne s'agit pas d'une disparition mais d'une mutation vers Microsoft MAUI.

Toujours est-il que dans un soucis de qualité, l'équipe Xamarin a décidé que cette dernière mouture serait avant tout axée sur la stabilité et l'amélioration des performances. Le choix a donc été fait de déplacer dans le Community Toolkit les fonctionnalités de Xamarin.Forms qui étaient restée au stade expérimental (comme les contrôles Expander ou MediaElement par exemple) ou dont le développement n'était pas terminé.

C'est donc au Community Toolkit que revient la charge de toutes les nouveautés de Xamarin.Forms !

Vous comprenez donc bien que pour bénéficier des prochaines évolutions de Xamarin.Forms, il faudra vous tourner vers le toolkit !

Mais ce fameux toolkit, que contient-il donc ?

Le Xamarin Community Toolkit

Je ne vais pas vous donner une liste exhaustive du contenu du toolkit, d'abord parce que tout est disponible dans sa documentation et surtout il va continuer d'évoluer après l'écriture de cet article. Mais voici ce que vous y trouverez dans les grandes lignes.

Behaviors

Fonctionnalité peu connue (ou en tout cas trop peu utilisée) de Xamarin.Forms, les Behaviors sont des bouts de code réutilisables qui ajoutent des comportements à vos composants XAML. Leur puissance est d'être modulable et de permettre d'ajouter ou de modifier des comportements à des contrôles XAML sans en modifier le code ni en créer de nouveaux.

Par exemple, vous trouverez dans le toolkit un EmailValidationBehavior qui, vous l'aurez compris, ajoute un comportement de validation d'email à vos champs de saisie.

Dans un autre registre, il y a le toujours très utile EventToCommandBehavior qui permet d'exécuter une commande de votre ViewModel à partir du déclenchement d'un événement du contrôle.

Bref, les Behaviors sont puissants et très diversifiés, vous en trouverez une grosse douzaine dans le toolkit !

Converters

Les Converters deviennent vite indispensables quand on souhaite suivre proprement l'architecture MVVM. Ils évitent bien des bidouilles inutiles dans vos ViewModels (genre créer artificiellement une propriété qui inverse la valeur booléenne d'une autre, vous voyez ce que je veux dire, hein, inutile de nier !).

Le plus connu de tous est sans doute le Converter d'inversion de booléen : vous avez une propriété IsBusy dans votre ViewModel et vous voulez rendre un contrôle visible quand sa valeur est false. Vous devez donc lier la propriété IsVisible avec l'inverse de IsBusy ! Vous avez le choix entre faire le cradingue et ajouter une nouvelle propriété IsNotBusy dans votre code (non mais quelle horreur) ou faire cela proprement avec un Converter.

C'est une vingtaine de Converters très utiles qui vous attendent dans le toolkit.

Des tas de Views (contrôles XAML)

AvatarView, BadgeView, CameraView, Expander, MediaElement... une douzaine de contrôles XAML prêts à l'emploi qui vous éviteront d'installer de multiples librairies tierces pas toujours maintenus dans le temps et finissent souvent par poser des problèmes de compatibilité. Ici, pas de soucis, c'est maintenu main dans la main par l'équipe Xamarin et la communauté.

Et d'autres choses encore

Des helpers MVVM, des Effects XAML (cousin des Behaviors mais plus light), des extensions, pour en savoir plus, je vous invite à consulter la documentation et les quelques ressources que je donne juste après, là, maintenant.

Ressources

J'ai déjà donné le lien plusieurs fois mais si vous l'avez manqué, dirigez-vous vers la documentation officielle du Xamarin Community Toolkit.

Le dépôt GitHub : https://github.com/xamarin/XamarinCommunityToolkit

Le dépôt de l'application d'exemples : https://github.com/xamarin/XamarinCommunityToolkit/tree/main/samples

L'article de blog de Gerald Versluis : Xamarin Community Toolkit: A Must-Have Xamarin Library

Les vidéos de présentation par deux stars du monde Xamarin (Gerald Versluis et Javier Suarez)