Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Quelles sont les principales différences entre l'utilisation de mvvmcross avec xamarin.forms et natif de Xamarin


Quelles sont les principales différences entre l'utilisation de mvvmcross avec xamarin.forms et natif de Xamarin


Lors de la comparaison de l'utilisation de MVVMCross avec Xamarin.Forms et du natif de Xamarin, plusieurs différences clés émergent, principalement en termes de flexibilité de l'interface utilisateur, de partage de code et d'approche de développement.

Flexibilité et contrôle de l'interface utilisateur

- xamarin.Forms: Ce cadre fournit une couche d'interface utilisateur partagée sur les plates-formes, ce qui simplifie le développement en vous permettant d'écrire un code d'interface utilisateur une fois et de le déployer sur plusieurs plates-formes. Cependant, cette interface utilisateur partagée peut limiter la personnalisation aux fonctionnalités spécifiques à la plate-forme, nécessitant des rendus personnalisés pour des éléments d'interface utilisateur plus avancés [7] [9]. MVVMCross peut être utilisé avec Xamarin.Formes pour gérer la logique et la navigation commerciales, mais l'interface utilisateur reste standardisée sur toutes les plates-formes [1] [10].

- Native Xamarin: Lorsque vous utilisez le natif Xamarin avec MVVMCross, vous avez un contrôle complet sur l'interface utilisateur pour chaque plate-forme. Cela permet des implémentations d'interface utilisateur spécifiques à la plate-forme, maximisant l'aspect et la sensation natifs de chaque plate-forme. Bien que cette approche nécessite plus d'efforts pour développer des couches d'interface utilisateur séparées pour iOS et Android, elle offre une plus grande flexibilité et personnalisation [7] [9].

Partage et réutilisation du code

- xamarin.forms: avec xamarin.forms, vous pouvez partager non seulement la logique métier (via mvvmcross) mais aussi le code d'interface utilisateur sur les plates-formes. Cela simplifie le développement et réduit la quantité de code que vous devez maintenir. Cependant, l'interface utilisateur est limitée à un ensemble commun d'éléments qui fonctionnent sur toutes les plates-formes [4] [10].

- Native Xamarin: Dans une configuration de Xamarin native avec MVVMCross, vous pouvez partager la logique métier (ViewModels) sur les plates-formes, mais vous devez implémenter l'interface utilisateur séparément pour chaque plate-forme. Cette approche permet plus de réutilisation de code dans la couche de présentation et la logique de l'interface utilisateur lors de l'utilisation de MVVMCross, mais nécessite toujours un développement d'interface utilisateur spécifique à la plate-forme [9].

Approche de développement

- xamarin.forms: le développement avec xamarin.forms et mvvmcross est souvent préféré par les développeurs sans expérience mobile étendue, car il simplifie le développement de l'interface utilisateur multiplateforme. Le cadre gère une grande partie de la complexité sous-jacente, permettant aux développeurs de se concentrer sur la logique partagée et l'interface utilisateur [4] [10].

- Native de Xamarin: le développement natif de xamarine avec MVVMCross est généralement favorisé par les développeurs qui souhaitent un contrôle à grain fin sur l'interface utilisateur et sont à l'aise avec le développement spécifique à la plate-forme. Cette approche nécessite plus d'expertise dans le développement natif iOS et Android mais offre une plus grande flexibilité dans la conception et la mise en œuvre de l'interface utilisateur [7] [9].

Navigation et liaison

- xamarin.forms avec mvvmcross: la navigation dans xamarin.Formes avec mvvmcross est gérée au niveau de la vue, permettant une séparation propre des préoccupations. MVVMCross fournit des capacités de liaison améliorées, telles que les valeurs de secours, bien qu'il manque de fonctionnalités comme la propriété source trouvée dans Xamarin.Forts standard liés [2] [10].

- Native Xamarin avec MVVMCROSS: Dans les projets Xamarin natifs, MVVMCross gère la navigation et le couple View / ViewModel, permettant une architecture MVVM cohérente sur les plates-formes. Cette configuration permet aux développeurs de tirer parti des modèles de navigation spécifiques à la plate-forme tout en maintenant une couche de logique métier partagée [3] [9].

En résumé, bien que les deux approches puissent tirer parti de MVVMCross pour l'architecture MVVM, Xamarin.Forms offre une couche d'interface utilisateur partagée avec moins de contrôle sur les fonctionnalités de l'interface utilisateur spécifiques à la plate-forme, tandis que le natif de Xamarin fournit un contrôle total sur la personnalisation de l'interface utilisateur, mais nécessite plus d'efforts de développement pour des implémentations d'interface utilisateur distinctes.

Citations:
[1] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-formes
[2] https://www.xamarinhelp.com/use-xamarin-forms-mvvm-framework/
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/getting-started
[5] https://www.reddit.com/r/androiddev/comments/6cseds/what_are_the_disadvantages_of_xamarin_for_android/
[6] https://canbilgin.wordpress.com/2017/03/26/xamarin-formes-application-with-mvvmcross/
[7] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
[8] https://mentormate.com/blog/6-reasons-mvvmcross-peeds-xamarin-development-personalizes-ux/
[9] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[10] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx