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