/Mobius.swift

A functional reactive framework for managing state evolution and side-effects [Swift implementation]

Primary LanguageSwiftApache License 2.0Apache-2.0

Mobius.swift

Mobius is a functional reactive framework for managing state evolution and side-effects. It emphasizes separation of concerns, testability, and isolating stateful parts of the code.

Mobius.swift is the Swift and Apple ecosystem focused implementation of the original Mobius Java framework. To learn more, see the wiki for a user guide. You can also watch a talk from an Android @Scale introducing Mobius.

This repository contains the core Mobius framework and add-ons for common development scenarios and testing.

Compatibility

Environment details
📱 iOS 10.0+
🛠 Xcode 10.1+
🐦 Language Swift 4.2

Usage

Pull in Mobius.swift as a dependency. Either as a submodule or using Carthage.

Build the project and link with the frameworks.

Status

Mobius.swift is in alpha status. We are beginning to use the framework internally and may still make breaking API changes. The abstractions for threading are the main thing we want to revisit before we feel confident in a 1.0 release. The core concepts of an update function with Models, Events, and Effects are not going to change. Please note that this project may be combined with the Mobius Java repository in the near future.

Development

  1. Clone
  2. Bootstrap the project
    ./Tools/bootstrap.sh
  3. Open Mobius.xcodeproj using Xcode.
  4. ????
  5. Create a PR

Code of Conduct

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