Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Aké sú hlavné výzvy pri používaní MVVMCross


Aké sú hlavné výzvy pri používaní MVVMCross


MVVMCROSS je populárny rámec pre budovanie aplikácií viacerých platforiem pomocou vzoru modelu-View-ViewModel (MVVM). Aj keď ponúka mnoho výhod, ako napríklad väzba údajov a injekcia závislosti, s jeho použitím je spojené niekoľko výziev.

Defekty v rámcových komponentoch

Jednou z hlavných výziev s MVVMcrossom je prítomnosť defektov v niektorých z jeho zložiek, najmä tie, ktoré sa týkajú zobrazení Android a iOS, ktoré podporujú väzbu údajov. Tieto chyby môžu viesť k problémom s používateľským rozhraním a vyžadovať ďalšie ladiace úsilie. Pretože MVVMCROSS je otvoreným zdrojom, používatelia môžu prispievať opravy, ale to nemusí byť vždy jednoduché pre vývojárov bez rozsiahlych znalostí internárov rámca [3].

Rýchlosť spustenia

Aplikácie MVVMCross často zažívajú pomalšie časy spustenia v porovnaní s inými rámcami. Je to do značnej miery spôsobené mechanizmami založenými na odrazoch, ktoré sa používajú počas inicializácie, ktoré sú spojené s architektúrou rámca. Aj keď je táto pomalosť bežná aj v aplikáciách Xamarin všeobecne, môže to byť nevýhodou pre používateľov, ktorí očakávajú spustenie rýchleho aplikácie [3].

Upgrade Pains

Modernizácia verzií MVVMCross môže byť náročná v dôsledku významných zmien v konvenciách a správaní pomenovávania. Dokumentácia často zaostáva za týmito aktualizáciami, čo vedie k ťažkostiam pri hľadaní riešení nových problémov. Výsledkom je zdĺhavý a niekedy frustrujúci proces aktualizácie [3].

Kvalita dokumentácie

Ďalšou výzvou je kvalita dokumentácie MVVMCross. Často obsahuje pravopisné chyby, chýbajú komplexné referenčné materiály a obsahujú rozbité odkazy. Vývojári sa často musia ponoriť do zdrojového kódu rámca, aby našli presné informácie, ktoré môžu byť časovo náročné a vyžadujú si dobré pochopenie architektúry rámca [3].

zastarané vzorky

MVVMCross poskytuje úložisko vzorových projektov, ale mnohé z týchto vzoriek sú zastarané a nie sú kompatibilné s najnovšími verziami rámca. To sťažuje novým vývojárom začať alebo pre existujúcich vývojárov prispôsobiť sa zmenám v rámci. Aktívne sa udržiava iba niekoľko vzoriek, čo obmedzuje ich užitočnosť pri učení a riešení problémov [3].

Obmedzenia väzby údajov

Zatiaľ čo MVVMCross podporuje väzbu údajov, niektoré režimy väzby, napríklad jednorazová väzba, sa používajú menej bežne a nemusia byť vhodné pre všetky scenáre. Tento režim sa aktívne monitoruje zmeny z programu ViewModel, čo môže viesť k zastaraným údajom v zobrazení, ak nie sú správne spravované [1].

Problémy s navigáciou a životným cyklom

Navigácia medzi ViewModels a riadením ich životného cyklu môže byť zložitá, najmä pri riešení správania špecifického pre platformu, ako je Tombstoning na Android. MVVMCross poskytuje metódy životného cyklu, ktoré pomáhajú spravovať tieto scenáre, ale ich zvládnutie si vyžaduje dobré pochopenie rámca aj špecifiká základnej platformy [7].

Inverzia riadenia a lokalizátora služieb

Zatiaľ čo vstavaný vzor lokalizátora služieb MVVMCross a inverzia riadenia (IOC) sú výkonnými funkciami, vyžadujú starostlivé nastavenie a správu. Registrovanie služieb a riešenie závislostí sa môžu stať zložitými, ak nie sú správne usporiadané, najmä vo väčších aplikáciách [3] [6].

Stručne povedané, zatiaľ čo MVVMCross ponúka mnoho výhod pre rozvoj medzi platformami, predstavuje niekoľko výziev súvisiacich s defektmi, výkonom, dokumentáciou a zložitosťou. Riešenie týchto výziev si vyžaduje hlboké pochopenie rámca a jeho základných technológií.

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