MVVMCross est un cadre populaire pour le développement mobile multiplateforme à l'aide de Xamarin, permettant aux développeurs de tirer parti du modèle MVVM à travers Android, iOS et d'autres plateformes. Cependant, malgré ses avantages, il existe plusieurs inconvénients à considérer lors de l'utilisation de MVVMCross pour les applications Android et iOS:
1. Complexité et courbe d'apprentissage: MVVMCross est un grand cadre qui nécessite du temps pour saisir pleinement. Les nouveaux développeurs peuvent trouver difficile de comprendre ses principes fondamentaux, tels que la façon dont le contexte des données est transféré entre les composants [1]. Cette complexité peut conduire à une courbe d'apprentissage plus abrupte par rapport aux cadres plus simples.
2. Problèmes de performances: certains utilisateurs ont signalé des problèmes de performances, tels que les temps de démarrage lents et les retards dans les liaisons ListView. Ces problèmes peuvent être attribués à MVVMCross, xamarin ou à la plate-forme Android lui-même, ce qui rend difficile de déterminer la cause exacte sans profileur de performance [1].
3. Messages d'erreur et débogage: les messages d'erreur du framework pourraient être plus informatifs. Au lieu de simplement signaler les erreurs, ils pourraient suggérer des solutions potentielles, ce qui faciliterait un débogage et un développement plus rapides [1].
4. Réutilisabilité et testabilité: Bien que MVVMCross vise à améliorer la testabilité en séparant la logique métier de la vue, en pratique, les modèles de vue peuvent devenir gonflés et difficiles à tester. Cela est particulièrement vrai s'ils s'occupent de plusieurs responsabilités et maintiennent l'état interne, ce qui rend difficile le test des méthodes indépendamment [2]. De plus, les modèles de vue deviennent souvent non réutilisables sur différents contrôleurs de vue en raison de leurs implémentations spécifiques [2].
5. Défis spécifiques à la plate-forme: sur Android, la fragmentation et la pile Java peuvent poser des défis supplémentaires. Par exemple, l'utilisation d'images Intel Android X86 dans les émulateurs peut conduire à des bizarreries comme une journalisation excessive ou des problèmes de réseau [1]. Sur iOS, l'absence de liaisons intégrées peut compliquer l'implémentation MVVM, conduisant à des contrôleurs de vue excessives ou à des modèles de vue pour les tâches qu'ils ne devraient pas gérer [2].
6. Documentation et tutoriels obsolètes: Il y a eu des préoccupations concernant les tutoriels et la documentation obsolètes pour MVVMCross. Cela peut rendre difficile pour les nouveaux développeurs de commencer ou de suivre les changements dans le cadre [5].
7. Longévité et soutien: Des questions sur la maturité et la longévité du cadre ont été soulevées, en particulier dans le contexte des technologies mobiles en évolution rapide. Cela peut avoir un impact sur les décisions sur l'opportunité d'utiliser MVVMCROSS pour les projets commerciaux [5].
Dans l'ensemble, bien que MVVMCross offre des avantages importants dans le développement de la plate-plaquette, sa complexité, ses problèmes de performance et ses défis spécifiques à la plate-forme nécessitent une attention particulière lorsqu'ils décident de l'utiliser pour les applications Android et iOS.
Citations:[1] https://blog.rthand.com/a-week-of-impressions-of-developing-for-android-using-xamarin-mvvmcross/
[2] https://www.danielhall.io/the-problems-with-mvvm-on-ios
[3] https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-60
[4] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[5] https://xamarin21.rssing.com/chan-23562832/article1771.html
[6] https://stackoverflow.com/questions/16301045/mvvmcross-v3-is-that-wrong-ttry-to-use-behaviours-et-storyboards-in-mu
[7] https://www.reddit.com/r/dotnet/comments/1cqqika/worth_converting_net_androidos_to_maui/
[8] https://mentormate.com/blog/6-reasons-mvvmcross-peeds-xamarin-development-personalizes-ux/
[9] https://stackoverflow.com/questions/26108486/should-i-use-mvvmcross-for-xamarin-forms-and-windows-store-app