MVVMCROSS je navrhnutý tak, aby efektívne zvládol kód špecifický pre platformu tým, že rozdeľuje logiku aplikácie na dve hlavné časti: základný projekt a projekty špecifické pre platformu. Základný projekt, zvyčajne štandardná knižnica .NET, obsahuje obchodnú logiku, modely, modely a rozhrania pre služby špecifické pre platformu. To umožňuje maximálne zdieľanie kódu na rôznych platformách, ako sú Android, iOS a Windows.
Platform špecifické projekty
Každý projekt špecifický pre platformu (napr. Xamarin.android, Xamarin.ios) obsahuje používateľské rozhranie a implementáciu služieb špecifických pre platformu. Tieto projekty sú zodpovedné za inicializáciu rámca MVVMCross a registráciu služieb špecifických pre platformu pomocou triedy nastavenia. Trieda nastavenia pôsobí ako bootstrapper pre MVVMCross, čo vývojárom umožňuje prispôsobiť správanie rámca pre každú platformu.
Inverzia kontroly (IOC) a injekcia závislosti
MVVMCross používa inverziu kontajnera riadenia (IOC) na správu závislostí v celej aplikácii. To umožňuje registráciu a vstrekovanie služieb špecifických pre platformu do logiky základného projektu. Napríklad, ak aplikácia potrebuje prístup k službám polohy GPS, služba GPS môže byť zaregistrovaná v triede nastavenia špecifickej pre platformu a potom sa vstrekne do zobrazovacích modelov alebo do iných častí základného projektu.
Prispôsobenie správania platformy
Vývojári si môžu prispôsobiť správanie špecifické pre platformu prostredníctvom potlačenia metód v triede nastavenia. Napríklad v systéme Android môžete prepísať metódy v `MVXandroidSetup 'na registráciu služieb špecifických pre Android alebo na zvládnutie životného cyklu špecifického pre Android. Podobne by ste na iOS použili na zvládnutie inicializácie špecifickej pre iOS a registráciu služieb „MVXIOSSETUP“.
Zobraziť moderátory
MVVMCross poskytuje aj prezentátorov View, ktorí sú zodpovední za rozhodovanie o tom, ako sa zobrazia zobrazenia na každej platforme. To umožňuje prispôsobenie logiky prezentácie používateľského rozhrania, ako je napríklad zobrazovanie zobrazení modely alebo ako súčasť navigačného zásobníka, v závislosti od konvencií platformy.
doplnky a rozšírenia
MVVMCross ponúka rámec doplnkov, ktorý vývojárom umožňuje ľahko integrovať doplnky tretích strán pre bežné funkcie, ako sú lokalizácia, senzory a ďalšie. Tieto doplnky sa môžu použiť na viacerých platformách, čím sa ďalej znižuje potreba kódu špecifického pre platformu.
Stručne povedané, MVVMCross spracováva kód špecifický pre platformu poskytnutím štruktúrovaného prístupu k oddeleniu zdieľanej logiky od implementácií špecifických pre platformu. Používa IOC a injekciu závislosti na správu služieb platformy, umožňuje prispôsobenie prostredníctvom triedy nastavenia a podporuje doplnky na rozšírenie funkcií na platformách.
Citácie:[1] https://github.com/mvvmcross/mvvmcross
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-Applications-using-the-mvvvvvmcross-framework-2920
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-verview
[5] https://stackoverflow.com/questions/14337063/platform-specific-ioc-in-mvvvmcross
[6] https://stackoverflow.com/questions/61641185/platform-specific-service-causes-an-exception-mvvvmcross-xamarin-ios
[7] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvvvmcross-framework/
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-package
[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/custoughising-using-app-and-setup