Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hvordan håndterer MVVMCROSS plattformspesifikk kode


Hvordan håndterer MVVMCROSS plattformspesifikk kode


MVVMCROSS er designet for å håndtere plattformspesifikk kode effektivt ved å skille applikasjonslogikken i to hoveddeler: et kjerneprosjekt og plattformspesifikke prosjekter. Kjerneprosjektet, typisk et .NET-standardbibliotek, inneholder forretningslogikken, visningsmodeller, modeller og grensesnitt for plattformspesifikke tjenester. Dette muliggjør maksimal kodedeling på forskjellige plattformer som Android, iOS og Windows.

plattformspesifikke prosjekter

Hvert plattformspesifikt prosjekt (f.eks. Xamarin.android, Xamarin.ios) inneholder brukergrensesnittet og implementeringen av plattformspesifikke tjenester. Disse prosjektene er ansvarlige for å initialisere MVVMCROSS-rammeverket og registrere plattformspesifikke tjenester ved hjelp av oppsettklassen. Oppsettklassen fungerer som en bootstrapper for MVVMCROSS, slik at utviklere kan tilpasse rammens oppførsel for hver plattform.

Inversjon av kontroll (IOC) og avhengighetsinjeksjon

MVVMCROSS bruker en inversjon av kontrollbeholder (IOC) for å håndtere avhengigheter på tvers av applikasjonen. Dette gjør at plattformspesifikke tjenester kan registreres og injiseres i kjerneprosjektets logikk. For eksempel, hvis en applikasjon må få tilgang til GPS-plasseringstjenester, kan GPS-tjenesten registreres i den plattformspesifikke oppsettklassen og deretter injiseres i visningsmodellene eller andre deler av kjerneprosjektet.

Tilpasse plattformatferd

Utviklere kan tilpasse plattformspesifikk atferd ved å overstyre metoder i oppsettklassen. For eksempel, på Android, kan du overstyre metoder i `mvxandroidsetup` for å registrere Android-spesifikke tjenester eller håndtere Android-spesifikke livssyklushendelser. Tilsvarende på iOS vil du bruke `mvxiossetup` for å håndtere iOS-spesifikk initialisering og tjenestegistrering.

Vis presentatører

MVVMCROSS gir også visningspresentanter, som er ansvarlige for å avgjøre hvordan visninger presenteres på hver plattform. Dette muliggjør tilpasning av UI -presentasjonslogikken, for eksempel å vise visninger modalt eller som en del av en navigasjonsstabel, avhengig av plattformens konvensjoner.

Plugins og utvidelser

MVVMCROSS tilbyr et plugin-rammeverk som lar utviklere enkelt integrere tredjeparts plugins for vanlige funksjoner som lokalisering, sensorer og mer. Disse plugins kan brukes på flere plattformer, noe som ytterligere reduserer behovet for plattformspesifikk kode.

Oppsummert håndterer MVVMCROSS plattformspesifikk kode ved å gi en strukturert tilnærming til å skille delt logikk fra plattformspesifikke implementeringer. Den bruker IOC og avhengighetsinjeksjon for å administrere plattformtjenester, tillater tilpasning gjennom oppsettklassen og støtter plugins for å utvide funksjonalitet på tvers av plattformer.

Sitasjoner:
[1] https://github.com/mvvmcross/mvvmcross
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-sing-the-mvvmcross-ramework-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-spesific-ioc-in-mvvmcross
[6] https://stackoverflow.com/questions/61641185/platform-spesific-service-auses-an-exception-mvvmcross-xamarin-ios
[7] https://leaware.com/creating-cross-platform-xamarin-applications-sing-the-mvvmcross-ramwork/
[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-apps-av-and-setup