Description
MvRx (pronounced mavericks) is the Android framework from Airbnb that we use for nearly all product development at Airbnb. MvRx provides a framework that makes Android screens, from the simplest to the most complex, easier to write than before. However, it is built on top of existing components such as Fragments and architecture components so it doesn't constrain you and is easy to incrementally adopt.
MvRx alternatives and similar packages
Based on the "App" category.
Alternatively, view MvRx alternatives based on common mentions on social networks and blogs.
-
InstaMaterial
Implementation of Instagram with Material Design (originally based on Emmanuel Pacamalan's concept) -
Twidere-Android
Twidere is a powerful twitter client for Android 1.6+ 1 , which gives you a full Holo experience and nearly full Twitter's feature. -
Foodium 🍲
🍲Foodium is a sample food blog Android application 📱 built to demonstrate the use of Modern Android development tools - (Kotlin, Coroutines, Flow, Dagger 2/Hilt, Architecture Components, MVVM, Room, Retrofit, Moshi, Material Components). -
jianshi
A Full-Stack mobile app, including Android & Server, Simple-Poem 简诗. You can write poem in graceful & traditional Chinese style. -
Leisure
Leisure is an Android App containing Zhihu Daily,Guokr Scientific,XinhuaNet News and Douban Books -
WaniKani-for-Android
DISCONTINUED. An Android client application for the awesome kanji learning website wanikani.com -
LeeCo
LeeCo is an awesome app for (including unlock) problems, solutions, discuss(from leetcode) and comments. -
FoldingNavigationDrawer-Android
This is a sample project present how to use Folding-Android to add Folding Efect to Navigation Drawer. -
GradientDrawableTuner
🕹️ See how the properties of Android's "shape" affect the Drawable's appearance, intuitively. -
MaterialDesignColorPalette
This is a dev tool to visualize the colours of Material design defined on -
freegemas-gdx
Freegemas libGDX is an Android and Java desktop port of Freegemas, which in turn is an open source version of the well known Bejeweled. -
vanilla
Vanilla Music Player for Android (abandoned). Visit https://github.com/vanilla-music/vanilla for an actively developed fork -
PopularMovies
:movie_camera: Movie discovery app showcasing Android best practices with Google's recommended architecture: MVVM + Repository + Offline support + Android Architecture Components + Paging library & Retrofit2. -
Android-Jigsaw-Puzzle
Android app that allows you to draw anything and turn it into a jigsaw puzzle.
InfluxDB - Purpose built for real-time analytics at any scale.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of MvRx or a related project?
README
Mavericks (formerly MvRx): Android on Autopilot
For full documentation, check out our docs site.
Mavericks is the Android framework from Airbnb that we use for nearly all product development at Airbnb.
When we began creating Mavericks, our goal was not to create yet another architecture pattern for Airbnb, it was to make building products easier, faster, and more fun. All of our decisions have built on that. We believe that for Mavericks to be successful, it must be effective for building everything from the simplest of screens to the most complex in our app.
This is what it looks like:
data class HelloWorldState(val title: String = "Hello World") : MavericksState
/**
* Refer to the wiki for how to set up your base ViewModel.
*/
class HelloWorldViewModel(initialState: HelloWorldState) : MavericksViewModel<HelloWorldState>(initialState) {
fun getMoreExcited() = setState { copy(title = "$title!") }
}
class HelloWorldFragment : Fragment(R.layout.hello_world_fragment), MavericksView {
private val viewModel: HelloWorldViewModel by fragmentViewModel()
override fun invalidate() = withState(viewModel) { state ->
// Update your views with the latest state here.
// This will get called any time your state changes and the viewLifecycleOwner is STARTED.
}
}
Installation
Gradle is the only supported build configuration, so just add the dependency to your project build.gradle
file:
dependencies {
implementation 'com.airbnb.android:mavericks:x.y.z'
}
The latest version of mavericks is
For full documentation, check out the docs site
Legacy documentation for MvRx 1.x can still be found in the wiki