Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ako MVVMCross podporuje kód špecifický pre platformu


Ako MVVMCross podporuje kód špecifický pre platformu


MVVMCROSS podporuje kód špecifický pre platformu prostredníctvom niekoľkých mechanizmov, čo vývojárom umožňuje vytvárať aplikácie viacerých platforiem a zároveň využívať natívne funkcie platformy. Tu je podrobný prehľad o tom, ako MVVMCross uľahčuje kód špecifický pre platformu:

1. Oddelenie obáv **

Aplikácie MVVMCross sú zvyčajne štruktúrované do dvoch hlavných častí: základný projekt a projekty používateľského rozhrania špecifické pre platformu. Základný projekt, často implementovaný ako prenosná knižnica triedy (PCL) alebo .NET Standard Library, obsahuje obchodnú logiku, modely, zobrazenie modelov a rozhrania pre služby špecifické pre platformu. Toto oddelenie umožňuje maximálne opätovné použitie kódu naprieč platformami a zároveň udržiavať kód špecifický pre platformu izolovanú v projektoch používateľského rozhrania [2] [7].

2. Inverzia kontroly (IOC) a injekcia závislosti **

MVVMCross používa na správu závislostí kontajner IOC. To umožňuje vývojárom registrovať služby špecifické pre platformu v projektoch špecifických pre platformu a vložiť ich do modelov View Core Project. Napríklad, ak aplikácia potrebuje prístup k fotoaparátu, základný projekt môže definovať rozhranie pre prístup k fotoaparátu a každý projekt špecifický pre platformu môže poskytnúť svoju vlastnú implementáciu tohto rozhrania. Kontajner IOC potom tieto závislosti vyrieši za behu a zabezpečuje, aby sa použila správna služba špecifická pre platformu [2] [8] [11].

3. Služby špecifické pre platformu **

Služby špecifické pre platformu sú implementované v natívnych projektoch používateľského rozhrania. Tieto služby sú registrované v triede nastavenia každého projektu platformy. Trieda nastavenia je zodpovedná za bootstrapping MVVMCross a registráciu služieb špecifických pre platformu v kontajneri IOC. To umožňuje modelu zobrazenia v hlavnom projekte používať funkcie špecifické pre platformu bez priameho odkazovania API špecifických pre platformu [2] [7].

4. Plugin Framework **

MVVMCross obsahuje rámec doplnkov, ktorý vývojárom umožňuje ľahko integrovať funkcie špecifické pre platformu do svojich aplikácií. Doplnky môžu poskytovať funkcie, ako je umiestnenie GPS, lokalizácia, senzory a ďalšie. Tieto doplnky sú registrované v kontajneri MOV, čo umožňuje modelom View prístup k funkciám špecifickým pre platformu prostredníctvom injekcie závislosti. Tento rámec tiež podporuje falošné implementácie na účely testovania [4] [11].

5. Prispôsobiteľný väzbový motor **

MVVMCross poskytuje prispôsobiteľný väzbový motor, ktorý vývojárom umožňuje vytvárať vlastné väzby pre zobrazenia špecifické pre platformu. Táto funkcia je obzvlášť užitočná pri práci s natívnymi kontrolami, ktoré nepodporujú štandardné mechanizmy väzby na údaje. Definovaním vlastných viazaní môžu vývojári zabezpečiť, aby ich modely pohľadu boli správne pripojené k zobrazeniam špecifickým pre platformu [4].

6. Prednášajúci platformy **

MVVMCROSS používa moderátory špecifické pre platformu (napr. „IMVXIOSViewPresenter`,` IMVXandroidViewPresenter`) na správu spôsobu zobrazovania zobrazení na každej platforme. Títo prednášajúci umožňujú prispôsobenie logiky prezentácie, čo vývojárom umožňuje prispôsobiť správanie používateľského rozhrania požiadavkám konkrétnej platformy [3].

Stručne povedané, MVVMCross podporuje kód špecifický pre platformu poskytnutím štruktúrovaného prístupu k oddeleniu obchodnej logiky od implementácie špecifickej pre platformu, využívaním IOC a injekciou závislosti na riadení služieb a ponúka prispôsobiteľné rámce viazaných a doplnkových rámcov na integráciu natívnych funkcií. To umožňuje vývojárom maximalizovať opätovné použitie kódu a zároveň poskytovať skúsenosti používateľov špecifických pre platformu.

Citácie:
[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-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://github.com/mvvmcross/mvvmcross
[5] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[6] https://mentormate.com/blog/6-reasons-mvvmcross-Speeds-xamarin-development-personalizácie-ux/
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-verview
[8] https://stackoverflow.com/questions/14337063/platform-specific-ioc-in-mvvvmcross
[9] https://www.mvvmcross.com/documentation/getting-started/getting-started
[10] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvvmcross-framework/
Https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvvm-apps-with-xamarin-mith-xamarin-mith-mith-mith-with-xamarin-and-mcross