Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jaké jsou hlavní výzvy při používání mvvmcross


Jaké jsou hlavní výzvy při používání mvvmcross


MVVMCross je populární rámec pro vytváření aplikací pro křížové platformy pomocí vzorce modelu-view-viewModel (MVVM). I když nabízí mnoho výhod, jako je vazba dat a injekce závislosti, existuje několik výzev spojené s jeho používáním.

Defects in Framework Components

Jednou z hlavních výzev s MVVMCrossem je přítomnost defektů v některých jeho složkách, zejména ty související s pohledy Android a iOS, které podporují vazbu dat. Tyto vady mohou vést k problémům s uživatelským rozhraním a vyžadovat další úsilí o ladění. Vzhledem k tomu, že MVVMCross je otevřený zdroj, mohou uživatelé přispívat opravami, ale to nemusí být vždy pro vývojáře přímé, aniž by došlo k rozsáhlé znalosti o vnitřnosti rámce [3].

Rychlost spouštění

Aplikace MVVMCross často zažívají pomalejší časy spouštění ve srovnání s jinými rámci. To je z velké části způsobeno mechanismy založenými na odrazu používané během inicializace, které jsou vlastní architektuře rámce. I když je tato pomalost běžná také v aplikacích Xamarin obecně, může to být nevýhoda pro uživatele, kteří očekávají rychlé spuštění aplikace [3].

Aktualizace bolesti

Upgradování verzí MVVMCross může být náročné kvůli významným změnám v pojmenování konvencí a chování. Dokumentace často zaostává za těmito aktualizacemi, což vede k obtížím při hledání řešení nových problémů. To má za následek zdlouhavý a někdy frustrující proces upgradu [3].

Kvalita dokumentace

Kvalita dokumentace MVVMCross je další výzvou. Často obsahuje pravopisné chyby, postrádá komplexní referenční materiály a zahrnuje rozbité odkazy. Vývojáři se často musí ponořit do zdrojového kódu rámce, aby našli přesné informace, které mohou být časově náročné a vyžadují dobré pochopení architektury rámce [3].

Zastavené vzorky

MVVMCross poskytuje úložiště ukázkových projektů, ale mnoho z těchto vzorků je zastaralé a není kompatibilní s nejnovějšími verzemi rámce. To ztěžuje novým vývojářům začít nebo pro stávající vývojáře se přizpůsobit změnám v rámci. Aktivně je udržováno pouze několik vzorků, což omezuje jejich užitečnost pro učení a řešení problémů [3].

Omezení vázání dat

Zatímco MVVMCross podporuje vazbu dat, určité vazebné režimy, jako je jednorázová vazba, jsou méně běžně používány a nemusí být vhodné pro všechny scénáře. Tento režim aktivně nesleduje změny z ViewModelu, což může vést k zastaralým datům v pohledu, pokud není správně spravováno [1].

Navigace a problémy s životním cyklem

Navigace mezi ViewModely a řízením jejich životního cyklu může být složité, zejména při řešení chování specifického pro platformu, jako je hrobka na Androidu. MVVMCross poskytuje metody životního cyklu, které pomáhají řídit tyto scénáře, ale jejich zvládnutí vyžaduje dobré pochopení jak rámce, tak základních specifik platformy [7].

Inversion of Control and Service Locator

Zatímco vestavěný vzorec lokátoru služeb MVVMCrossu a podpora inverze kontrolních (IOC) jsou výkonné funkce, vyžadují pečlivé nastavení a správu. Registrační služby a řešení závislostí se mohou stát složitými, pokud nejsou řádně organizovány, zejména ve větších aplikacích [3] [6].

Stručně řečeno, zatímco MVVMCross nabízí mnoho výhod pro vývoj napříč platformami, představuje několik výzev souvisejících s vadami, výkonem, dokumentací a složitostí. Řešení těchto výzev vyžaduje hluboké pochopení rámce a jeho základních technologií.

Citace:
[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://github.com/mvvmcross/mvvmcross/issues/4201
[3] http://wojosoftware.com/software/mvvmcross/
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[5] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[7] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://stackoverflow.com/questions/16301045/mvvmcross-v3-is-that-wrong-to-try-to-use-behaviours-and-storyboards-in-a-mu