Build Android app screens with automatic redraws whenever the underlying data changes, without writing manual update logic
Separate your screen's data from its display code using a ViewModel and a plain state data class
Migrate an existing Android project to a predictable state-driven architecture by adding a single Gradle dependency
Build features the way Airbnb's mobile team does internally, using a battle-tested pattern from production use
| airbnb/mavericks | z-huang/innertune | kotlin/kotlinx.serialization | |
|---|---|---|---|
| Stars | 5,933 | 5,936 | 5,912 |
| Language | Kotlin | Kotlin | Kotlin |
| Setup difficulty | easy | easy | moderate |
| Complexity | 3/5 | 2/5 | 2/5 |
| Audience | developer | general | developer |
Figures from each repo's GitHub metadata at analysis time.
Mavericks is an Android app framework built by Airbnb and used internally for nearly all product development across their mobile app. It was previously called MvRx. The goal stated in the README was not to introduce another architecture pattern for its own sake, but to make building Android screens faster and less tedious. The framework centers on a pattern where each screen has a state object, which is a plain data class holding everything the screen needs to display. A ViewModel holds that state and exposes functions that can update it. A Fragment or other view layer listens for state changes and redraws itself whenever the state changes. This keeps the data and the display logic clearly separated. The code example in the README shows the pattern in a few lines: a data class called HelloWorldState with a title field, a ViewModel with a function that appends an exclamation mark to the title, and a Fragment that calls invalidate whenever the state changes and reads the latest state to update its views. Installation is done by adding a single line to your Android project's Gradle build file. The README is brief and points to a separate documentation site for full details, guides, and advanced usage. Legacy documentation for version 1.x remains in the GitHub wiki for teams that have not yet migrated to the current version. Mavericks is written in Kotlin and published to Maven Central under the package name com.airbnb.android:mavericks.
Airbnb's Android framework for building app screens faster, each screen holds its data in a state object, a ViewModel updates it, and the view redraws automatically whenever something changes.
Mainly Kotlin. The stack also includes Kotlin, Android, Gradle.
License information was not provided in the explanation.
Setup difficulty is rated easy, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.