Az MVVMCross népszerű keret a platformok közötti mobil fejlesztéshez a Xamarin használatával, lehetővé téve a fejlesztők számára, hogy kihasználják az MVVM mintát az Android, iOS és más platformon. Az előnyeinek ellenére azonban számos hátrányt kell figyelembe venni, amikor az MVVMCross Android és iOS alkalmazásokhoz használják:
1. Komplexitás és tanulási görbe: Az MVVMCross egy nagy keret, amely időtartamot igényel a teljes megértéshez. Az új fejlesztőknek kihívást jelenthetnek az alapjainak megértése, például az adatkontextus átadásának módja az összetevők között [1]. Ez a bonyolultság meredekebb tanulási görbéhez vezethet az egyszerűbb keretekhez képest.
2. Teljesítményproblémák: Néhány felhasználó beszámolt a teljesítményproblémákról, például a lassú indítási időkről és a ListView kötések késéseiről. Ezek a kérdések az MVVMCross, a Xamarin vagy maga az Android platformnak tulajdoníthatók, megnehezítve a pontos ok pontos meghatározását a teljesítményprofil nélkül [1].
3. Hibaüzenetek és hibakeresés: A keret hibaüzenetei informatívabbak lehetnek. A hibák jelentése helyett potenciális megoldásokat javasolhatnak, amelyek elősegítik a gyorsabb hibakeresést és fejlődést [1].
4. Az újrafelhasználhatóság és a tesztelhetőség: míg az MVVMCross célja a tesztelhetőség javítása az üzleti logika elválasztásával a nézettől, a nézetmodellek felpunyá válhatnak és nehezen tesztelhetők. Ez különösen igaz, ha több felelősséget kezel és fenntartja a belső állapotot, megnehezítve a módszerek önálló tesztelését [2]. Ezenkívül a nézeti modellek gyakran nem reakciókká válnak a különböző nézetvezérlők között, sajátos megvalósításuk miatt [2].
5. Platformspecifikus kihívások: Az Androidon, a Fragmentation és a Java Stack további kihívásokat jelenthet. Például az Intel Android X86 képek emulátorokban történő használata olyan furcsaságokhoz vezethet, mint a túlzott naplózás vagy a hálózati problémák [1]. Az iOS-nál a beépített kötések hiánya bonyolíthatja az MVVM megvalósítását, ami túlzottan támaszkodik a nézetvezérlőkre vagy a nézetmodellekre olyan feladatokhoz, amelyeket nem szabad kezelni [2].
6. Elavult dokumentáció és oktatóanyagok: Aggodalmak merültek fel az elavult oktatóanyagok és az MVVMCross dokumentációja miatt. Ez megnehezítheti az új fejlesztők számára az indulás vagy a keretrendszer változásaival való lépést [5].
7. Hosszú élettartam és támogatás: Felmerült a keret érettségével és hosszú élettartamával kapcsolatos kérdések, különösen a gyorsan fejlődő mobil technológiák összefüggésében. Ez befolyásolhatja a döntéseket arról, hogy az MVVMCROS -t használják -e kereskedelmi projektekhez [5].
Összességében, míg az MVVMCross jelentős előnyöket kínál a platformok közötti fejlesztésben, bonyolultsága, teljesítményproblémái és platformspecifikus kihívásainak alapos megfontolásra van szükség, amikor eldöntik, hogy az Android és iOS alkalmazásokhoz használják-e.
Idézetek:[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-th-to-try-touseus-behaviours- és Storyboards-in-A-A-Mu
[7] https://www.reddit.com/r/dotnet/comments/1cqqika/worth_converting_net_androidios_to_maui/
[8] https://mentormate.com/blog/6-Reasons-mvvmcross-speeds-xamarin-development-peranalizes-ux/
[9] https://stackoverflow.com/questions/26108486/should-i-use-mvmcross-for-xamarin-for-and-and-windows-past-app