Dot.Blog

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

Top 5 des nugets pour Xamarin.Forms

Xamarin.Forms est une communauté vivante, il existe des tonnes d’extensions. En voici 5 que je trouve indispensables, les adopterez-vous ?

Une pléthore de Nugets

imageIl existe des tas de nugets pour Xamarin.Forms, des utilitaires simples jusqu’aux librairies sophistiquées. Mais s’il fallait en choisir 5 ?

Bien entendu cela est très réducteur, ce choix n’est pas arbitraire mais il existe tellement de librairies qu’il est bien compliqué de mettre en balance un toolkit MVVM et une librairie de dessin SVG. Forcément ce n’est pas comparable. Mais on retrouve souvent les mêmes besoins de base dans toutes les applications, et il est donc possible d’espérer trouver 5 paquets quasi indispensables. Prenez cela pour un exercice dont le seul but est de vous faire peut-être découvrir certaines extensions que vous ne connaissez pas et non un choix définitif et catégorique.

Donc voici les 5 paquets que je vous conseille pour faire rapidement des belles applications…

MVVM Helpers

Crée petit à petit par James Montemagno, il s’agit d’une librairie minimaliste qui ajoute juste ce qu’il manque aux Xamarin.Forms pour respecter MVVM dans la plupart des Apps. Les grosses Apps peuvent nécessiter des toolkit complexes, mais plus le temps passe et moins je conseille Prism, Caliburn et les autres. Ces extensions sont devenues des monstres qui s’insèrent dans vos programmes et vous obligent à suivre leur logique et je n’aime pas qu’on me dicte ce que je dois faire ou non. D’aides bien conçues ces librairies sont devenues des rails qu’on doit suivre. Pire elles imposent jusqu’à leur système de navigation en ignorant toute fusion avec le Shell des Xamarin.Forms qui portant est disponible depuis longtemps. Je me refuse à travailler “contre” Xamarin.Forms. J’attends d’une bonne librairie MVVM qu’elle se fasse discrète et qu’elle m’offre une aide pratique et concrète pas qu’elle me dise comment écrire mes applications ni qu’elle m’embarque sur des voies hasardeuses en cas d’upgrade (ce qui va être le cas avec MAUI…).

Et justement c’est ce que James à fait avec ce nuget minimaliste. On y trouve un ObservableObject, une classe de base qui implémente INPC et une méthode SetProperty qui fait le travail. Cette classe est parfaite pour dériver tous les ViewModels d’une App. Sans chichi, sans prise de tête. Juste ce dont on a besoin et qui serait enquiquinant à réécrire. D’ailleurs on trouve une classe BaseViewModel dérivée de la première pour servir plus spécifiquement à la création de ViewModels. Il y a même de quoi gérer les commandes en Async (le mode classique existe déjà dans les Xamarin.Forms…).

Bref, c’est ultra simple, c’est le minimum vital pour étendre les fonctions MVVM des Xamarin.Forms, c’est petit, gratuit et pour ne pas se tromper le nom du paquet à installer est Refractored.MvvmHelpers.

Pour les détails James a fait plusieurs vidéos et articles sur ce paquet, je ne peux que vous y renvoyer.

Monkey Cache

imageCe diable de James a encore frappé. Toujours pareil, une fonction importante mais implémentée dans sa version la plus simple pour être utilisable sans prise de tête.

Monkey Cache est une librairie de gestion de cache comme son nom le laisse supposer. On peut s’en servir pour stocker temporairement des données du Web et éviter ainsi les appels vers l’extérieur, on peut aussi s’en servir pour faire tampon avec une base de données type SQLite ou même le système de fichier de l’OS.

Pour fluidifier une App une bonne gestion de cache est indispensable. Il en existe des très sophistiquées, là encore, je préfère les choses simples qui sont facilement utilisables au sein d’une équipe hétérogène plutôt que des usines à gaz que personne n’utilise correctement…

