Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Môžete vysvetliť interakciu medzi projektmi jadra a používateľského rozhrania v MVVMCross


Môžete vysvetliť interakciu medzi projektmi jadra a používateľského rozhrania v MVVMCross


MVVMCROSS je rámec medzi platformami, ktorý uľahčuje vývoj aplikácií pomocou vzoru modelu-ViewModel (MVVM). Umožňuje vývojárom vytvárať voľne spojené, udržiavateľné a testovateľné mobilné riešenia rozdelením logiky aplikačnej aplikácie na dve hlavné časti: základný projekt a projekt používateľského rozhrania.

Základný projekt

Základným projektom je zvyčajne štandardná knižnica .NET, ktorá obsahuje všetok zdieľaný kód vrátane:
- ViewModels: Sú zodpovedné za riešenie interakcií používateľov a obchodnej logiky.
- Modely: Reprezentujte dátové štruktúry použité v celej aplikácii.
- Služby: Poskytnite prístup k údajom, webovým službám alebo iným externým zdrojom.
- Prevodníky: Používa sa na konverzie typu dát.
- Trieda aplikácií: Toto je zodpovedné za inicializáciu modelov obchodnej logiky a zobrazenia aplikácie. Zaoberá sa tiež registráciou vlastných objektov v kontajneri Inversion of Control (IOC).
- AppStart: Voliteľne sa používa na určenie toho, ktorý model sa má predstaviť ako prvý, keď sa aplikácia spustí.

UI projekt

Projekt UI je špecifický pre platformu a obsahuje prvky používateľského rozhrania a kód špecifický pre platformu. Pre každú cieľovú platformu (napr. IOS, Android) existuje samostatný projekt používateľského rozhrania. Tieto projekty zahŕňajú:
- Zobraziť: Každý pohľad je zodpovedný za prezentáciu príslušného modelu pohľadu. Pohľady sú navrhnuté pomocou natívnych nástrojov platformy (napr. XAML pre Xamarin.Forms, AXML pre Android).
- Natívny obsluha aplikácií: To sa zaoberá natívnymi udalosťami životného cyklu. Napríklad v systéme Android by to bola trieda „MainActivity“ alebo „MainApplication“, zatiaľ čo v systéme iOS by to bola trieda „AppDelegate“.
- Trieda nastavenia: Toto je zodpovedné za bootstrapping MVVMCross a registráciu služieb špecifických pre platformu. Inicializuje rámec MVVMCross a nastavuje kontajner IOC s implementáciou špecifickými pre platformu.

Interakcia medzi projektmi Core a UI

Interakcia medzi projektmi jadra a UI v MVVMCross je uľahčená vzorom MVVM a kontajnerom IOC v rámci. Takto interagujú:
- Viazanie ViewModel: Projekty používateľského rozhrania používajú MVVMCross na viazanie zobrazení na zobrazenie modelov. Zvyčajne sa to robí pomocou pomenovacej konvencie alebo zdobením pohľadov pomocou atribútov ako `[MVXViewfor (Typeof (HomeviewModel))]`.
- Vstrekovanie služieb: Základný projekt definuje rozhrania pre služby, ktoré sú implementované odlišne na každej platforme. Tieto služby sú zaregistrované v kontajneri MOV a vstrekujú sa do zobrazovacích modelov, čo umožňuje funkčnosť špecifickú pre platformu bez duplikácie kódu.
- Navigácia a prezentácia: MVVMCross poskytuje mechanizmy na navigáciu medzi modelmi pohľadu a prezentáciu pohľadov. Rámec používa moderátory (napr. „IMVXIOSViewPresenter`,` IMVXandroidViewPresenter`) na správu spôsobu zobrazovania zobrazení na každej platforme.

Oddelením logiky aplikácie na projekty Core a UI, MVVMCross umožňuje vývojárom maximalizovať opätovné použitie kódu naprieč platformami a zároveň umožňuje prispôsobenie a optimalizáciu špecifické pre platformu [1] [3] [5].

Citácie:
[1] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-woreview
[2] https://canbilgin.wordpress.com/tag/mvvmcross/
[3] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvvmcross-framework/
[4] https://www.mvvmcross.com/documentation/advanced/custoughing-using-app-and-setup
[5] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvvmcross/
Https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvvm-apps-with-xamarin-mith-xamarin-mith-mith-mith-xamarin-and-mcross
[7] https://www.mvvmcross.com/documentation/tutorials/tipcalc/the-core-project
[8] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvvmcross/