Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kā MVVMCROSS atbalsta platformas specifisko kodu


Kā MVVMCROSS atbalsta platformas specifisko kodu


MVVMCROSS atbalsta platformai raksturīgo kodu, izmantojot vairākus mehānismus, ļaujot izstrādātājiem izveidot dažādu platformu lietojumprogrammas, vienlaikus izmantojot vietējās platformas funkcijas. Šeit ir detalizēts pārskats par to, kā MVVMCross atvieglo platformas specifisko kodu:

1. Bažu atdalīšana **

MVVMCROSS lietojumprogrammas parasti tiek strukturētas divās galvenajās daļās: galvenajā projektā un platformai specifiskos UI projektos. Galvenais projekts, kas bieži tiek ieviests kā portatīvā klases bibliotēka (PCL) vai .NET standarta bibliotēka, satur biznesa loģiku, modeļus, skatiem un saskarnes platformas specifiskiem pakalpojumiem. Šī atdalīšana ļauj maksimāli atkārtoti izmantot kodu visās platformās, vienlaikus saglabājot platformai raksturīgo kodu, kas izolēts UI projektos [2] [7].

2. Kontroles inversija (SOK) un atkarības injekcija **

MVVMCROSS izmanto SOK konteineru, lai pārvaldītu atkarības. Tas ļauj izstrādātājiem reģistrēt platformas specifiskus pakalpojumus platformai specifiskos projektos un ievadīt tos galvenā projekta skatu modeļos. Piemēram, ja lietojumprogrammai ir jāpiekļūst kamerai, pamatprojekts var definēt saskarni piekļuvei kamerai, un katrs platformai raksturīgais projekts var nodrošināt savu šīs saskarnes ieviešanu. Pēc tam SOK konteiners atrisina šīs atkarības izpildlaikā, nodrošinot, ka tiek izmantots pareizais platformas specifiskais pakalpojums [2] [8] [11].

3. platformas specifiski pakalpojumi **

Platformas specifiski pakalpojumi tiek ieviesti vietējos UI projektos. Šie pakalpojumi ir reģistrēti katra platformas projekta iestatīšanas klasē. Iestatīšanas klase ir atbildīga par MVVMCross sāknēšanu un platformas specifisko pakalpojumu reģistrēšanu ar SOK konteineru. Tas ļauj skatu modeļiem galvenajā projektā izmantot platformai specifisko funkcionalitāti, tieši neatsaucoties uz platformai specifiskām API [2] [7].

4. spraudņu ietvars **

MVVMCROSS ietver spraudņu ietvaru, kas ļauj izstrādātājiem viegli integrēt platformai specifiskās funkcijas savās lietojumprogrammās. Spraudņi var nodrošināt tādas funkcijas kā GPS atrašanās vieta, lokalizācija, sensori un daudz kas cits. Šie spraudņi ir reģistrēti SOK konteinerā, ļaujot View modeļiem piekļūt platformai specifiskām funkcijām, izmantojot atkarības injekciju. Šis ietvars arī atbalsta izspēles ieviešanu testēšanas nolūkos [4] [11].

5. Pielāgojams iesiešanas dzinējs **

MVVMCROSS nodrošina pielāgojamu iesiešanas motoru, kas ļauj izstrādātājiem izveidot pielāgotus iesiešanas platformas specifiskiem skatiem. Šī funkcija ir īpaši noderīga, strādājot ar vietējām kontrolēm, kas neatbalsta standarta datu saistīšanas mehānismus. Definējot pielāgotos iesiešanas gadījumus, izstrādātāji var nodrošināt, ka to skata modeļi ir pareizi savienoti ar platformas specifiskiem skatiem [4].

6. platformas vadītāji **

MVVMCROSS izmanto platformas specifiskus vadītājus (piemēram, `imvxiosviewpresenter`,` imvxandroidViewPresenter`), lai pārvaldītu, kā skati tiek parādīti katrā platformā. Šie vadītāji ļauj pielāgot prezentācijas loģiku, ļaujot izstrādātājiem pielāgot lietotāja saskarnes uzvedību konkrētās platformas prasībām [3].

Rezumējot, MVVMCROSS atbalsta platformai raksturīgu kodu, nodrošinot strukturētu pieeju biznesa loģikas atdalīšanai no platformas specifiskas ieviešanas, piesaistīt SOK un atkarības injekciju pakalpojumu pārvaldībai un piedāvājot pielāgojamu iesiešanu un spraudņu ietvarus vietējo funkciju integrēšanai. Tas ļauj izstrādātājiem maksimizēt kodu atkārtotu izmantošanu, vienlaikus nodrošinot platformai specifisku lietotāju pieredzi.

Atsauces:
[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework-2920
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://github.com/mvvmcross/mvvmcross
[5] https://www.codeproject.com/articles/863695/introduction-to-mvmcross-platform
[6.]
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://stackoverflow.com/questions/14337063/platform-specific-ioc-in-mvvmcross
[9] https://www.mvvmcross.com/documentation/getting-started/getting-started
[10] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[11] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvm-apps-with-xamarin-and-mvmcross