MVVMCross is een krachtig platformonafhankelijke MVVM-framework dat de inheemse projecten van Xamarin verbetert door het delen van presentatielagen en UI-logica op verschillende platforms mogelijk te maken. Hier zijn enkele veel voorkomende gebruiksscenario's voor MVVMCross in Native Projects van Xamarin:
1. Cross-platform code hergebruik **
Met MVVMCross kunnen ontwikkelaars het hergebruik van code maximaliseren door ViewModels en Business Logic in een Portable Class Library (PCL) te plaatsen. Deze PCL kan worden verwezen over meerdere platformspecifieke projecten, zoals xamarin.android en xamarin.ios, zodat de kernlogica consistent blijft terwijl de gebruikersinterface voor elk platform kan worden aangepast [1] [2].2. MVVM -patroonimplementatie **
MVVMCROSS vergemakkelijkt de implementatie van het Model-View-ViewModel (MVVM) -patroon, dat gunstig is voor het handhaven van een duidelijke scheiding van zorgen tussen de gebruikersinterface en bedrijfslogica. Dit patroon helpt bij het maken van losjes gekoppelde toepassingen, waardoor ze gemakkelijker te testen en te onderhouden [3] [5].3. Gegevensbinding en navigatie **
MVVMCross biedt robuuste gegevensbindende mogelijkheden, waardoor weergaven naadloos aan ViewModels kunnen binden. Deze functie ondersteunt verschillende bindende modi en converters, waardoor de flexibiliteit van de gebruikersinterface van de applicatie wordt verbeterd. Bovendien bevat MVVMCross een navigatiesysteem dat het verplaatsen tussen verschillende weergaven in de app [2] [5] vereenvoudigt.4. Afhankelijkheidsinjectie en plug -ins **
MVVMCross biedt een afhankelijkheidsinjectie (DI) container waarmee ontwikkelaars platformspecifieke services van de PCL kunnen registreren en oplossen. Deze functie is cruciaal voor het integreren van platformspecifieke functionaliteiten zonder code te dupliceren. Bovendien ondersteunt MVVMCross een breed scala aan plug -ins voor gemeenschappelijke functionaliteiten zoals database -bewerkingen, netwerkconnectiviteit en meer, die gemakkelijk kunnen worden geïntegreerd in projecten via NuGet -pakketten [1] [3].5. Platformspecifieke UI-aanpassing **
Terwijl Xamarin.Forms de aanpassing van de UI-aanpassingen op platforms beperkt, stelt MVVMCross met Xamarin-native ontwikkelaars in staat om platformspecifieke UI's te maken. Dit is met name handig wanneer een applicatie een native look en feel op elk platform vereist. MVVMCross zorgt ervoor dat ondanks verschillende UI -implementaties de onderliggende bedrijfslogica gedeeld en consistent blijft [1] [4].6. Test- en ontwikkelingsefficiëntie -eenheid **
Door de bedrijfslogica in een PCL te scheiden, maakt MVVMCross het gemakkelijker om eenheidstests te schrijven voor de kernlogica van de applicatie. Deze scheiding versnelt ook de ontwikkeling, omdat wijzigingen in de bedrijfslogica geen wijzigingen vereisen in de platformspecifieke UI-code [5].Samenvattend is MVVMCross een veelzijdig hulpmiddel voor de inheemse projecten van Xamarin, die een gestructureerde aanpak biedt voor de ontwikkeling van cross-platform met behoud van de flexibiliteit om UIS voor elk platform aan te passen. De functies zoals MVVM-patroonondersteuning, gegevensbinding, afhankelijkheidsinjectie en uitgebreid plug-in-ecosysteem maken het een ideale keuze voor complexe, platformonafhankelijke toepassingen.
Citaten:[1] https://www.suneco.nl/blogs/boost-your-xamarin-native-projects-with-mvvmcross/
[2] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/window-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[3] https://dev.to/christian1006/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework-2920
[4] https://canbilgin.wordpress.com/tag/mvvmcross/
[5] https://www.mvvmcross.com/documentation/getting-started/getting-started
[6] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-xamarin-forms-version
[7] https://stackoverflow.com/questions/32220007/what-does-mvvmcross-do- that-xamarin-doesnt-already
[8] https://stackoverflow.com/questions/38450264/xamarin-forms-vs-xamarin-mvvmcross