Découvrez les meilleures pratiques et les erreurs courantes à éviter lors de l'utilisation de .NET MAUI pour optimiser vos applications et éviter les problèmes.
Introduction
.NET MAUI, l'évolution de Xamarin.Forms, permet de créer des applications de bureau Mac et PC en plus des applications mobiles traditionnelles iOS et Android. Même si cet environnement C#/XAML est assez simple, il ne contient pas moins quelques pièges qu'il est préférable d'éviter. Il existe aussi des pratiques à favoriser pour une meilleur efficacité. Voici une liste de recommandations pour utiliser .NET MAUI de manière efficace constuite sur une compilation effectuée par David Ortinau et présentée lors d'un récent .NET MAUI Community Standup, le tout compléter de mes propres conseils.
Utilisez Shell ou Pages Tabbed/Flyout/Nav, mais pas les deux
L'utilisation simultanée de Shell
et des pages Tabbed/Flyout/Nav
est incompatible et peut entraîner des problèmes. Visual Studio avertit que 'TabbedPage
est incompatible avec les applications .NET MAUI Shell
'. Mais parfois on zappe le warning noyé dans la masse.
Définissez MainPage Une Seule Fois
Changer fréquemment la page principale peut causer des problèmes, cela a été démontré, n'essayez pas d'être plus malin que les gens prochent de l'équipe de développement de MAUI ! Il est recommandé d'utiliser Shell
pour personnaliser les configurations de différentes manières. Personnellement, devant les problèmes de Shell
qui ne respecte pas le caractère Transient des ViewModels, je préconise la vue de navigation classique. Ajouter un Flyout
si vous voulez créer cet effet, mais le Shell
pose aussi des problèmes et je ne le conseille pas pour toutes les Apps.
Ne Pas Imbriquer les Tabs
Évitez d'imbriquer les onglets, car cela peut entraîner des problèmes d'expérience utilisateur. Il est préférable de revoir l'ergonomie pour trouver une approche différente.En général éviter les imbrication profondes en XAML, cela impacte négativement la fluidité de l'UI.
Référencez MauiImages comme PNG
Les SVG dans les dossiers d'images doivent être référencés en tant que PNG car .NET MAUI les rend en diverses densités. Pour redimensionner les SVG à la volée, utilisez des bibliothèques comme Vapolia.Svg ou SkiaSharp.
Évitez d'Imbriquer des Éléments de Défilement Non Contraints dans un Stack Layout
Imbriquer des éléments de défilement non contraints comme CollectionView
ou ScrollView
dans un Stack Layout
peut causer des problèmes de performances et de chargement de la page. De même qu'on ne place pas de ListView dans une ListView ni même d'objets visuels gérant le scrolling à l'intérieur d'un contrôle qui le gère déjà. Question de bon sens.
Personnalisez les Handlers dans ConfigureHandlers()
La méthode ConfigureHandlers
du host builder est recommandée pour personnaliser les handlers de manière sûre et efficace.
Ne Pas Imbriquer des Éléments avec Gesture Handlers
Imbriquer des contrôles avec des Gesture Recognizers peut créer des conflits et rendre les gestes difficiles à capturer ou à gérer correctement.
Remplacez les Renderers simples par des Handlers
Pour des modifications mineures de contrôles, il est plus simple et maintenable de les faire via des handlers plutôt que de créer des renderers complets.
Réécrivez les Custom Controls en Handlers avec Mappers
Pour une meilleure maintenance à long terme, il est conseillé de réécrire les custom controls en utilisant des handlers avec des mappers.
Préférez Grid avec Tailles Explicites et * dans les DataTemplates
Utiliser des grilles avec des tailles explicites dans les data templates évite les problèmes de taille et de mise en page inattendus.
Utilisez MauiSplashScreen et MauiIcon pour les Cas Simples Uniquement
Pour des cas complexes, il est recommandé d'utiliser des implémentations natives au lieu d'essayer de faire des choses complexes avec MauiSplashScreen.
Utilisez ProjectReference, pas des NuGets pour vos Bibliothèques
Pour les bibliothèques internes, il est préférable d'utiliser ProjectReference
plutôt que de les empaqueter en NuGets, ce qui peut entraîner des problèmes de compatibilité.
Utilisation d'Async et Await
Incorporez la programmation asynchrone avec les mots-clés async
et await
pour améliorer l'efficacité des ressources système et éviter le blocage des threads (Microsoft Learn).
Ajout de Tooltips
Utilisez des tooltips pour ajouter des informations détaillées sans affecter la conception de l'interface utilisateur. Cela permet d'afficher des informations supplémentaires uniquement lorsque l'utilisateur interagit avec l'élément visuel.
Création d'une Palette de Couleurs Centralisée
Utilisez un fichier Colors.xaml
pour centraliser les couleurs de votre application. Cela simplifie la maintenance et réduit les erreurs lorsque des changements de couleurs sont nécessaires.
Améliorations de Performance
Profitez des options de compilation AOT (Ahead of Time) pour améliorer les temps de lancement des applications tout en maintenant une taille d'application modérée (Microsoft Developer Blogs).
Conclusion
En suivant ces recommandations, vous pouvez optimiser l'utilisation de .NET MAUI et éviter des erreurs courantes qui peuvent entraver le développement de vos applications. Il s'agit ici de conseils simples et non de grandes théories. Si vous voulez savoir le pourquoi du comment, référez-vous à l'article de base de David et faites vos propres recherches sur le Web. Mais n'essayez pas de nager contre le courant, vous vous fatiguerez pour rien...
Référence
Stay Tuned !