Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Comment MVVMCross prend en charge le code spécifique à la plate-forme


Comment MVVMCross prend en charge le code spécifique à la plate-forme


MVVMCross prend en charge le code spécifique à la plate-forme via plusieurs mécanismes, permettant aux développeurs de créer des applications multiplateformes tout en tirant parti des fonctionnalités de plate-forme native. Voici un aperçu détaillé de la façon dont MVVMCross facilite le code spécifique à la plate-forme:

1. Séparation des préoccupations **

Les applications MVVMCross sont généralement structurées en deux parties principales: un projet de base et des projets d'interface utilisateur spécifiques à la plate-forme. Le projet de base, souvent implémenté en tant que bibliothèque de classe portable (PCL) ou bibliothèque standard .NET, contient la logique métier, les modèles, les modèles de vue et les interfaces pour les services spécifiques à la plate-forme. Cette séparation permet une réutilisation de code maximale sur toutes les plates-formes tout en gardant un code spécifique à la plate-forme isolé dans les projets d'interface utilisateur [2] [7].

2. Inversion du contrôle (CIO) et injection de dépendance **

MVVMCross utilise un conteneur IOC pour gérer les dépendances. Cela permet aux développeurs d'enregistrer des services spécifiques à la plate-forme dans les projets spécifiques à la plate-forme et de les injecter dans les modèles de vue du projet de base. Par exemple, si une application doit accéder à la caméra, le projet de base peut définir une interface pour l'accès à la caméra, et chaque projet spécifique à la plate-forme peut fournir sa propre implémentation de cette interface. Le conteneur IOC résout ensuite ces dépendances lors de l'exécution, garantissant que le service correct spécifique à la plate-forme est utilisé [2] [8] [11].

3. Services spécifiques à la plate-forme **

Les services spécifiques à la plate-forme sont mis en œuvre dans les projets d'interface utilisateur natifs. Ces services sont enregistrés dans la classe de configuration de chaque projet de plate-forme. La classe de configuration est responsable de l'amorçage MVVMCross et d'enregistrement des services spécifiques à la plate-forme avec le conteneur IOC. Cela permet aux modèles de vue dans le projet de base d'utiliser des fonctionnalités spécifiques à la plate-forme sans référencer directement les API spécifiques à la plate-forme [2] [7].

4. Framework du plugin **

MVVMCross comprend un cadre de plugin qui permet aux développeurs d'intégrer facilement les fonctionnalités spécifiques à la plate-forme dans leurs applications. Les plugins peuvent fournir des fonctionnalités comme l'emplacement GPS, la localisation, les capteurs, etc. Ces plugins sont enregistrés auprès du conteneur IOC, permettant aux modèles de vue pour accéder aux fonctionnalités spécifiques à la plate-forme grâce à l'injection de dépendance. Ce cadre prend également en charge les implémentations simulées à des fins de test [4] [11].

5. Moteur de liaison personnalisable **

MVVMCross fournit un moteur de liaison personnalisable qui permet aux développeurs de créer des liaisons personnalisées pour des vues spécifiques à la plate-forme. Cette fonctionnalité est particulièrement utile lorsque vous travaillez avec des contrôles natifs qui ne prennent pas en charge les mécanismes de liaison des données standard. En définissant des liaisons personnalisées, les développeurs peuvent s'assurer que leurs modèles de vue sont correctement connectés aux vues spécifiques à la plate-forme [4].

6. Présentateurs de plate-forme **

MVVMCross utilise des présentateurs spécifiques à la plate-forme (par exemple, `IMVXIOSVIEWPRESENTER`,` IMVXAndroidViewPresenter`) pour gérer la façon dont les vues sont affichées sur chaque plate-forme. Ces présentateurs permettent la personnalisation de la logique de présentation, permettant aux développeurs d'adapter le comportement de l'interface utilisateur aux exigences de la plate-forme spécifique [3].

En résumé, MVVMCross prend en charge le code spécifique à la plate-forme en fournissant une approche structurée pour séparer la logique métier de la mise en œuvre spécifique à la plate-forme, en tirant parti du CIO et de l'injection de dépendance pour la gestion des services et offrant des cadres de liaison et de plugin personnalisables pour intégrer les fonctionnalités natives. Cela permet aux développeurs de maximiser la réutilisation du code tout en offrant des expériences utilisateur spécifiques à la plate-forme.

Citations:
[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[2] https://dev.to/christian1006/creting-cross-platform-xamarin-applications-using-the-mvvmcross-framework-2920
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://github.com/mvvmcross/mvvmcross
[5] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[6] https://mentormate.com/blog/6-reasons-mvvmcross-peeds-xamarin-development-personalizes-ux/
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://stackoverflow.com/questions/14337063/platform-specific-ioc-in-mvvmcross
[9] https://www.mvvmcross.com/documentation/getting-started/getting-started
[10] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[11] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross