workflow-swift icon indicating copy to clipboard operation
workflow-swift copied to clipboard

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

Results 58 workflow-swift issues
Sort by recently updated
recently updated
newest added

Introducing `HooksWorkflow`, this allows Workflows to use stateful data without using the Workflow's `State`. Similar to React's [hooks](https://reactjs.org/docs/hooks-intro.html). To use a stateful property: ```swift let (color, colorUpdater) = HookWorkflow(defaultValue: ColorState.red)...

Kotlin has [LifecycleWorker](https://github.com/square/workflow-kotlin/blob/main/workflow-core/src/main/java/com/squareup/workflow1/LifecycleWorker.kt) that makes it easy to perform side-effects when the worker is started or stopped. At the moment, this is essentially equivalent to doing the following in Swift:...

enhancement

If multiple events are sent to sink in-between render updates, Workflow crashes with: ```EventPipe can only be enabled from the `pending` state```

bug

Explores introducing APIs to make State mutations easier. ## Proposal 1: Introduce: ```swift extension AnyWorkflow { public func applyOutputToState(in context: RenderContext, stateMutation: @escaping ((inout Parent.State, Output) -> Void)) -> AnyWorkflow...

As mentioned in the [PR](https://github.com/square/workflow/pull/1104) for adding PR template, a linter needs to be added to CI for Swift since Kotlin already has one.

Master / Detail is not great terminology.

This PR introduces a wrapper screen that transitions its content when the underlying VC type changes; which was lost as a "standard" thing when we removed `DescribedViewController` usage from our...

## Checklist - [ ] Unit Tests - [ ] UI Tests - [ ] Snapshot Tests (iOS only) - [ ] I have made corresponding changes to the documentation

Building on @square-tomb's work in #260, this PR prototypes the Perception approach more fully. This PR uses a fork of CocoaPods to pull in the SPM dependencies. Run `bundle install`...