Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Care sunt diferențele cheie între utilizarea MVVMcross cu Xamarin.Forms și Xamarin Native


Care sunt diferențele cheie între utilizarea MVVMcross cu Xamarin.Forms și Xamarin Native


Atunci când se compară utilizarea MVVMcross cu Xamarin.Forms și Xamarin Native, apar mai multe diferențe cheie, în principal în ceea ce privește flexibilitatea UI, partajarea codurilor și abordarea de dezvoltare.

Flexibilitatea și controlul UI

- Xamarin.Forms: Acest cadru oferă un strat de UI partajat pe platforme, care simplifică dezvoltarea, permițându -vă să scrieți codul UI o dată și să îl implementați pe mai multe platforme. Cu toate acestea, această UI partajată poate limita personalizarea la funcțiile specifice platformei, necesitând redatori personalizați pentru elemente UI mai avansate [7] [9]. MVVMcross poate fi utilizat cu Xamarin.Forms pentru a gestiona logica și navigația de afaceri, dar UI rămâne standardizat pe platforme [1] [10].

- Nativă Xamarin: Când utilizați Nativul Xamarin cu MVVMcross, aveți un control complet asupra UI pentru fiecare platformă. Acest lucru permite implementările UI specifice platformei, maximizarea aspectului nativ al fiecărei platforme. În timp ce această abordare necesită mai mult efort pentru a dezvolta straturi de UI separate pentru iOS și Android, oferă o mai mare flexibilitate și personalizare [7] [9].

Partajarea și reutilizarea codului

- Xamarin.Forms: Cu Xamarin.Forms, puteți partaja nu numai logica de afaceri (prin MVVMcross), ci și codul UI pe platforme. Acest lucru simplifică dezvoltarea și reduce cantitatea de cod pe care trebuie să o mențineți. Cu toate acestea, UI este limitat la un set comun de elemente care funcționează pe toate platformele [4] [10].

- Nativă Xamarin: Într -o configurație Nativă Xamarin cu MVVMCross, puteți partaja logica de afaceri (ViewModels) pe platforme, dar trebuie să implementați UI separat pentru fiecare platformă. Această abordare permite o mai mare reutilizare a codului în stratul de prezentare și logica UI atunci când utilizați MVVMcross, dar necesită totuși dezvoltare UI specifică platformei [9].

Abordare de dezvoltare

- Xamarin.Forms: Dezvoltarea cu Xamarin.Forms și MVVMcross este adesea preferată de dezvoltatori fără experiență mobilă extinsă, deoarece simplifică dezvoltarea UI multiplă platformă. Cadrul se ocupă de o mare parte din complexitatea de bază, permițând dezvoltatorilor să se concentreze pe logica partajată și UI [4] [10].

-Xamarin Native: Dezvoltarea Xamarinului autohton cu MVVMcross este de obicei favorizată de dezvoltatorii care doresc control cu ​​granulație fină asupra UI și sunt confortabili cu dezvoltarea specifică platformei. Această abordare necesită mai multă expertiză în dezvoltarea nativă iOS și Android, dar oferă o mai mare flexibilitate în proiectarea și implementarea UI [7] [9].

Navigare și legare

- Xamarin.Forms cu MVVMcross: Navigarea în Xamarin.Forms cu MVVMcross este gestionată la nivelul ViewModel, permițând o separare curată a preocupărilor. MVVMCross oferă capacități de legare îmbunătățite, cum ar fi valorile de revenire, deși îi lipsește unele caracteristici precum proprietatea sursă găsită în Xamarin. Forms Bindings [2] [10].

- Nativ Xamarin cu MVVMcross: în proiecte Native Xamarin, MVVMCross gestionează navigarea și împerecherea de vizualizare/vizualizare, permițând o arhitectură consistentă MVVM pe platforme. Această configurație permite dezvoltatorilor să utilizeze modelele de navigație specifice platformei, menținând în același timp un strat de logică de afaceri partajat [3] [9].

În rezumat, în timp ce ambele abordări pot folosi MVVMcross pentru arhitectura MVVM, Xamarin.Forms oferă un strat de UI partajat, cu un control mai mic asupra caracteristicilor UI specifice platformei, în timp ce Nativul Xamarin oferă un control complet asupra personalizării UI, dar necesită mai mult efort de dezvoltare pentru implementări UI separate.

Citări:
[1] https://www.mvvmcross.com/documentation/platform/xamarin.forms/xamarin-FORMS
[2] https://www.xamarinhelp.com/use-xamarin-forms-mvvm-framework/
[3] https://canbilgin.wordpress.com/tag/mvvmcross/
[4] https://www.mvvmcross.com/documentation/getting-started/getting-started
[5] https://www.reddit.com/r/androiddev/comments/6cseds/what_are_the_disadvantages_of_xamarin_for_android/
[6] https://canbilgin.wordpress.com/2017/03/26/xamarin-forms-application-with-mvmcross/
[7] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross
[8] https://mentormate.com/blog/6-reasons-mvvmcross-speeds-xamarin-development-personalizes-ux/
[9] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[10] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx