MVVMCross est un puissant cadre MVVM multiplateforme qui améliore les projets natifs de Xamarin en permettant le partage des couches de présentation et de la logique de l'interface utilisateur sur différentes plates-formes. Voici quelques cas d'utilisation courants pour MVVMCross dans les projets natifs de Xamarin:
1. Réutilisation du code multiplateforme **
MVVMCROSS permet aux développeurs de maximiser la réutilisation du code en plaçant ViewModels et une logique métier dans une bibliothèque de classe portable (PCL). Ce PCL peut être référencé sur plusieurs projets spécifiques à la plate-forme, tels que Xamarin.Android et Xamarin.ios, garantissant que la logique de base reste cohérente tandis que l'interface utilisateur peut être personnalisée pour chaque plate-forme [1] [2].2. Implémentation du modèle MVVM **
MVVMCross facilite la mise en œuvre du modèle Model-View-ViewModel (MVVM), ce qui est bénéfique pour maintenir une séparation claire des préoccupations entre l'interface utilisateur et la logique métier. Ce modèle aide à créer des applications à couplage vaguement, ce qui les rend plus faciles à tester et à maintenir [3] [5].3. Boueurs de données et navigation **
MVVMCross fournit des capacités de liaison robustes de données, permettant aux vues de se lier à ViewModels de manière transparente. Cette fonctionnalité prend en charge divers modes de liaison et convertisseurs, améliorant la flexibilité de l'interface utilisateur de l'application. De plus, MVVMCross comprend un système de navigation qui simplifie le déplacement entre différentes vues dans l'application [2] [5].4. Injection de dépendance et plugins **
MVVMCross propose un conteneur d'injection de dépendance (DI) qui permet aux développeurs de s'inscrire et de résoudre les services spécifiques à la plate-forme à partir du PCL. Cette fonctionnalité est cruciale pour intégrer les fonctionnalités spécifiques à la plate-forme sans duplication de code. De plus, MVVMCross prend en charge une large gamme de plugins pour les fonctionnalités communes telles que les opérations de base de données, la connectivité réseau, etc., qui peut être facilement intégrée dans les projets via des packages NuGet [1] [3].5. Personnalisation de l'interface utilisateur spécifique à la plate-forme **
Alors que Xamarin.forms restreint la personnalisation de l'interface utilisateur sur les plates-formes, MVVMCross avec le natif de Xamarin permet aux développeurs de créer des UIS spécifiques à la plate-forme. Ceci est particulièrement utile lorsqu'une application nécessite un look et une sensation natifs sur chaque plate-forme. MVVMCross garantit que malgré différentes implémentations d'interface utilisateur, la logique commerciale sous-jacente reste partagée et cohérente [1] [4].6. Efficacité des tests et développement unitaires **
En séparant la logique métier en PCL, MVVMCross facilite l'écriture de tests unitaires pour la logique de base de l'application. Cette séparation accélère également le développement, car les modifications de la logique métier ne nécessitent pas de modifications du code d'interface utilisateur spécifique à la plate-forme [5].En résumé, MVVMCross est un outil polyvalent pour les projets natifs de Xamarin, offrant une approche structurée pour le développement multiplateforme tout en maintenant la flexibilité pour personnaliser les UIS pour chaque plate-forme. Ses fonctionnalités telles que la prise en charge du modèle MVVM, la liaison des données, l'injection de dépendance et l'écosystème des plugins étendus en font un choix idéal pour les applications complexes et multiplateforme.
Citations:[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[2] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[3] https://dev.to/christian1006/creting-cross-platform-xamarin-applications-using-the-mvvmcross-framework-2920
[4] https://canbilgin.wordpress.com/tag/mvvmcross/
[5] https://www.mvvmcross.com/documentation/getting-started/getting-started
[6] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-formes-version
[7] https://stackoverflow.com/questions/32220007 /
[8] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross