MVVMCROSS è un framework popolare per lo sviluppo mobile multipiattaforma utilizzando Xamarin, consentendo agli sviluppatori di sfruttare il modello MVVM attraverso Android, iOS e altre piattaforme. Tuttavia, nonostante i suoi benefici, ci sono diversi svantaggi da considerare quando si utilizzano MVVMCRoss per applicazioni Android e iOS:
1. Complessità e curva di apprendimento: MVVMCRoss è un ampio quadro che richiede tempo per cogliere pienamente. I nuovi sviluppatori possono trovare impegnativo comprendere i suoi fondamenti, come il modo in cui il contesto dei dati viene trasferito tra i componenti [1]. Questa complessità può portare a una curva di apprendimento più ripida rispetto ai framework più semplici.
2. Problemi di prestazioni: alcuni utenti hanno segnalato problemi di prestazioni, come tempi di avvio lenti e ritardi nei binding di ListView. Questi problemi possono essere attribuiti a mvvmcross, xamarin o alla stessa piattaforma Android, rendendo difficile individuare la causa esatta senza un profiler di prestazioni [1].
3. Messaggi di errore e debug: i messaggi di errore del framework potrebbero essere più informativi. Invece di segnalare solo errori, potrebbero suggerire potenziali soluzioni, che aiuterebbero a debug e sviluppo più rapidi [1].
4. Riusabilità e testabilità: mentre MVVMCRoss mira a migliorare la testimonianza separando la logica aziendale dalla vista, in pratica, i modelli di visualizzazione possono diventare gonfiati e difficili da testare. Ciò è particolarmente vero se gestiscono più responsabilità e mantengono lo stato interno, rendendo difficile testare i metodi in modo indipendente [2]. Inoltre, i modelli di visualizzazione spesso diventano non reindirizzati tra i diversi controller di visualizzazione a causa delle loro implementazioni specifiche [2].
5. Sfide specifiche della piattaforma: su Android, la frammentazione e lo stack Java possono porre ulteriori sfide. Ad esempio, l'uso di immagini Intel Android X86 negli emulatori può portare a stranezze come la registrazione eccessiva o i problemi di rete [1]. Su iOS, la mancanza di attacchi integrati può complicare l'implementazione di MVVM, portando a una dipendenza eccessiva sui controller di visualizzazione o ai modelli di visualizzazione per le attività che non dovrebbero gestire [2].
6. Documentazione o obsoleto o obsoriati: ci sono state preoccupazioni sui tutorial obsoleti e sulla documentazione per MVVMCRoss. Ciò può rendere difficile per i nuovi sviluppatori iniziare o tenere il passo con le modifiche nel framework [5].
7. Longevità e supporto: sono state sollevate domande sulla maturità e la longevità del framework, in particolare nel contesto delle tecnologie mobili in rapida evoluzione. Ciò può influire sulle decisioni sull'opportunità di utilizzare MVVMCRoss per progetti commerciali [5].
Nel complesso, mentre MVVMCRoss offre significativi vantaggi nello sviluppo multipiattaforma, la sua complessità, i problemi di prestazioni e le sfide specifiche della piattaforma richiedono un'attenta considerazione quando si decide se usarlo per applicazioni Android e iOS.
Citazioni:[1] https://blog.rthand.com/a-week-of-impressions-of-developing-for-android-using-xamarin-mvvmcross/
[2] https://www.danielhall.io/the-probless-with-mvvm-on-ios
[3] https://www.mvvmcross.com/documentation/upgrading/upgrado-to-mvvvmcross-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-to-try-to-use-behaviours-and-storyboards-in-a-mu
[7] https://www.reddit.com/r/dotnet/comments/1qqqika/worth_converting_net_androidios_to_maui/
[8] https://mmenmate.com/blog/6-reasons-mvvmcross-speeds-xamarin-development-personalizes-ux/
[9] https://stackoverflow.com/questions/26108486/should-i-use-mvvmcross-for-xamarin-forms-and-windows-store-app