What is wrong with MVVM?

This page summarizes the projects mentioned and recommended in the original post on /r/androiddev

Our great sponsors
  • Appwrite - The open-source backend cloud platform
  • InfluxDB - Collect and Analyze Billions of Data Points in Real Time
  • SonarQube - Static code analysis for 29 languages.
  • Mergify - Tired of breaking your main and manually rebasing outdated pull requests?
  • livedata-combineutil-java

    [ACTIVE] Helper function to combine LiveDatas.

    people exposing 11 public LiveData fields for 11 private MutableLiveData fields instead of using MediatorLiveData as combiners to reduce the number of exposed LiveData fields

  • sunflower

    A gardening app illustrating Android development best practices with migrating a View-based app to Jetpack Compose.

    Google samples pretending that the right way to observe 11 LiveDatas that weren't even a minimal state representation required Databinding, and most people don't like Databinding due to its intrusive nature (which is a byproduct of kapt running for layout modifications + people completely misusing @BindingAdapters as if they were "XML extension functions" or something rather than use them for what they actually were for)

  • Appwrite

    Appwrite - The open-source backend cloud platform. The open-source backend cloud platform for developing Web, Mobile, and Flutter applications. You can set up your backend faster with real-time APIs for authentication, databases, file storage, cloud functions, and much more!

  • orbit-mvi

    A simple MVI framework for Kotlin Multiplatform and Android

    Everything in MVI is just more code that does nothing (see how most MVI frameworks are basically just a wrapper over state.value = state.copy() like in Orbit or MvRx which you wouldn't even need if you used combiners) and instead adds unnecessary constraints over MVVM that don't help you at all. The "sealed class inputs" are basically a reinvention of calling interface functions except you create classes for it, despite there being no asynchronicity when you have a View -> ViewModel communication.

  • MvRx

    Mavericks: Android on Autopilot

    Everything in MVI is just more code that does nothing (see how most MVI frameworks are basically just a wrapper over state.value = state.copy() like in Orbit or MvRx which you wouldn't even need if you used combiners) and instead adds unnecessary constraints over MVVM that don't help you at all. The "sealed class inputs" are basically a reinvention of calling interface functions except you create classes for it, despite there being no asynchronicity when you have a View -> ViewModel communication.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts