Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hogyan kezeli az mvvmcross platformspecifikus kódot


Hogyan kezeli az mvvmcross platformspecifikus kódot


Az MVVMCross célja a platformspecifikus kód hatékony kezelése az alkalmazás logikájának két fő részre való elválasztásával: egy alapvető projekt és platform-specifikus projektek. A Core Project, általában .NET Standard Library, az üzleti logikát, a modelleket, modelleket és interfészeket tartalmazza a platformspecifikus szolgáltatásokhoz. Ez lehetővé teszi a maximális kódmegosztást a különböző platformokon, például az Android, az iOS és a Windows között.

platformspecifikus projektek

Minden platformspecifikus projekt (például xamarin.android, xamarin.ios) tartalmazza a felhasználói felületet és a platformspecifikus szolgáltatások megvalósítását. Ezek a projektek felelősek az MVVMCross keretrendszer inicializálásáért és a platformspecifikus szolgáltatások regisztrálásáért a Setup osztály segítségével. A Setup osztály az MVVMCross bootstrapperként működik, lehetővé téve a fejlesztők számára, hogy testreszabják a keret viselkedését az egyes platformon.

A kontroll inverziója (IOC) és a függőség injekciója

Az MVVMCross a Control (IOC) konténer inverzióját használja az alkalmazáson belüli függőségek kezelésére. Ez lehetővé teszi a platformspecifikus szolgáltatások regisztrálását és injektálását az alapvető projekt logikájába. Például, ha egy alkalmazásnak hozzáférnie kell a GPS helymeghatározó szolgáltatásokhoz, akkor a GPS-szolgáltatás regisztrálható a platformspecifikus beállítási osztályban, majd beadhatja a nézetmodellekbe vagy az alapvető projekt más részeibe.

A platform viselkedésének testreszabása

A fejlesztők testreszabhatják a platformspecifikus viselkedést a beállítási osztály felülírási módszereivel. Például az Androidon felülbírálhatja a „mvxandroidsetup” módszereket az Android-specifikus szolgáltatások regisztrálására vagy az Android-specifikus életciklus-események kezelésére. Hasonlóképpen, az iOS-on a „mvxiossetup” -ot használja az iOS-specifikus inicializálás és a szolgáltatás regisztrációjának kezelésére.

Az előadók megtekintése

Az MVVMCross olyan nézőműsorokat is biztosít, amelyek felelősek annak eldöntéséért, hogy a nézetek hogyan jelennek meg az egyes platformon. Ez lehetővé teszi az UI prezentációs logika testreszabását, például a nézetek modálisan vagy a navigációs verem részeként, a platform konvencióitól függően.

plugins és kiterjesztések

Az MVVMCross egy plugin-keretet kínál, amely lehetővé teszi a fejlesztők számára, hogy a harmadik féltől származó plugineket könnyen integrálják a közös funkciókhoz, például a lokalizációhoz, az érzékelőkhez és még sok máshoz. Ezek a pluginok több platformon használhatók, tovább csökkentve a platformspecifikus kód szükségességét.

Összefoglalva: az MVVMCross kezeli a platformspecifikus kódot azáltal, hogy strukturált megközelítést biztosít a megosztott logika elválasztására a platform-specifikus megvalósításoktól. IOB és függőségi injekciót használ a platformszolgáltatások kezelésére, lehetővé teszi a testreszabást a beállítási osztályon keresztül, és támogatja a pluginokat a funkcionalitás kiterjesztéséhez a platformokon keresztül.

Idézetek:
[1] https://github.com/mvvmcross/mvvmcross
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-pplications-Using-the-mvvmcross-framework-2920
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[5] https://stackoverflow.com/questions/14337063/platform-specific-ioc-in-mvvmcross
[6] https://stackoverflow.com/questions/61641185/platform-specific-service-causes-an-exception-mvvmcross-xamarin-ios
[7] https://leaware.com/creating-cross-platform-xamarin-pplications-Uning-the-mvvmcross-framework/
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-packages
[9] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross platform
[10] https://www.mvvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-andsetup