Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kako MVVMcross Hanrad Code, specifično za platformo


Kako MVVMcross Hanrad Code, specifično za platformo


MVVMcross je zasnovan tako, da učinkovito ravna s kodo, specifično za platformo, tako da loči logiko aplikacije na dva glavna dela: osnovni projekt in projekt, specifičen za platformo. Osrednji projekt, ki je običajno standardna knjižnica .NET, vsebuje poslovno logiko, modele ogledov, modele in vmesnike za storitve, specifične za platformo. To omogoča največjo skupno rabo kode na različnih platformah, kot so Android, iOS in Windows.

Projekti, specifični za platformo

Vsak projekt, specifičen za platformo (npr. Xamarin.android, xamarin.ios), vsebuje uporabniški vmesnik in izvajanje storitev, specifičnih za platformo. Ti projekti so odgovorni za inicializacijo okvira MVVMcross in registracijo storitev, specifičnih za platformo, z uporabo nastavitvenega razreda. Razred nastavitve deluje kot zagon za MVVMcross, ki razvijalcem omogoča, da prilagodijo vedenje okvira za vsako platformo.

Inverzija nadzora (IOC) in vbrizgavanje odvisnosti

MVVMcross za upravljanje odvisnosti v aplikaciji uporablja inverzijo kontinuide (IOC). To omogoča registracijo in vbrizgavanje storitev, specifičnih za platformo, v logiko osnovnega projekta. Na primer, če mora aplikacija dostopati do lokacijskih storitev GPS, lahko storitev GPS registrirate v nastavitvenem razredu, specifičnem za platformo in nato vbrizgate v modele pogleda ali druge dele osnovnega projekta.

Prilagajanje vedenja platforme

Razvijalci lahko prilagajajo vedenje, specifično za platformo, tako da v razredu nastavitve prevladujejo. Na primer, na Androidu lahko v `mvxandroidsetup` preglasite metode, da registrirate storitve, specifične za Android ali se lotite dogodkov življenjskega cikla, specifičnih za Android. Podobno bi v iOS-u uporabili `mvxiossetup` za obdelavo inicializacije in registracije storitev, specifične za iOS.

View predstavitelji

MVVMcross ponuja tudi predstaviteljem pogleda, ki so odgovorni za odločanje, kako so pogledi predstavljeni na vsaki platformi. To omogoča prilagajanje logike predstavitve uporabniškega vmesnika, na primer prikazovanje pogledov modalno ali kot del navigacijskega sklada, odvisno od konvencij platforme.

Vtičniki in podaljški

MVVMcross ponuja okvir vtičnikov, ki razvijalcem omogoča enostavno integracijo vtičnikov tretjih oseb za skupne funkcionalnosti, kot so lokalizacija, senzorji in drugo. Te vtičnike se lahko uporabljajo na več platformah, kar še dodatno zmanjša potrebo po kodi, specifični za platformo.

Če povzamemo, MVVMcross obravnava kodo, specifično za platformo, tako da zagotavlja strukturiran pristop k ločevanju skupne logike od izvedbe, specifičnih za platformo. Uporablja IOC in vbrizgavanje odvisnosti za upravljanje storitev platforme, omogoča prilagajanje prek nastavitvenega razreda in podpira vtičnike za razširitev funkcionalnosti na platformah.

Navedbe:
[1] https://github.com/mvvmcross/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://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[5] https://stackoverflow.com/questions/14337063/platform-pecific-ioc-in-mvvmcross
[6] https://stackoverflow.com/questions/61641185/platform-specific-service-causes-an-exception-mvmcross-xamarin-ios
[7] https://leaware.com/creating-cross-platform-xamarin-applications-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-start
[11] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup