Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hogyan támogatja az mvvmcross támogatási platform-specifikus kódot


Hogyan támogatja az mvvmcross támogatási platform-specifikus kódot


Az MVVMCross számos mechanizmus révén támogatja a platformspecifikus kódot, lehetővé téve a fejlesztők számára, hogy platformok közötti alkalmazásokat hozzanak létre, miközben továbbra is kihasználják a natív platform funkciókat. Itt található egy részletes áttekintés arról, hogy az MVVMCross hogyan segíti elő a platformspecifikus kódot:

1. Az aggodalmak elválasztása **

Az MVVMCross alkalmazások általában két fő részre vannak felépítve: egy alapvető projekt és platformspecifikus felhasználói felület projektek. Az alapvető projekt, amelyet gyakran hordozható osztálykönyvtárként (PCL) vagy .NET Standard Libraryként valósítanak meg, az üzleti logikát, a modelleket, a modelleket és a platformspecifikus szolgáltatások interfészeit tartalmazza. Ez az elválasztás lehetővé teszi a maximális kód újrafelhasználását a platformokon keresztül, miközben a platformspecifikus kódot az UI projektekben izolálva tartja [2] [7].

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

Az MVVMCross IOB -tárolót használ a függőségek kezelésére. Ez lehetővé teszi a fejlesztők számára, hogy regisztrálják a platformspecifikus szolgáltatásokat a platformspecifikus projektekben, és beilleszthetik azokat az alapvető projekt nézetmodellekbe. Például, ha egy alkalmazásnak hozzáférnie kell a kamerához, akkor az alapvető projekt meghatározhatja a kamera hozzáférésének felületét, és minden platform-specifikus projekt biztosíthatja ennek a felületnek a saját megvalósítását. A NOB-tartály ezután megoldja ezeket a függőségeket futásidejűleg, biztosítva, hogy a helyes platformspecifikus szolgáltatást használják [2] [8] [11].

3. Platformspecifikus szolgáltatások **

A platformspecifikus szolgáltatásokat a natív felhasználói felület projektekben hajtják végre. Ezeket a szolgáltatásokat az egyes platformprojektek beállítási osztályában regisztrálják. A beállítási osztály felelős az MVVMCross bootstrappingért és a platformspecifikus szolgáltatások regisztrálásáért a NOB-konténerrel. Ez lehetővé teszi a Core Project nézetmodellek számára, hogy platformspecifikus funkcionalitást használjanak anélkül, hogy közvetlenül hivatkoznának a platform-specifikus API-k [2] [7].

4. Plugin keretrendszer **

Az MVVMCross tartalmaz egy plugin-keretet, amely lehetővé teszi a fejlesztők számára, hogy könnyen integrálják a platformspecifikus funkciókat alkalmazásaikba. A pluginek olyan funkciókat biztosíthatnak, mint a GPS hely, lokalizáció, érzékelők és így tovább. Ezeket a bővítményeket a NOB konténerrel regisztrálják, lehetővé téve a View Models-hez, hogy a platform-specifikus funkciókhoz függőségi injekcióval elérjék. Ez a keret támogatja a MOCK megvalósítását a tesztelési célokra is [4] [11].

5. Testreszabható kötőmotor **

Az MVVMCross testreszabható kötőmotorot biztosít, amely lehetővé teszi a fejlesztők számára, hogy egyedi kötéseket hozzanak létre a platformspecifikus nézetekhez. Ez a szolgáltatás különösen akkor hasznos, ha olyan natív vezérlőkkel dolgozik, amelyek nem támogatják a szokásos adatkötési mechanizmusokat. Az egyedi kötések meghatározásával a fejlesztők gondoskodhatnak arról, hogy nézetmodelleik megfelelően kapcsolódjanak a platformspecifikus nézetekhez [4].

6. Platform -előadók **

Az MVVMCross platformspecifikus előadókat (például IMVXIosViewPresenter ",` imVxandroidViewPresenter ') használ, hogy kezelje a nézetek megjelenítését az egyes platformon. Ezek az előadók lehetővé teszik a prezentációs logika testreszabását, lehetővé téve a fejlesztők számára, hogy a felhasználói felület viselkedését az adott platform követelményeihez igazítsák [3].

Összefoglalva: az MVVMCross támogatja a platformspecifikus kódot azáltal, hogy strukturált megközelítést biztosít az üzleti logika elválasztásához a platformspecifikus megvalósítástól, a NOB és a függőség injekciójának kiaknázása érdekében a szolgáltatáskezeléshez, valamint testreszabható kötési és plugin-keretrendszereket kínál a natív szolgáltatások integrálására. Ez lehetővé teszi a fejlesztők számára, hogy maximalizálják a kód újrafelhasználását, miközben továbbra is platformspecifikus felhasználói élményeket nyújtanak.

Idézetek:
[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-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://github.com/mvvmcross/mvvmcross
[5] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross platform
[6] https://mentormate.com/blog/6-Reasons-mvvmcross-sefeds-xamarin-development-peranalizes-ux/
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://stackoverflow.com/questions/14337063/platform-specific-ioc-in-mvvmcross
[9] https://www.mvvmcross.com/documentation/getting-started/getting-started
[10] https://leaware.com/creating-cross-platform-xamarin-pplications-Uning-the-mvvmcross-framework/
[11] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross