workflow

A Swift and Kotlin library for making composable state machines, and UIs driven by those state machines.

APACHE-2.0 License

Stars
1.1K

Overview

Workflow is an application framework that provides architectural primitives.

Workflow is:

  • Written in and used for Kotlin and Swift
  • A unidirectional data flow library that uses immutable data within each Workflow.
    Data flows in a single direction from source to UI, and events in a single direction
    from the UI to the business logic.
  • A library that supports writing business logic and complex UI navigation logic as
    state machines, thereby enabling confident reasoning about state and validation of
    correctness.
  • Optimized for composability and scalability of features and screens.
  • Corresponding UI frameworks that bind Rendering data classes for views
    (including event callbacks) to Mobile UI frameworks for Android and iOS.
  • A corresponding testing framework that facilitates simple-to-write unit
    tests for all application business logic and helps ensure correctness.

Using Workflows in your project

Swift

See the square/workflow-swift repository.

Kotlin

See the square/workflow-kotlin repository.

Resources

Support & Contact

Workflow discussion happens in the Workflow Community slack. Use this open invitation.

Workflow maintainers also hang out in the #squarelibraries channel on the Kotlin Slack.

Releasing and Deploying

See RELEASING.md.

License

Package Rankings
Top 12.84% on Repo1.maven.org
Badges
Extracted from project README's
GitHub license
Related Projects