Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hvordan håndterer MVVMCross platformspecifik kode


Hvordan håndterer MVVMCross platformspecifik kode


MVVMCROSS er designet til at håndtere platformspecifik kode effektivt ved at adskille applikationslogikken i to hoveddele: et kerneprojekt og platformspecifikke projekter. Kerneprojektet, typisk et .NET-standardbibliotek, indeholder forretningslogik, visningsmodeller, modeller og grænseflader til platformspecifikke tjenester. Dette giver mulighed for maksimal kodedeling på tværs af forskellige platforme som Android, iOS og Windows.

Platformspecifikke projekter

Hvert platformspecifikt projekt (f.eks. Xamarin.android, xamarin.ios) indeholder brugergrænsefladen og implementeringen af ​​platformspecifikke tjenester. Disse projekter er ansvarlige for at initialisere MVVMCROSS-rammen og registrere platformspecifikke tjenester ved hjælp af installationsklassen. Opsætningsklassen fungerer som en bootstrapper for MVVMCROSS, hvilket giver udviklere mulighed for at tilpasse rammens opførsel for hver platform.

Inversion af kontrol (IOC) og afhængighedsinjektion

MVVMCROSS bruger en inversion af Control (IOC) container til at styre afhængigheder på tværs af applikationen. Dette gør det muligt at registrere platformspecifikke tjenester og injiceres i kerneprojektets logik. For eksempel, hvis en applikation har brug for at få adgang til GPS-placeringstjenester, kan GPS-tjenesten registreres i den platformspecifikke opsætningsklasse og derefter injiceres i visningsmodellerne eller andre dele af kerneprojektet.

Tilpasning af platformopførsel

Udviklere kan tilpasse platformspecifik opførsel ved at tilsidesætte metoder i installationsklassen. På Android kan du for eksempel tilsidesætte metoder i `MVXandroidSetup 'for at registrere Android-specifikke tjenester eller håndtere Android-specifikke livscyklusbegivenheder. Tilsvarende ville du på iOS bruge `MVXIOSSETUP 'til at håndtere iOS-specifik initialisering og serviceregistrering.

Vis præsentanter

MVVMCROSS giver også View -præsentanter, der er ansvarlige for at beslutte, hvordan synspunkter præsenteres på hver platform. Dette muliggør tilpasning af UI -præsentationslogikken, såsom at vise visninger modalt eller som en del af en navigationsstak, afhængigt af platformens konventioner.

plugins og udvidelser

MVVMCross tilbyder en plugin-ramme, der giver udviklere mulighed for let at integrere tredjeparts plugins til almindelige funktionaliteter som lokalisering, sensorer og mere. Disse plugins kan bruges på tværs af flere platforme, hvilket yderligere reducerer behovet for platformspecifik kode.

Sammenfattende håndterer MVVMCROSS platformspecifik kode ved at tilvejebringe en struktureret tilgang til at adskille delt logik fra platformspecifikke implementeringer. Den bruger IOC og afhængighedsinjektion til at styre platformtjenester, tillader tilpasning gennem installationsklassen og understøtter plugins til at udvide funktionalitet på tværs af platforme.

Citater:
[1] https://github.com/mvvmcross/mvvmcross
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-using-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-specifik-ioc-in-mvvmcross
)
)
[8] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-packages
[9] https://www.codeproject.com/articles/863695/introduktion-to-mvvmcross-platform
[10] https://www.mvvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/advanced/customizing-sising-app-and-setup