MVVMCross je populární rámec pro mobilní vývoj napříč platformami pomocí Xamarinu, který umožňuje vývojářům využít vzor MVVM napříč Android, IOS a dalšími platformami. Přes své výhody však existuje několik nevýhod, které je třeba zvážit při použití MVVMCross pro aplikace Android a iOS:
1. Složitost a křivka učení: MVVMCross je velký rámec, který vyžaduje čas na plné uchopení. Noví vývojáři mohou považovat za náročné porozumět jeho základě, například jak se datový kontext přenáší mezi komponenty [1]. Tato složitost může vést k strmější křivce učení ve srovnání s jednoduššími rámci.
2. Problémy s výkonem: Někteří uživatelé nahlásili problémy s výkonem, jako jsou pomalé doby spuštění a zpoždění ve vazbách ListView. Tyto problémy lze připsat MVVMCross, Xamarin nebo samotné platformě Android, což ztěžuje určit přesnou příčinu bez profileru výkonu [1].
3. Chybové zprávy a ladění: Chybové zprávy rámce by mohly být informativní. Místo pouhých hlášení chyb by mohli navrhnout potenciální řešení, která by pomohla při rychlejším ladění a vývoji [1].
4. Opakovaná použitelnost a testovatelnost: Zatímco MVVMCross si klade za cíl zlepšit testovatelnost oddělováním obchodní logiky od pohledu, v praxi se modely mohou být nafouknuty a obtížně testovatelné. To platí zejména v případě, že zpracovávají více povinností a udržují vnitřní stav, což ztěžuje nezávisle testování metod [2]. Modely zobrazení se navíc často stávají reausovatelnými napříč různými řadiči pohledu kvůli jejich specifickým implementacím [2].
5. Výzvy specifické pro platformu: Na Android, fragmentaci a zásobník Java mohou představovat další výzvy. Například použití obrázků Intel Android X86 v emulátorech může vést k vtípkám, jako je nadměrné problémy s protokolováním nebo síťové problémy [1]. U iOS může nedostatek vestavěných vazeb zkomplikovat implementaci MVVM, což vede k nadměrnému spoléhání se na řadiče pohledu nebo zobrazení modelů pro úkoly, které by neměly zvládnout [2].
6. Zastavená dokumentace a návody: Existovaly obavy o zastaralé návody a dokumentaci pro MVVMCross. To může pro nové vývojáře ztěžovat začít nebo držet krok se změnami v rámci [5].
7. Dlouhověkost a podpora: Byly vzneseny otázky týkající se zralosti a dlouhověkosti rámce, zejména v souvislosti s rychle se vyvíjejícími mobilními technologiemi. To může mít dopad na rozhodnutí, zda použít MVVMCross pro komerční projekty [5].
Celkově, zatímco MVVMCross nabízí významné výhody ve vývoji napříč platformami, jeho složitost, problémy s výkonem a výzvy specifické pro platformu je třeba při rozhodování o tom, zda jej používat pro aplikace Android a IOS, pečlivě zvážit.
Citace:[1] https://blog.rthand.com/aweek-of-impressions-of-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-to-try-ing-use-behaviours-and-storyboards-in-a-mu
[7] https://www.reddit.com/r/dotnet/comments/1cqqika/worth_converting_net_andoidios_to_maui/
[8] https://mentormate.com/blog/6-parsons-mvvmcross-speeds-xamarin-developalizes-ux/
[9] https://stackoverflow.com/questions/26108486/shald-use-use-use-svvmcross-for-xamarin-form-and-indows-app-app