Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Cum gestionează codul specific al platformei MVVMcross


Cum gestionează codul specific al platformei MVVMcross


MVVMCross este proiectat pentru a gestiona eficient codul specific platformei prin separarea logicii aplicației în două părți principale: un proiect de bază și proiecte specifice platformei. Proiectul de bază, de obicei o bibliotecă standard .NET, conține logica de afaceri, modelele de vizualizare, modelele și interfețele pentru servicii specifice platformei. Aceasta permite partajarea maximă a codului pe diferite platforme precum Android, iOS și Windows.

Proiecte specifice platformei

Fiecare proiect specific platformei (de exemplu, xamarin.android, xamarin.ios) conține interfața de utilizator și implementarea serviciilor specifice platformei. Aceste proiecte sunt responsabile de inițializarea cadrului MVVMcross și de înregistrarea serviciilor specifice platformei folosind clasa de configurare. Clasa de configurare acționează ca un bootstrapper pentru MVVMcross, permițând dezvoltatorilor să personalizeze comportamentul cadrului pentru fiecare platformă.

Inversiunea controlului (COI) și injecția de dependență

MVVMCross folosește o inversare a containerului de control (IOC) pentru a gestiona dependențele din întreaga aplicație. Aceasta permite înregistrarea și injectarea serviciilor specifice platformei în logica proiectului de bază. De exemplu, dacă o aplicație trebuie să acceseze serviciile de locație GPS, serviciul GPS poate fi înregistrat în clasa de configurare specifică platformei și apoi injectată în modelele de vizualizare sau în alte părți ale proiectului de bază.

Personalizarea comportamentului platformei

Dezvoltatorii pot personaliza comportamentul specific platformei prin metode de suprasolicitare din clasa de configurare. De exemplu, pe Android, s-ar putea să înlocuiți metodele din `mvxandroidsetup` pentru a înregistra servicii specifice Android sau pentru a gestiona evenimentele de viață specifice Android. În mod similar, pe iOS, ați folosi `mvxiosSetup` pentru a gestiona inițializarea specifică iOS și înregistrarea serviciilor.

Vizualizați prezentatorii

MVVMcross oferă, de asemenea, prezentatori de vizualizare, care sunt responsabili de a decide modul în care sunt prezentate vizualizările pe fiecare platformă. Aceasta permite personalizarea logicii de prezentare a UI, cum ar fi afișarea vizualizărilor modal sau ca parte a unei stive de navigație, în funcție de convențiile platformei.

pluginuri și extensii

MVVMCross oferă un cadru de plugin care permite dezvoltatorilor să integreze cu ușurință plugin-uri terțe pentru funcționalități comune, cum ar fi localizarea, senzorii și multe altele. Aceste pluginuri pot fi utilizate pe mai multe platforme, reducând în continuare nevoia de cod specific platformei.

În rezumat, MVVMCross gestionează codul specific platformei prin furnizarea unei abordări structurate pentru separarea logicii partajate de implementările specifice platformei. Utilizează injecția IOC și dependență pentru a gestiona serviciile de platformă, permite personalizarea prin clasa de configurare și acceptă pluginuri pentru extinderea funcționalității pe platforme.

Citări:
[1] https://github.com/mvvmcross/mvvmcross
[2] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-sing-the-mvmcross-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-mvmcross
[6] https://stackoverflow.com/questions/61641185/platform-specific-service-causes-an-exception-mvvmcross-xamarin-ios
[7] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvmcross-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-started
[11] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup