Awesome
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
- Wondering why to use Workflow? See "Why Workflow"
- There is a Glossary of Terms
- We have a User Guide describing core concepts.
- For Kotlin (and Android), there is a codelab style tutorial in the repo.
- For Swift (and iOS), there is also a Getting Started tutorial in the repo.
- There are also a number of Kotlin samples and Swift samples.
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.