Pour l’intégrer dans vos Apps cherchez simplement le paquet Monkey Cache… Et pour la doc, là encore, James a produit des articles et des vidéos que je vous incite à consulter.

PancakeView

Laissons James et son pragmatisme minimaliste pour faire un tour du côté de l’UI. PancakeView de Steven Thewissen fournit tout ce qu’il faut pour créer des UI de type fiches qui défilent, avec des zones bordées ou non, coin arrondis ou non, gradients etc.

Très simple d’utilisation, pensez à regarder cette librairie (si la logique de votre App correspond à ce type d’UI bien entendu). Vous trouverez toutes les infos à jour sur le Github du paquet : https://github.com/sthewissen/Xamarin.Forms.PancakeView

Sharpnado

Restons dans le monde de l’UI. Sharpnado est en réalité un ensemble de paquets, on utilise ceux dont on a besoin. Le Sharpnado.Tabs par exemple propose une gestion de Tabs qu’on peut personnaliser, placer où on veut à l’écran. On peut vraiment obtenir des résultats très intéressants et visuellement un peu différents de ce qu’on voit partout.

Il existe aussi un Sharpnado.Shadows qui permet d’ajouter des ombres à tout objet visuel. Parfois cela suffit à faire ressortir un texte, une image, sans faire sapin de Noël non plus.

Il existe encore tout un tas de modules dans le monde Sharpnado, même un blog dédié.

Il n’y a pas que de l’UI brute, il y a aussi du très pratique comme le Sharpnado.TaskLoaderView dont le but est d’offrir un mécanisme de chargement un peu plus intelligent que le “IsBusy=True” qu’on voit partout.

MaterialFrame est une autre création qui offre une prise en charge des thèmes (Light, Dark, Acrylic, AcrylicBlur) qu’on peut choisir à l’exécution. Une petite touche pas trop voyante qui est souvent très appréciées des utilisateurs.

Bon j’ai un peu triché puisque ce n’est pas un seul paquet mais tout une série… Mais c’est ça Sharpnado !

Xamarin Community Toolkit

A la fois une initiative communautaire et un geste appréciable de l’équipe de dev Xamarin, le Community Toolkit regroupe de nombreuses choses bien pratiques comme la gestion des Toasts, la Snackbar, l’AvatarView, une version intégrée de MVVM Helpers, des extensions C# XAML, des systèmes de dock, des Behaviors, des Effets, etc…

Avant d’aller chercher ailleurs, vérifier que ce dont vous avez besoin n’est pas déjà dans le XCT !

On le trouve sur GitHub ici : https://github.com/xamarin/XamarinCommunityToolkit?WT.mc_id=friends-0000-jamont

Conclusion

Avant de coder il est bon de savoir ce qui existe pour ne par réinventer la roue ni se faire piéger par les vendeurs de grosses librairies pas forcément utiles. Et puis comme je le disais, plus le temps passe, plus je code d’Apps et plus j’ai envie de simplicité, d’efficacité. Les libs qui demandent à relire trois fois la doc ou qui vous entraîne contre votre gré dans une logique qui n’est pas la vôtre, j’en ai soupé. Des aides ponctuelles dont je reste maître c’est tout ce dont j’ai besoin (sauf cas particulier imposant une lib complexe mais c’est un cas rare !).

Ce petit Top 5 est en réalité une excuse pour vous inciter à remettre en cause votre approche, autant celle de MVVM que du reste. Une belle App c’est d’abord un bon designer qui connaît son métier, et ensuite un bon code simple et facile à maintenir. Si la communauté ne peut rien pour vous en ce qui concerne l’embauche d’un designer pro, elle peut vous apporter quelques paquets simples qui vous permettront de faire si ce n’est tout au moins l’essentiel, sans prise de tête ni lourdeur.

Pensez simple, efficace, pragmatique

Et Stay Tuned !

blog comments powered by Disqus