MVVMCROSS je výkonný medzinárodný rámec MVVM, ktorý zvyšuje natívne projekty Xamarin tým, že umožňuje zdieľanie prezentačných vrstiev a logiky používateľského rozhrania na rôznych platformách. Tu je niekoľko bežných prípadov použitia pre MVVMCross v rodných projektoch Xamarin:
1. Opätovné použitie v rámci platformy **
MVVMCross umožňuje vývojárom maximalizovať opätovné použitie kódu umiestnením ViewModels a Business Logic do prenosnej knižnice triedy (PCL). Na túto PCL sa dá odkázať na viacerých projektoch špecifických pre platformu, ako napríklad Xamarin.android a Xamarin.ios, čo zabezpečuje, že základná logika zostáva konzistentná, zatiaľ čo používateľské rozhranie je možné prispôsobiť pre každú platformu [1] [2].2. MVVM Implementácia vzoru **
MVVMCross uľahčuje implementáciu vzoru modelu-view-viewmodel (MVVM), ktorý je prospešný pre udržanie jasného oddelenia obáv medzi používateľským rozhraním a obchodnou logikou. Tento model pomáha pri vytváraní voľne spojených aplikácií, čo uľahčuje testovanie a údržbu [3] [5].3. Viazanie a navigácia údajov **
MVVMCross poskytuje robustné schopnosti viazania údajov, čo umožňuje bezproblémové viazanie pohľadov na pohľady. Táto funkcia podporuje rôzne režimy väzby a prevodníky, čím sa zvyšuje flexibilita používateľského rozhrania aplikácie. Okrem toho MVVMCross obsahuje navigačný systém, ktorý zjednodušuje pohyb medzi rôznymi zobrazeniami v aplikácii [2] [5].4. Vstrekovanie závislosti a doplnky **
MVVMCross ponúka kontajner na vstrekovanie závislosti (DI), ktorý umožňuje vývojárom zaregistrovať sa a riešiť služby špecifické pre platformu z PCL. Táto funkcia je rozhodujúca pre integráciu funkcií špecifických pre platformu bez duplikácie kódu. Okrem toho MVVMCross podporuje širokú škálu doplnkov pre bežné funkcie, ako sú databázové operácie, sieťové pripojenie a ďalšie, ktoré sa dajú ľahko integrovať do projektov prostredníctvom balíkov NUGET [1] [3].5. Prispôsobenie UI špecifické pre platformu **
Zatiaľ čo Xamarin.Forms obmedzuje prispôsobenie používateľského rozhrania naprieč platformami, MVVMCross s Xamarin Native umožňuje vývojárom vytvárať používateľské rozhranie špecifické pre platformu. Je to užitočné najmä vtedy, keď aplikácia vyžaduje natívny vzhľad a dojem na každej platforme. MVVMCross zaisťuje, že napriek rôznym implementáciám používateľského rozhrania zostáva základná obchodná logika zdieľaná a konzistentná [1] [4].6. Testovanie jednotiek a efektívnosť vývoja **
Oddelením obchodnej logiky na PCL, MVVMCross uľahčuje písanie testov jednotiek pre hlavnú logiku aplikácie. Toto oddelenie tiež zrýchľuje vývoj, pretože zmeny v obchodnej logike nevyžadujú úpravy kódu UI špecifického pre platformu [5].Stručne povedané, MVVMCross je všestranný nástroj pre natívne projekty Xamarin, ktorý ponúka štruktúrovaný prístup k vývoju viacerých platforiem a zároveň si zachováva flexibilitu na prispôsobenie UIS pre každú platformu. Vďaka jeho vlastnostiam, ako je podpora vzoru MVVM, väzba na dáta, injekcia závislosti a rozsiahly ekosystém doplnkov, z neho robia ideálnu voľbu pre komplexné aplikácie viacerých platforiem.
Citácie:[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
Https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvvm-apps-with-xamarin-mith-xamarin-mith-mith-with-xamarin-mith
[3] https://dev.to/christian1006/creating-cross-platform-xamarin-Applications-using-the-mvvvvmcross-framework-2920
[4] https://canbilgin.wordpress.com/tag/mvvmcross/
[5] https://www.mvvmcross.com/documentation/getting-started/getting-started
[6] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-Verion
[7] https://stackoverflow.com/questions/32220007/what-does-mvvmcross-do-that-xamarin-doesnt-already
[8] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvvmcross