Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Comment MVVMCross améliore-t-il la réutilisation du code dans les applications multiplateforme


Comment MVVMCross améliore-t-il la réutilisation du code dans les applications multiplateforme


MVVMCROSS améliore considérablement la réutilisation du code dans les applications multiplateformes en tirant parti du modèle architectural Model-View-ViewModel (MVVM). Voici comment cela réalise ceci:

1. Séparation des préoccupations: MVVMCROSS favorise une séparation claire des préoccupations en divisant l'application en deux parties principales: le noyau et l'interface utilisateur. Le projet de base, généralement une bibliothèque de classe portable (PCL) ou .NET Standard Library, contient tous les anciens de vue, les modèles et la logique métier. Cela permet une réutilisation de code maximale sur différentes plates-formes, car la logique métier est découplée à partir du code spécifique à la plate-forme [1] [2] [7].

2. ViewModels dans Core Project: En plaçant ViewModels dans le projet Core, MVVMCross permet aux développeurs de partager ces composants sur plusieurs plates-formes. Cela signifie que la logique pour gérer les interactions utilisateur, la manipulation des données et la navigation peuvent être réutilisées sans modification sur différentes plates-formes comme iOS, Android et Windows [1] [3] [9].

3. LIAISON DES DONNÉES: MVVMCROSS prend en charge la liaison des données, qui met automatiquement à jour l'interface utilisateur lorsque des modifications se produisent dans le ViewModel. Cette fonctionnalité est cruciale pour maintenir la cohérence entre les plates-formes et réduit le besoin de mises à jour de l'interface utilisateur manuelles, améliorant davantage la réutilisation du code [4] [5].

4. Injection de dépendance et plugins: MVVMCross comprend une architecture de plug-in et des capacités d'injection de dépendance (DI). Ces fonctionnalités permettent aux développeurs de mettre en œuvre des fonctionnalités spécifiques à la plate-forme d'une manière qu'ils peuvent être facilement accessibles et réutilisés à partir du projet de base. Cela signifie que si la couche d'interface utilisateur doit être spécifique à la plate-forme, de nombreuses fonctionnalités sous-jacentes peuvent toujours être partagées [3] [9].

5. Présentateurs de navigation et de vue: MVVMCROSS fournit un puissant système de navigation ViewModel, qui permet l'orchestration de la navigation d'application du projet de base. Cela signifie que le flux d'interactions utilisateur et les transitions d'écran peut être géré de manière centralisée, réduisant le besoin de code de navigation spécifique à la plate-forme [7].

6. Structure de projet efficace: MVVMCROSS encourage une approche structurée de l'organisation du projet, avec une séparation claire entre le code agnostique de la plate-forme dans le code central et spécifique à la plate-forme dans les projets d'interface utilisateur. Cette structure facilite l'entretien et l'extension plus faciles des applications multiplateformes [2] [9].

Dans l'ensemble, MVVMCross améliore la réutilisation du code en centralisant la logique métier, en tirant parti de la liaison des données et en fournissant des outils pour gérer les fonctionnalités spécifiques à la plate-forme de manière unifiée. Cette approche réduit considérablement la quantité de code dupliqué et accélère le développement d'applications multiplateforme.

Citations:
[1] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[2] https://www.toptal.com/xamarin/cross-platform-apps-with-xamarin
[3] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[4] https://tiefenauer.github.io/blog/mobile-app-development-with-xamarin-and-mvvmcross-part-1-production/
[5] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[6] https://diglib.tugraz.at/download.php?id=576a78335451d&location=browse
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://www.reddit.com/r/swift/comments/yrqlhu/is_crossplatform_the_future_of_mobile_development/
[9] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[10] https://stackoverflow.com/questions/22409697/maximis-uicode-reuse-with-xamarin-mvvmcross