Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kako MVVMcross podpira kodo, specifično za platformo


Kako MVVMcross podpira kodo, specifično za platformo


MVVMcross podpira kodo, specifično za platformo, prek več mehanizmov, kar razvijalcem omogoča ustvarjanje aplikacij med platformami, hkrati pa še vedno izkorišča funkcije izvorne platforme. Tu je podroben pregled, kako MVVMcross olajša kodo, specifično za platformo:

1. ločitev pomislekov **

Aplikacije MVVMcross so običajno strukturirane na dva glavna dela: osnovni projekt in platform specifični uporabniški uporabniški vmesnik. Osrednji projekt, ki se pogosto izvaja kot knjižnica prenosnih razredov (PCL) ali .NET Standard Library, vsebuje poslovno logiko, modele, modele ogledov in vmesnike za storitve, specifične za platformo. Ta ločitev omogoča največjo ponovno uporabo kode na platformah, hkrati pa ohranja kodo, specifično za platformo, izolirano v projektih uporabniškega vmesnika [2] [7].

2. Inverzija nadzora (IOC) in vbrizgavanje odvisnosti **

MVVMcross uporablja vsebnik MOK za upravljanje odvisnosti. To razvijalcem omogoča, da registrirajo storitve, specifične za platformo, v projektih, specifičnih za platformo, in jih vbrizgajo v modele ogledov osnovnega projekta. Na primer, če mora aplikacija dostopati do kamere, lahko osnovni projekt določi vmesnik za dostop do kamere in vsak projekt, specifičen za platformo, lahko zagotovi lastno izvajanje tega vmesnika. Vsebnik IOC nato te odvisnosti reši med izvajanjem in tako zagotovi, da se uporablja pravilna storitev, specifična za platformo [2] [8] [11].

3. Storitve, specifične za platformo **

Storitve, specifične za platformo, se izvajajo v domačih projektih uporabniškega vmesnika. Te storitve so registrirane v razredu nastavitve vsakega projekta platforme. Razred nastavitve je odgovoren za zagon MVVMcross in registriranje storitev, specifičnih za platformo, s vsebnikam IOC. To omogoča modele ogledov v osnovnem projektu za uporabo funkcionalnosti, specifične za platformo, ne da bi neposredno sklicevali na API-je, specifične za platformo [2] [7].

4. okvir vtičnika **

MVVMcross vključuje okvir vtičnikov, ki razvijalcem omogoča enostavno integracijo funkcij, specifičnih za platformo, v svoje aplikacije. Vtičniki lahko zagotavljajo funkcionalnosti, kot so lokacija GPS, lokalizacija, senzorji in drugo. Ti vtičniki so registrirani pri vsebnik IOC, ki omogočajo, da modeli View omogočajo dostop do funkcij, specifičnih za platformo, z vbrizgavanjem odvisnosti. Ta okvir podpira tudi zasmehovane izvedbe za namene testiranja [4] [11].

5. Prilagodljiv vezivni motor **

MVVMcross ponuja prilagodljiv vezivni motor, ki razvijalcem omogoča ustvarjanje vezi po meri za poglede, specifične za platformo. Ta funkcija je še posebej uporabna pri delu z domačimi kontrolami, ki ne podpirajo standardnih mehanizmov za vezavo podatkov. Z definiranjem vezi po meri lahko razvijalci zagotovijo, da so njihovi modeli pogledov pravilno povezani s pogledi, specifičnimi za platformo [4].

6. predstavitelji platforme **

MVVMcross uporablja predstavnike, specifične za platformo (npr. "ImvxiosViewPresenter`,` imvxandroidViewPresenter`) za upravljanje, kako se prikažejo pogledi na vsaki platformi. Ti predstavniki omogočajo prilagajanje logike predstavitve, kar razvijalcem omogoča, da prilagodijo vedenje uporabniškega vmesnika glede na zahteve določene platforme [3].

Če povzamemo, MVVMcross podpira kodo, specifično za platformo, tako da zagotavlja strukturiran pristop k ločevanju poslovne logike od izvajanja, specifične za platformo, uporabi IOC in vbrizgavanja odvisnosti za upravljanje storitev ter ponuja prilagodljive okvire za vezavo in vtičnike za integracijo izvornih funkcij. To razvijalcem omogoča, da povečajo ponovno uporabo kode, hkrati pa še vedno zagotavljajo uporabniške izkušnje, specifične za platformo.

Navedbe:
[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-mvvmcross-platform
[6] https://mentarmate.com/blog/6-reasons-mvvmcross-peeds-xamarin-development-perolize-ux/
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://stackoverflow.com/questions/14337063/platform-pecific-ioc-in-mvvmcross
[9] https://www.mvvmcross.com/documentation/getting-started/getting-start
[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-boille-build-mvvm-apps-with-xamarin-and-mvvmcross