MVVMCross je výkonný rámec MVVM napříč platformami, který nabízí několik výhod pro vývoj aplikací napříč platformami, zejména při použití s Xamarinem. Zde jsou některé z klíčových výhod používání MVVMCross:
MVVM Vzor a znovu použití kódu
MVVMCross umožňuje vývojářům implementovat vzor modelu-view-viewModel (MVVM), který je prospěšný pro oddělení logiky aplikace od uživatelského rozhraní. Toto oddělení umožňuje opětovné použití obchodní logiky na různých platformách, jako jsou iOS, Android a Windows, umístěním ViewModels do přenosné knihovny třídy (PCL) nebo .NET Standard Library [1] [2]. Tento přístup významně zvyšuje opětovné použití kódu, protože stejný ViewModel lze použít na více platformách, přičemž každá platforma implementuje jeho nativní uživatelské rozhraní.Vazba dat
MVVMCross podporuje vazbu dat, což je pro vzorec MVVM zásadní. Vazba dat umožňuje automaticky aktualizovat prvky uživatelského rozhraní, když se základní data změní, což snižuje potřebu manuálních aktualizací a kódu kotle [3] [5]. Tato funkce pomáhá udržovat čisté oddělení obav mezi uživatelským rozhraním a obchodní logikou.Injekce závislosti a inverze kontroly
MVVMCross zahrnuje vestavěnou inverzi kontrolního (IOC) kontejneru, který podporuje injekci závislosti. To umožňuje vývojářům snadno spravovat závislosti mezi komponenty a službami. Použitím injekci konstruktéru mohou ViewModels přijímat služby specifické pro platformu, aniž byste museli znát podrobnosti o implementaci, což usnadňuje psaní kódu napříč platformami [2] [5].Pluginy a funkce specifické pro platformu
MVVMCross nabízí architekturu pluginů, která umožňuje vývojářům vytvářet a používat funkce specifické pro platformu bez duplikace kódu. Tyto pluginy lze snadno nainstalovat prostřednictvím NUGET a poskytovat funkce, jako je přístup k fotoaparátu, GPS nebo databázové operace, které jsou implementovány odlišně na každé platformě [1] [2]. Tento přístup zjednodušuje integraci služeb specifických pro platformu do aplikací pro napříč platformami.Testovatelnost
Jednou z významných výhod používání MVVMCross je zlepšená testovatelnost viewmodelů. Protože ViewModely obsahují obchodní logiku a jsou odděleny z uživatelského rozhraní, lze je snadno testovat nezávisle na kódu UI specifického pro platformu [2] [5]. To usnadňuje psaní testů jednotek pro aplikační logiku.Navigace a Zobrazit přednášející
MVVMCross poskytuje výkonný navigační systém ViewModel-First, který zahrnuje ViewPresenters. Tyto komponenty pomáhají zvládat, jak jsou zobrazení prezentovány na různých platformách, což umožňuje větší flexibilitu v navigaci a prezentaci uživatelského rozhraní [8].Flexibilita a rozšiřitelnost
MVVMCross podporuje jak Xamarin Native, tak Xamarin.forms vývojové přístupy a nabízí flexibilitu při výběru, jak implementovat vrstvu uživatelského rozhraní [9]. Navíc její open-source příroda a aktivní komunita zajišťují, že může být rozšířena a přizpůsobena tak, aby vyhovovala konkrétním potřebám projektu.Celkově MVVMCross zvyšuje vývoj napříč platformami podporou opětovného použití kódu, zjednodušením implementací specifických pro platformu a zlepšením udržovatelnosti a testovatelnosti aplikací.
Citace:[1] https://www.suneco.nl/blogs/boost-your-xamarin-projects-with-mvvmcross/
[2] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[3] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[4] https://stackoverflow.com/questions/32220007/what-does-mvvmcross-do-that-xamarin-doesnt-již
[5] https://www.cms.lk/mvvmcross--cross-platform-platform-for-xamarin/
[6] https://www.velveTech.com/blog/5-parsons-use-mobile-cross-platform-development/
[7] https://www.toptal.com/app/xamarin-mvvmcross-skiasharp-Cross-Platform
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[9] https://www.mvvmcross.com/documentation/getting-started/gettingstarted