„MVVMCross“ yra skirtas efektyviai tvarkyti konkrečios platformos kodą, atskirdamas programos logiką į dvi pagrindines dalis: pagrindinius projektus ir konkrečias platformai skirtus projektus. Pagrindiniame projekte, paprastai .NET standartinėje bibliotekoje, yra verslo logika, peržiūros modeliai, modeliai ir sąsajos, skirtos platformai specifinėms paslaugoms. Tai leidžia maksimaliai bendrinti kodą įvairiose platformose, tokiose kaip „Android“, „iOS“ ir „Windows“.
konkrečios platformos projektai
Kiekviename konkrečiam platformai būdingam projektui (pvz., „Xamarin.android“, „Xamarin.ios“) yra vartotojo sąsaja ir konkrečios platformos paslaugų įgyvendinimas. Šie projektai yra atsakingi už „MVVMCross Framework“ inicijavimą ir platformos specifinių paslaugų registravimą naudojant sąrankos klasę. Sąrankos klasė veikia kaip „MVVMCross“ įkrovos straperis, leidžianti kūrėjams pritaikyti kiekvienos platformos sistemos elgseną.
Valdymo inversija (IOC) ir priklausomybės injekcija
„MVVMCross“ naudoja valdymo (IOC) konteinerio inversiją, kad galėtų valdyti priklausomybes visoje programoje. Tai leidžia užregistruoti ir sušvirkšti į pagrindinio projekto logiką. Pvz., Jei programai reikia pasiekti GPS vietos nustatymo paslaugas, GPS paslaugą galima užregistruoti konkrečios platformos sąrankos klasėje ir įšvirkščiamas į „View“ modelius ar kitas pagrindinio projekto dalis.
Platformos tinkinimo elgsena
Kūrėjai gali pritaikyti konkrečios platformos elgseną, naudodamiesi aukštesni nei sąrankos klasėje. Pavyzdžiui, „Android“ galite nepaisyti metodų „Mvxandroidsetup“, kad užregistruotumėte „Android“ specifines paslaugas arba tvarkytumėte „Android“ specifinius gyvenimo ciklo įvykius. Panašiai „iOS“ naudotumėte „mvxiosetup“, kad tvarkytumėte „iOS“ specifinę inicijavimo ir paslaugų registraciją.
Peržiūrėti pranešėjus
„MVVMCross“ taip pat pateikia peržiūros laidų vedėjus, kurie yra atsakingi už sprendimą, kaip kiekvienoje platformoje pateikiami vaizdai. Tai leidžia pritaikyti vartotojo sąsajos pateikimo logiką, pavyzdžiui, rodyti peržiūras modiškai arba kaip navigacijos krūvos dalis, atsižvelgiant į platformos konvencijas.
papildiniai ir plėtiniai
„MVVMCross“ siūlo papildinių sistemą, leidžiančią kūrėjams lengvai integruoti trečiųjų šalių papildinius, skirtus bendroms funkcijoms, tokioms kaip lokalizacija, jutikliai ir dar daugiau. Šie papildiniai gali būti naudojami keliose platformose, dar labiau sumažinant konkrečios platformos kodo poreikį.
Apibendrinant galima pasakyti, kad „MVVMCross“ tvarko konkrečios platformos kodą, pateikdamas struktūrizuotą požiūrį į bendros logikos atskyrimą nuo konkrečios platformos diegimo. Jis naudoja IOC ir priklausomybės injekciją platformos paslaugoms valdyti, leidžia pritaikyti per sąrankos klasę ir palaiko papildinius, skirtus išplėsti funkcionalumą visose platformose.
Citatos:[1] https://github.com/mvvmcross/mvvmcross
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-application-sing-the-mvvmcross-framework-2920
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[5] https://stackoverflow.com/questions/14337063/platform-precific-ioc-in-mvvmcross
[6] https://stackoverflow.com/questions/61641185/platform-pecific-service-causes-an-exception-svvmcross-xamarin-ios
[7] https://leaware.com/creating-cross-platform-xamarin-application-using-the-mvvmcross-framework/
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-packages
[9] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[10] https://www.mvvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/advanced/customizing-using-app ir-setup