Skip to content
A library for making composable state machines, and UIs driven by those state machines.
Kotlin Swift Other
Branch: master
Clone or download
zach-klippenstein Merge pull request #561 from square/zachklipp/bump-coroutines
Upgrade coroutines to latest version (1.3.0 stable).
Latest commit 40bbb70 Aug 23, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.buildscript Embed the Swift API docs in the regular site. Jul 30, 2019
docs Updated documentation structure, but no new content yet. Jul 31, 2019
kotlin Upgrade coroutines to latest version (1.3.0 stable). Aug 23, 2019
swift Adds Kotlin Sink, makeActionSink, makeEventSink. Aug 21, 2019
.gitignore Embed the Swift API docs in the regular site. Jul 30, 2019
.markdownlint.rb Add linting for our documentation and fix existing errors. Jul 24, 2019
.travis.yml Embed the Swift API docs in the regular site. Jul 30, 2019
CHANGELOG.md Releasing v0.20.0. Aug 22, 2019
CODE_OF_CONDUCT.md Add linting for our documentation and fix existing errors. Jul 24, 2019
CONTRIBUTING.md Add linting for our documentation and fix existing errors. Jul 24, 2019
Gemfile Add cocoapods-generate to Gemfile Mar 14, 2019
Gemfile.lock Add cocoapods-generate to Gemfile Mar 14, 2019
LICENSE Initial commit Nov 16, 2018
Package.swift Update Workflow to Swift 5 Jul 29, 2019
README.md Add link to template repo to README. Aug 23, 2019
RELEASING.md Embed the Swift API docs in the regular site. Jul 30, 2019
Workflow.podspec Bump version number to 0.21.0. Aug 22, 2019
WorkflowTesting.podspec Bump version number to 0.21.0. Aug 22, 2019
WorkflowUI.podspec Bump version number to 0.21.0. Aug 22, 2019
deploy_website.sh Embed the Swift API docs in the regular site. Jul 30, 2019
lint_docs.sh Embed the Swift API docs in the regular site. Jul 30, 2019
mkdocs.yml Updated documentation structure, but no new content yet. Jul 31, 2019

README.md

workflow

GitHub license CocoaPods compatible Maven Central

An architecture that allows composable state machines to drive UI navigation and content, where the state machines are cleanly separated from UI code.

This project is currently experimental and the API subject to breaking changes without notice. Follow Square's engineering blog, The Corner, to see when this project becomes stable.

Workflow is a library for making composable state machines, and UIs driven by those state machines.

This project is under active development. The workflow code is being piloted in production apps. The view code is not (yet).

More documentation and samples will be coming soon!

Using Workflows in your project

Swift

CocoaPods compatible

If you use CocoaPods to manage your dependencies, simply add Workflow and WorkflowUI to your Podfile:

pod 'Workflow'
pod 'WorkflowUI'

Kotlin

Maven Central

Quick Start

To get started with a fresh, barebones, Workflow-based Android app, we've created a template repository – just click "Use this template" to create a new repository with a simple but runnable app: github.com/square/workflow-android-template

Maven Artifacts

Artifacts are hosted on Maven Central. If you're using Gradle, ensure mavenCentral() appears in your repositories block, and then add dependencies on the following artifacts:

Maven Coordinates Depend on this if…
com.squareup.workflow:workflow-core-jvm:x.y.z You are writing a library module/project that uses Workflows, but you don't need to interact with the runtime from the outside.
com.squareup.workflow:workflow-rx2:x.y.z You need to interact with RxJava2 from your Workflows.
com.squareup.workflow:workflow-testing-jvm:x.y.z You are writing tests. This should only be included as a test dependency.
com.squareup.workflow:workflow-ui-android:x.y.z You're writing an Android app that uses Workflows.

Lower-level Artifacts

Most code shouldn't need to depend on these directly. They should generally only be used to build higher-level integrations with UI frameworks.

Maven Coordinates Depend on this if…
com.squareup.workflow:workflow-runtime-jvm:x.y.z You need to interact directly with the runtime, i.e. streams of renderings and outputs.
com.squareup.workflow:workflow-ui-core-jvm:x.y.z You are writing workflow-ui-android for another UI framework. Defines the core types used by that artifact.

Resources

Releasing and Deploying

See RELEASING.md.

License

Copyright 2019 Square Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
You can’t perform that action at this time.