MVVMCROSS er en populær ramme for mobiludvikling på tværs af platform ved hjælp af Xamarin, hvilket giver udviklere mulighed for at udnytte MVVM-mønsteret på tværs af Android, iOS og andre platforme. På trods af dens fordele er der imidlertid flere ulemper at overveje, når man bruger MVVMCross til Android- og iOS -applikationer:
1. Kompleksitet og læringskurve: MVVMCROSS er en stor ramme, der kræver tid til at forstå fuldt ud. Nye udviklere kan synes det er udfordrende at forstå dets grundlæggende elementer, såsom hvordan datakontekst overføres mellem komponenter [1]. Denne kompleksitet kan føre til en stejlere læringskurve sammenlignet med enklere rammer.
2. Performance -problemer: Nogle brugere har rapporteret om ydelsesproblemer, såsom langsomme starttider og forsinkelser i ListView -bindinger. Disse problemer kan tilskrives MVVMCross, Xamarin eller selve Android -platformen, hvilket gør det vanskeligt at finde den nøjagtige årsag uden en præstationsprofil [1].
3. Fejlmeddelelser og fejlsøgning: Rammerens fejlmeddelelser kunne være mere informative. I stedet for bare at rapportere fejl, kunne de foreslå potentielle løsninger, som ville hjælpe med hurtigere fejlfinding og udvikling [1].
4. Genanvendelighed og testbarhed: Mens MVVMCROSS sigter mod at forbedre testbarheden ved at adskille forretningslogik fra visningen, i praksis, kan udsigtsmodeller blive oppustet og vanskelig at teste. Dette gælder især, hvis de håndterer flere ansvarsområder og opretholder intern tilstand, hvilket gør det svært at teste metoder uafhængigt [2]. Derudover bliver udsigtsmodeller ofte ikke-genanvendelige på tværs af forskellige visningscontrollere på grund af deres specifikke implementeringer [2].
5. Platformspecifikke udfordringer: På Android kan fragmentering og Java-stakken udgøre yderligere udfordringer. For eksempel kan brug af Intel Android X86 -billeder i emulatorer føre til quirks som overdreven logning eller netværksproblemer [1]. På iOS kan manglen på indbyggede bindinger komplicere MVVM-implementeringen, hvilket fører til over-afhængighed af visningskontrollere eller visningsmodeller for opgaver, de ikke bør håndtere [2].
6. Forældede dokumentation og tutorials: Der har været bekymring for forældede tutorials og dokumentation for MVVMCross. Dette kan gøre det vanskeligt for nye udviklere at komme i gang eller holde trit med ændringer i rammen [5].
7. Longevity and Support: Spørgsmål om rammens modenhed og levetid er blevet rejst, især i forbindelse med hurtigt udviklende mobile teknologier. Dette kan påvirke beslutninger om, hvorvidt man skal bruge MVVMCROSS til kommercielle projekter [5].
Samlet set, mens MVVMCROSS tilbyder betydelige fordele ved udvikling af tværplatform, har dens kompleksitet, præstationsproblemer og platformspecifikke udfordringer nøje hensyn til, når man beslutter, om de skal bruge den til Android- og iOS-applikationer.
Citater:[Jeg
[2] https://www.danielhall.io/the-problems-with-mvvm-on-ios
[3] https://www.mvvmcross.com/documentation/upgrading/upgrade-to-mvvmcross-60
[4] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-thone-build-mvvm-apps-with-xamarin-and-mvvmcross
[5] https://xamarin21.rssing.com/chan-23562832/article1771.html
)
[7] https://www.reddit.com/r/dotnet/comments/1cqqika/worth_converting_net_androidios_to_maui/
)
)