MVVMcross je priljubljen okvir za gradnjo aplikacij za več platform z uporabo vzorca Model-View-ViewModel (MVVM). Medtem ko ponuja številne prednosti, kot sta zavezujoča podatkov in vbrizgavanje odvisnosti, je z njegovo uporabo povezanih več izzivov.
Napake v okvirnih komponentah
Eden glavnih izzivov pri MVVMcrossu je prisotnost napak v nekaterih njegovih komponentah, zlasti tistih, povezanih s pogledi Android in IOS, ki podpirajo vezavo podatkov. Te napake lahko privedejo do težav z uporabniškim vmesnikom in zahtevajo dodatna prizadevanja za odpravljanje napak. Ker je MVVMcross odprtokoden, lahko uporabniki prispevajo popravke, vendar to za razvijalce morda ne bo vedno enostavno brez obsežnega poznavanja notranjega okvira [3].
Hitrost zagona
Aplikacije MVVMcross imajo pogosto počasnejše zagonske čase v primerjavi z drugimi okviri. To je v veliki meri posledica mehanizmov, ki temeljijo na odsevu, ki se uporabljajo med inicializacijo, ki so značilni za arhitekturo okvira. Medtem ko je ta počasnost tudi v aplikacijah Xamarin na splošno, je lahko pomanjkljivost za uporabnike, ki pričakujejo hitre izstrelitve aplikacij [3].
Nadgradnja bolečin
Nadgradnja različic MVVMcross je lahko zahtevna zaradi pomembnih sprememb v poimenovanju konvencij in vedenja. Dokumentacija pogosto zaostaja za temi posodobitvami, kar vodi do težav pri iskanju rešitev novih vprašanj. To ima za posledico dolgotrajen in včasih frustrirajoč postopek nadgradnje [3].
Kakovost dokumentacije
Kakovost dokumentacije MVVMcross je še en izziv. Pogosto vsebuje črkovalne napake, primanjkuje celovitih referenčnih gradiv in vključuje pokvarjene povezave. Razvijalci se morajo pogosto poglobiti v izvorno kodo okvira, da bi našli natančne informacije, ki so lahko zamudne in zahteva dobro razumevanje arhitekture okvira [3].
Zastareli vzorci
MVVMcross ponuja odlagališče vzorčnih projektov, vendar so mnogi od teh vzorcev zastareli in niso združljivi z najnovejšimi različicami okvira. To novim razvijalcem otežuje začetek ali da se obstoječi razvijalci prilagodijo spremembam v okviru. Aktivno se vzdržuje le nekaj vzorcev, kar omejuje njihovo uporabnost za učenje in odpravljanje težav [3].
Omejitve vezave podatkov
Medtem ko MVVMcross podpira vezavo podatkov, se nekateri načini vezave, tako kot enkratna vezava, manj pogosto uporabljajo in morda niso primerni za vse scenarije. Ta način ne spremlja aktivno sprememb iz ViewModela, kar lahko privede do zastarelih podatkov v pogledu, če jih ne upravljamo pravilno [1].
Težave navigacije in življenjskega cikla
Navigacija med ViewModeli in upravljanje njihovega življenjskega cikla je lahko zapleteno, še posebej, če se ukvarjate z vedenjem, specifičnim za platformo, kot je nagrobnost na Androidu. MVVMcross ponuja način življenjskega cikla za pomoč pri upravljanju teh scenarijev, vendar njihovo obvladovanje zahteva dobro razumevanje okvira in osnovnih specifikov platforme [7].
Inversion of Control and Service Locator
Medtem ko sta MVVMcrossov vgrajeni vzorec lokatorja storitev in inverzija nadzora (MOK) močne lastnosti, zahtevajo skrbno nastavitev in upravljanje. Registriranje storitev in reševanje odvisnosti lahko postane zapleteno, če ni pravilno organizirano, zlasti v večjih aplikacijah [3] [6].
Če povzamemo, medtem ko MVVMcross ponuja številne prednosti za razvoj med platformami, predstavlja več izzivov, povezanih z napakami, uspešnostjo, dokumentacijo in zapletenostjo. Za reševanje teh izzivov je potrebno globoko razumevanje okvira in njegovih osnovnih tehnologij.
Navedbe:[1] https://www.mvvmcross.com/documentation/fundamentals/data----
[2] https://github.com/mvvmcross/mvvmcross/isissue/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-boille-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-to-to-e-behaviours-and-in Storyboards-in-Mu