spotify/mobius

Name: mobius

Owner: Spotify

Description: A functional reactive framework for managing state evolution and side-effects.

Created: 2018-01-19 14:07:51.0

Updated: 2018-05-24 09:58:01.0

Pushed: 2018-05-11 06:47:56.0

Homepage:

Size: 284

Language: Java

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Maven Central Build Status Code Coverage License Join the chat at https://gitter.im/spotify/mobius

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 latest not found):

ementation 'com.spotify.mobius:mobius-core:LATEST_RELEASE'
Implementation 'com.spotify.mobius:mobius-test:LATEST_RELEASE'

ementation 'com.spotify.mobius:mobius-rx:LATEST_RELEASE'       // only for RxJava 1 support
ementation 'com.spotify.mobius:mobius-rx2:LATEST_RELEASE'      // only for RxJava 2 support
ementation 'com.spotify.mobius:mobius-android:LATEST_RELEASE'  // only for Android support
ementation 'com.spotify.mobius:mobius-extras:LATEST_RELEASE'   // utilities for common patterns
Building
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

adlew format
Code of Conduct

This project adheres to the Open Code of Conduct. By participating, you are expected to honor this code.


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.