Az MVVMCross egy erőteljes platformok közötti MVVM-keretrendszer, amely javítja a Xamarin natív projekteket azáltal, hogy lehetővé teszi a bemutató rétegek és az UI logika megosztását a különböző platformokon. Íme néhány általános felhasználási eset az MVVMCross -ra a Xamarin natív projektekben:
1. Platformok közötti kód újrafelhasználása **
Az MVVMCross lehetővé teszi a fejlesztők számára, hogy maximalizálják a kód újrafelhasználását azáltal, hogy a ViewModels és az üzleti logikát egy hordozható osztálykönyvtárba (PCL) helyezik el. Ez a PCL hivatkozhat több platformspecifikus projektre, például a Xamarin.androidra és a Xamarin.ios-ra, biztosítva, hogy az alap logika konzisztens maradjon, míg az UI testreszabható minden platformon [1] [2].2. MVVM minta megvalósítása **
Az MVVMCross megkönnyíti a Model-View-ViewModel (MVVM) mintázat megvalósítását, amely előnyös a felhasználói felület és az üzleti logika közötti aggodalmak egyértelmű elválasztásának fenntartása érdekében. Ez a minta elősegíti a lazán kapcsolt alkalmazások létrehozását, megkönnyítve őket a teszteléshez és a karbantartáshoz [3] [5].3. Adatkötés és navigáció **
Az MVVMCross robusztus adatkötési képességeket biztosít, lehetővé téve a nézetek kötődését a ViewModels -hez zökkenőmentesen. Ez a szolgáltatás támogatja a különféle kötési módokat és átalakítókat, javítva az alkalmazás felhasználói felületének rugalmasságát. Ezenkívül az MVVMCross tartalmaz egy navigációs rendszert, amely egyszerűsíti az alkalmazás különböző nézeteinek mozgását [2] [5].4. Függőségi injekció és beépülő modulok **
Az MVVMCross egy függőségi injekciós (DI) tárolót kínál, amely lehetővé teszi a fejlesztők számára, hogy regisztrálják és megoldják a platformspecifikus szolgáltatásokat a PCL-től. Ez a szolgáltatás elengedhetetlen a platform-specifikus funkciók integrálásához a kód másolása nélkül. Ezenkívül az MVVMCross a pluginok széles skáláját támogatja a közös funkciókhoz, például az adatbázis -műveletekhez, a hálózati csatlakozáshoz és egyebekhez, amelyek könnyen integrálhatók a projektekbe a NuGet csomagokon keresztül [1] [3].5. Platformspecifikus UI testreszabás **
Míg a Xamarin.Forms korlátozza az UI testreszabását a platformokon, addig az MVVMCross a Xamarin natív segítségével a fejlesztőknek platformspecifikus UI-k létrehozását lehetővé teszik. Ez különösen akkor hasznos, ha egy alkalmazás minden platformon natív megjelenést és érzetet igényel. Az MVVMCross biztosítja, hogy a különféle felhasználói felületek megvalósítása ellenére a mögöttes üzleti logika továbbra is megosztott és következetes [1] [4].6.
Az üzleti logika PCL -re történő elválasztásával az MVVMCross megkönnyíti az egységtesztek írását az alkalmazás alaplogikájához. Ez az elválasztás felgyorsítja a fejlődést is, mivel az üzleti logika változásai nem igényelnek módosítást a platformspecifikus felhasználói felület kódjának [5].Összefoglalva: az MVVMCross sokoldalú eszköz a Xamarin natív projektekhez, amely strukturált megközelítést kínál a platformok közötti fejlesztéshez, miközben fenntartja a rugalmasságot az UI-k testreszabásához az egyes platformon. Jellemzői, mint például az MVVM mintázat-támogatás, az adatkötés, a függőségi injekció és a kiterjedt plugin-ökoszisztéma, ideális választássá teszi a komplex, platformok közötti alkalmazásokhoz.
Idézetek:[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[2] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[3] https://dev.to/christian1006/creating-cross-platform-xamarin-pplications-Using-the-mvvmcross-framework-2920
[4] https://canbilgin.wordpress.com/tag/mvvmcross/
[5] https://www.mvvmcross.com/documentation/getting-started/getting-started
[6] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-version
[7] https://stackoverflow.com/questions/32220007/what-does-mvvmcross-do-that-xamarin-doesnt-already
[8] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross