Salīdzinot MVVMCROSS izmantošanu ar Xamarin.Forms un Xamarin Native, rodas vairākas galvenās atšķirības, galvenokārt attiecībā uz lietotāja saskarnes elastību, kodu apmaiņu un attīstības pieeju.
UI elastība un kontrole
- Xamarin.Forms: Šis ietvars nodrošina koplietotu lietotāja saskarnes slāni dažādās platformās, kas vienkāršo attīstību, ļaujot jums vienreiz uzrakstīt lietotāja saskarnes kodu un izvietot to vairākās platformās. Tomēr šī koplietotā lietotāja saskarne var ierobežot pielāgošanu ar platformai specifiskām funkcijām, pieprasot pielāgotus atveidotājus, lai sasniegtu modernākus lietotāja saskarnes elementus [7] [9]. MVVMCROSS var izmantot kopā ar Xamarin.Forms, lai pārvaldītu biznesa loģiku un navigāciju, bet lietotāja saskarne joprojām ir standartizēta dažādās platformās [1] [10].
- Xamarin Native: lietojot Xamarin Native ar MVVMCross, jums ir pilnīga kontrole pār katras platformas lietotāja saskarni. Tas ļauj platformai specifisku lietotāja saskarnes ieviešanu, maksimāli palielinot katras platformas vietējo izskatu un izskatu. Lai gan šī pieeja prasa vairāk pūļu, lai izstrādātu atsevišķus lietotāja saskarnes slāņus iOS un Android, tā piedāvā lielāku elastību un pielāgošanu [7] [9].
koda koplietošana un atkārtota izmantošana
- Xamarin.Forms: Izmantojot Xamarin.Forms, jūs varat dalīties ne tikai ar biznesa loģiku (caur MVVMCross), bet arī ar lietotāja saskarnes kodu dažādās platformās. Tas vienkāršo attīstību un samazina nepieciešamo koda daudzumu. Tomēr lietotāja saskarne ir ierobežota ar kopēju elementu kopumu, kas darbojas visās platformās [4] [10].
- Xamarin vietējais: vietējā Xamarin iestatījumā ar MVVMCross jūs varat dalīties ar biznesa loģiku (ViewModels) dažādās platformās, bet lietotāja saskarne jums jāievieš atsevišķi katrai platformai. Šī pieeja ļauj vairāk kodu izmantot prezentācijas slānī un UI loģikā, izmantojot MVVMCROSS, taču joprojām ir nepieciešama platformai specifiska UI izstrāde [9].
Attīstības pieeja
- Xamarin.Forms: Izstrādātāji bez plašas mobilās pieredzes bieži dod priekšroku attīstībai ar Xamarin.Forms un MVVMCross, jo tas vienkāršo starpplatformu lietotāja saskarnes attīstību. Sistēma apstrādā lielu daļu no pamata sarežģītības, ļaujot izstrādātājiem koncentrēties uz kopīgu loģiku un lietotāja saskarni [4] [10].
-Xamarin vietējais: Vietējais Xamarin attīstība ar MVVMCross parasti dod priekšroku izstrādātājiem, kuri vēlas smalkgraudainu kontroli pār lietotāja saskarni un ir apmierināti ar platformu specifisku attīstību. Šī pieeja prasa lielāku kompetenci vietējā iOS un Android attīstībā, bet tā piedāvā lielāku elastību UI projektēšanā un ieviešanā [7] [9].
Navigācija un saistīšana
- Xamarin.formas ar MVVMCROSS: Navigācija Xamarin.Forms ar MVVMCross tiek pārvaldīta ViewModel līmenī, ļaujot tīru bažu nodalīšanu. MVVMCROSS nodrošina uzlabotas saistīšanās iespējas, piemēram, rezerves vērtības, lai gan tai trūkst tādu funkciju kā avota īpašība, kas atrodama standarta Xamarin.Forms saistījumos [2] [10].
- Xamarin vietne ar MVVMCROSS: vietējos Xamarin projektos MVVMCROSS apstrādā navigāciju un skatu/skatuModeļa pārī, ļaujot pastāvīgu MVVM arhitektūru dažādās platformās. Šī iestatīšana ļauj izstrādātājiem piesaistīt platformai specifiskus navigācijas modeļus, vienlaikus saglabājot kopīgu biznesa loģikas slāni [3] [9].
Rezumējot, kaut arī abas pieejas var izmantot MVVMCross MVVM arhitektūrai, Xamarin.Forms piedāvā kopīgu lietotāja saskarnes slāni ar mazāku kontroli pār platformai specifiskas lietotāja saskarnes funkcijas, turpretī Xamarin Native nodrošina pilnīgu kontroli pār lietotāja saskarni, bet prasa vairāk attīstības pūles atsevišķai UI ieviešanai.
Atsauces:[1] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-forms
[2] https://www.xamarinhelp.com/use-xamarin-forms-mvvm-framework/
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/getting-started
[5] https://www.reddit.com/r/androiddev/comments/6cseds/what_are_the_disadvantage_of_xamarin_for_android/
[6] https://canbilgin.wordpress.com/2017/03/26/xamarin-for-form-application-with-mvvmcross/
[7] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
[8] https://mentormate.com/blog/6-Reons-mvVmcross-speeds-xamarin-development-personalizes-x/
[9] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[10] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx