Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon What are the main drawbacks of using MvvmCross for Android and iOS applications


What are the main drawbacks of using MvvmCross for Android and iOS applications


MvvmCross is a popular framework for cross-platform mobile development using Xamarin, allowing developers to leverage the MVVM pattern across Android, iOS, and other platforms. However, despite its benefits, there are several drawbacks to consider when using MvvmCross for Android and iOS applications:

1. Complexity and Learning Curve: MvvmCross is a large framework that requires time to grasp fully. New developers may find it challenging to understand its fundamentals, such as how data context is transferred between components[1]. This complexity can lead to a steeper learning curve compared to simpler frameworks.

2. Performance Issues: Some users have reported performance issues, such as slow startup times and delays in ListView bindings. These issues can be attributed to MvvmCross, Xamarin, or the Android platform itself, making it difficult to pinpoint the exact cause without a performance profiler[1].

3. Error Messages and Debugging: The framework's error messages could be more informative. Instead of just reporting errors, they could suggest potential solutions, which would aid in quicker debugging and development[1].

4. Reusability and Testability: While MvvmCross aims to improve testability by separating business logic from the view, in practice, view models can become bloated and difficult to test. This is particularly true if they handle multiple responsibilities and maintain internal state, making it hard to test methods independently[2]. Additionally, view models often become non-reusable across different view controllers due to their specific implementations[2].

5. Platform-Specific Challenges: On Android, fragmentation and the Java stack can pose additional challenges. For example, using Intel Android x86 images in emulators can lead to quirks like excessive logging or network issues[1]. On iOS, the lack of built-in bindings can complicate the MVVM implementation, leading to over-reliance on view controllers or view models for tasks they shouldn't handle[2].

6. Outdated Documentation and Tutorials: There have been concerns about outdated tutorials and documentation for MvvmCross. This can make it difficult for new developers to get started or keep up with changes in the framework[5].

7. Longevity and Support: Questions about the framework's maturity and longevity have been raised, particularly in the context of rapidly evolving mobile technologies. This can impact decisions on whether to use MvvmCross for commercial projects[5].

Overall, while MvvmCross offers significant advantages in cross-platform development, its complexity, performance issues, and platform-specific challenges need careful consideration when deciding whether to use it for Android and iOS applications.

Citations:
[1] https://blog.rthand.com/a-week-of-impressions-of-developing-for-android-using-xamarin-mvvmcross/
[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-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-try-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-reasons-mvvmcross-speeds-xamarin-development-personalizes-ux/
[9] https://stackoverflow.com/questions/26108486/should-i-use-mvvmcross-for-xamarin-forms-and-windows-store-app