Mobius
Mobius is a functional reactive framework for managing state evolution and side-effects, with add-ons for connecting to Android UIs and RxJava Observables. It emphasizes separation of concerns, testability, and isolating stateful parts of the code.
To learn more, see the wiki for a user guide. You can also watch a talk from Android @Scale introducing Mobius.
Status
Mobius is in Beta status, meaning it is used in production in Spotify Android applications, but we may keep making changes relatively quickly.
Mobius is currently built for Java 7 (because Java 8 is not fully supported on all versions of Android), hence the duplication of some concepts defined in java.util.function (see com.spotify.mobius.functions).
When using Mobius, we do however recommend using Java 8 or later, primarily because of the improved type inference and because using lambdas greatly improves readability and conciseness of code.
Using it in your project
The latest version of Mobius is available through Maven Central (LATEST_RELEASE below is ):
implementation 'com.spotify.mobius:mobius-core:LATEST_RELEASE'
testImplementation 'com.spotify.mobius:mobius-test:LATEST_RELEASE'
implementation 'com.spotify.mobius:mobius-rx:LATEST_RELEASE' // only for RxJava 1 support
implementation 'com.spotify.mobius:mobius-rx2:LATEST_RELEASE' // only for RxJava 2 support
implementation 'com.spotify.mobius:mobius-android:LATEST_RELEASE' // only for Android support
implementation 'com.spotify.mobius:mobius-extras:LATEST_RELEASE' // utilities for common patternsBuilding
Formatting
We're using Google's auto-formatter to format the code. The build pipeline is set up to fail builds that aren't correctly formatted. To ensure correct formatting, run
./gradlew formatCode of Conduct
This project adheres to the Open Code of Conduct. By participating, you are expected to honor this code.

Formed in 2009, the Archive Team (not to be confused with the archive.org Archive-It Team) is a rogue archivist collective dedicated to saving copies of rapidly dying or deleted websites for the sake of history and digital heritage. The group is 100% composed of volunteers and interested parties, and has expanded into a large amount of related projects for saving online and digital history.
