MVVMCross îmbunătățește semnificativ reutilizarea codului în aplicațiile multiplice multiplice, utilizând modelul de arhitectură Model-View-ViewModel (MVVM). Iată cum realizează acest lucru:
1. Separarea preocupărilor: MVVMCross promovează o separare clară a îngrijorărilor prin împărțirea aplicației în două părți principale: miezul și UI. Proiectul de bază, de obicei o bibliotecă de clasă portabilă (PCL) sau .NET Standard Library, conține toate modelele, modelele și logica de afaceri. Aceasta permite reutilizarea codului maxim pe diferite platforme, deoarece logica de afaceri este decuplată de codul specific platformei [1] [2] [7].
2. ViewModels in Core Project: Plasând ViewModels în proiectul de bază, MVVMCross permite dezvoltatorilor să partajeze aceste componente pe mai multe platforme. Aceasta înseamnă că logica pentru gestionarea interacțiunilor utilizatorilor, manipularea datelor și navigarea poate fi reutilizată fără modificări pe diferite platforme precum iOS, Android și Windows [1] [3] [9].
3. Legarea datelor: MVVMCross acceptă legarea datelor, care actualizează automat UI atunci când apar modificări în ViewModel. Această caracteristică este crucială pentru menținerea consecvenței pe platforme și reduce nevoia de actualizări ale UI manuale, îmbunătățirea în continuare a reutilizării codului [4] [5].
4. Injecție de dependență și pluginuri: MVVMcross include o arhitectură plug-in și capacități de injecție de dependență (DI). Aceste caracteristici permit dezvoltatorilor să implementeze funcționalități specifice platformei într-un mod în care pot fi accesați și reutilizați cu ușurință din proiectul de bază. Aceasta înseamnă că, în timp ce stratul UI trebuie să fie specific platformei, multe funcționalități de bază pot fi încă împărtășite [3] [9].
5. Prezentatori de navigație și vizualizare: MVVMCross oferă un sistem puternic de navigație ViewModel-First, care permite orchestrarea navigației aplicațiilor din proiectul de bază. Aceasta înseamnă că fluxul de interacțiuni ale utilizatorilor și tranzițiile de ecran poate fi gestionat central, reducând nevoia de cod de navigație specific platformei [7].
6. Structura eficientă a proiectului: MVVMCross încurajează o abordare structurată a organizării proiectului, cu o separare clară între codul de platformă-agnostică în codul de bază și specific platformei în proiectele UI. Această structură facilitează întreținerea și extinderea mai ușoară a aplicațiilor platforme [2] [9].
În general, MVVMCross îmbunătățește reutilizarea codului prin centralizarea logicii de afaceri, utilizând legarea datelor și oferind instrumente pentru gestionarea funcționalităților specifice platformei într-o manieră unificată. Această abordare reduce semnificativ cantitatea de cod duplicat și accelerează dezvoltarea aplicației multiplă platformă.
Citări:[1] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[2] https://www.toptal.com/xamarin/cross-platform-apps-with-xamarin
[3] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[4] https://tiefenauer.github.io/blog/mobile-app-development-with-xamarin-and-mvvmcross-part-1-introduction/
[5] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[6] https://diglib.tugraz.at/download.php?id=576a78335451d&locație=browse
[7] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[8] https://www.reddit.com/r/swift/comments/yrqlhu/is_crossplatform_the_future_of_mobile_development/
[9] https://lea atunci
[10] https://stackoverflow.com/questions/22409697/maximizing-ui-code-reuse-with-xamarin-mvvmcross