MVVMCross je výkonný, názorný rámec MVVM (model-view-ViewModel) určený pro vývoj aplikací napříč platformami v ekosystému .NET. Podporuje různé platformy, včetně Xamarin.ios, Xamarin.Android, Xamarin.Forms, Universal Windows Platform (UWP), Windows Presentation Foundation (WPF) a dalších [1] [3] [4]. Zde je přehled o jeho klíčových funkcích a o tom, jak to funguje:
Klíčové vlastnosti mvvmcross
- Vzor architektury MVVM: MVVMCross implementuje vzor MVVM, který odděluje aplikační logiku do tří vzájemně propojených komponent: model, zobrazení a viewModel [3].
-Navigační systém: Poskytuje robustní navigační systém, který umožňuje snadné správu přechodů viewModel-viewModel [2] [4].
- Vazba dat: MVVMCross zahrnuje přizpůsobitelný vazebný motor, který vývojářům umožňuje vytvářet vlastní vazby pro jejich názory [4].
- Inverze kontroly (IOC) a injekce závislosti: rámec podporuje IOC prostřednictvím injekce závislosti, usnadňuje volnou vazbu a testovatelnost [3] [4].
-Podpora specifická pro platformu: Nabízí rozsáhlou podporu funkcí a funkcí specifických pro platformu [3].
- Pluginy a rozšíření: MVVMCross obsahuje rámec pluginů, který umožňuje vývojářům snadno integrovat další funkce, jako je GPS, lokalizace a další [4].
Jak funguje mvvmcross
Projekty Core and UI
Aplikace mvvmcross se obvykle skládají ze dvou hlavních částí:
- Core Project: To obsahuje obchodní logiku, ViewModels, Services a modely. Obvykle je implementována jako standardní knihovna .NET, aby byla zajištěna kompatibilita napříč platformami [2].
- Projekty UI: Každá platforma (např. IOS, Android) má svůj vlastní projekt UI, který zahrnuje kód specifický pro platformu a pohledy, které interagují s hlavním projektem [2].
Klíčové objekty a inicializace
- Třída aplikace: Tato třída se nachází v hlavním projektu, je zodpovědná za registraci vlastních objektů pomocí kontejneru IOC a inicializaci logiky aplikace [2].
- AppStart Objekt: Volitelný, tento objekt určuje, který ViewModel se má první během spuštění aplikace [2].
- Třída nastavení: Tato třída nalezena v každém projektu platformy inicializuje služby MVVMCross a registruje služby specifické pro platformu [2].
Inicializační proces
1. Spuštění platformy: Začíná proces spuštění nativní platformy.
2. Nastavení MVVMCROSS: Třída `Setup` inicializuje rámec ve dvou krocích:` inicializePrimary` (hlavní vlákno) a `inicializesECondary` (vlákno pozadí) [2].
3. inicializace aplikace: Třída „App` je inicializována a poskytuje objekt„ appStart “pro správu prvního navigačního kroku [2].
Začínáme s mvvmcross
Pro zahájení nového projektu MVVMCross mohou vývojáři používat šablony, jako je MVXSCAFFolding. Rámec je k dispozici prostřednictvím balíčků NUGET, které by měly být nainstalovány v projektech specifických pro základní i platformu [3] [4]. Pro podrobné průvodce a dokumentaci jsou oficiální web MVVMCross a úložiště Github vynikající zdroje [1] [4].
Citace:[1] https://www.mvvmcross.com
[2] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[3] https://www.mvvmcross.com/documentation/getting-started/gettingstarted
[4] https://github.com/mvvmcross/mvvmcross
[5] https://www.mvvmcross.com/blog/
[6] https://github.com/mvvmcross
[7] https://x.com/mvvmcross?lang=en
[8] https://www.nuget.org/profiles/mvvmcross