What is wrong with MVVM?

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

Our great sponsors
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • talent.io - Download talent.io’s Tech Salary Report
  • SonarQube - Static code analysis for 29 languages.
  • Scout APM - Truly a developer’s best friend
  • 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 Android Jetpack.

    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 Firebase alternative introduces iOS support. Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files 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