Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jakie są główne wady korzystania z MVVMCross do aplikacji na Androida i iOS


Jakie są główne wady korzystania z MVVMCross do aplikacji na Androida i iOS


MVVMCROSS to popularna ramy dla rozwoju mobilnego międzyplatformowego przy użyciu xamaryny, umożliwiając programistom wykorzystanie wzoru MVVM na Androida, iOS i innych platformach. Jednak pomimo jego korzyści należy wziąć pod uwagę kilka wad przy użyciu MVVMCross do aplikacji na Androida i iOS:

1. Krzywa złożoności i uczenia się: MVVMCROSS to duże ramy, które wymagają czasu na pełne zrozumienie. Nowi programiści mogą mieć trudności z zrozumieniem jego podstaw, takich jak sposób przesyłania kontekstu danych między komponentami [1]. Ta złożoność może prowadzić do bardziej stroma krzywa uczenia się w porównaniu do prostszych ram.

2. Problemy z wydajnością: Niektórzy użytkownicy zgłosili problemy z wydajnością, takie jak powolny czas uruchamiania i opóźnienia w powiązaniach ListView. Kwestie te można przypisać MVVMCROSS, Xamarinowi lub samej platformie Androida, co utrudnia wskazanie dokładnej przyczyny bez profilera wydajności [1].

3. Komunikaty o błędach i debugowanie: komunikaty o błędach frameworka mogą być bardziej pouczające. Zamiast zgłaszać błędy, mogą sugerować potencjalne rozwiązania, które pomogłyby w szybszym debugowaniu i rozwoju [1].

4. Ponowne użycie i testowalność: podczas gdy MVVMCROSS ma na celu poprawę testowania poprzez oddzielenie logiki biznesowej od widoku, w praktyce modele widoku mogą stać się rozdęte i trudne do przetestowania. Jest to szczególnie prawdziwe, jeśli poradzą sobie z wieloma obowiązkami i utrzymują stan wewnętrzny, co utrudnia niezależnie metody [2]. Ponadto modele widoku często stają się nie do użytku w różnych kontrolerach widoku ze względu na ich konkretne implementacje [2].

5. Wyzwania specyficzne dla platformy: na Androidzie, fragmentacji i stosie Java mogą stanowić dodatkowe wyzwania. Na przykład użycie obrazów Intel Android X86 w emulatorach może prowadzić do dziwactw, takich jak nadmierne logowanie lub problemy z siecią [1]. Na iOS brak wbudowanych powiązań może komplikować implementację MVVM, co prowadzi do nadmiernego polegania na kontrolerach widoku lub modeli widoku dla zadań, które nie powinny obsługiwać [2].

6. Przestarzałe dokumentacje i samouczki: pojawiły się obawy dotyczące przestarzałych samouczków i dokumentacji dla MVVMCROSS. Może to utrudnić nowym programistom rozpoczęcie pracy lub nadążanie za zmianami w ramach [5].

7. Długowieczność i wsparcie: Pytania dotyczące dojrzałości i długowieczności ramy zostały podniesione, szczególnie w kontekście szybko rozwijających się technologii mobilnych. Może to wpłynąć na decyzje dotyczące tego, czy użyć MVVMCross do projektów komercyjnych [5].

Ogólnie rzecz biorąc, podczas gdy MVVMCross oferuje znaczące zalety w rozwoju międzyplatformowym, jego złożoność, problemy z wydajnością i wyzwania specyficzne dla platformy wymagają starannego rozważenia przy podejmowaniu decyzji, czy użyć go do aplikacji na Androida i iOS.

Cytaty:
[1] https://blog.rthand.com/a-week-of-impressions-of-developing-for-android-using-xamarin-mvvmcross/
[2] https://www.danielhall.io/the-problems-with-mvm-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-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[5] https://xamarin21.rssing.com/chan-23562832/article1771.html
[6] https://stackoverflow.com/questions/16301045/mvvmcross-v3-is-that-wrong-to-tri-to-use-behaviours-and-storyboards-in-a-mu
[7] https://www.reddit.com/r/dotnet/comments/1cqqika/worth_converting_net_androidios_to_maui/
[8] https://mentormate.com/blog/6-Rasoning-mvvmcross-speeds-xamarin-development-tersonalizes-ux/
[9] https://stackoverflow.com/questions/26108486/should-ius-us-mvvmcross-for-xamarin-porms-and-Windows-store-app