Skip to content

Releases: ReactiveCocoa/reactiveswift-composable-architecture

0.18.1

27 Apr 09:43
Compare
Choose a tag to compare

Fixed: Added back @discardableResult to Store.ifLet which was removed by mistake during conflict resolution for 0.18.0 🙈

0.18.0

27 Apr 08:27
Compare
Choose a tag to compare
  • Updated: Disposables in Store and ViewStore are now managed explicitly (thanks @maximkrouk).
  • Improved: ViewStore.produced now allows chaining of key paths instead of only supporting a single level (thanks @maximkrouk).

From the upstream 0.18.0 release:

  • Updated: IfLetStore and ForEachStore closures are now view builders.
  • Changed: IfLetStore's optional else branch now takes a view builder closure. The overload that takes an else view directly has been deprecated.
  • Fixed: A crash related to behavior in SwiftUI's ForEach has been fixed, where the IdentifiedArray version of ForEachStore would unsafely unwrap elements after removal.
  • Improved: documentation for Store.ifLet.
  • Infrastructure: improve UIKit demo support of dark mode (thanks @hungtruong).

0.17.0

28 Mar 14:03
Compare
Choose a tag to compare

From the upstream 0.17.0 release:

  • Added: Effect.failing, an effect that will cause an XCTest assertion failure if it is subscribed to.
  • Added: A new ViewStore convenience initializer for Void state (thanks @siejkowski).
  • Changed: Updated TestStore to support an imperative DSL.
  • Changed: The fireAndForget() method is now more permissive. It will now ignore all output and failure for you before upcasting the output and failure types to any type.
  • Changed: TextState now has a custom debug output format for easier debugging.
  • Infrastructure: various documentation improvements and fixes for TicTacToe.

In addition:

  • Added: DateScheduler conformance for ImmediateScheduler to allow it to be used in tests where a DateScheduler is expected.

0.16.0

16 Mar 17:13
Compare
Choose a tag to compare
  • Added: extensions to the ReactiveSwift Scheduler and DateScheduler protocols to support the .animation() and .transaction() APIs that were added in CombineSchedulers, in order to have the same SwiftUI animation support with ReactiveSwift schedulers.

From the upstream 0.16.0 release:

  • Changed: Reducer.optional reducers no longer trigger assertionFailures. Instead, by default they set a breakpoint that can be resumed in DEBUG mode. This breakpoint can be disabled with an argument. RELEASE builds remain unaffected. (#296)
  • Changed: Test Stores now collocate unfinished effect failures with the originating action that kicked each effect off. These failures were previously aggregated to the unrelated line in which store.assert was called. (#413)
  • Infrastructure: Improved documentation (thanks @Steven0351).

From the upstream 0.15.0 release:

  • Added: A new ViewStore.send(_:animation:) helper for SwiftUI, which wraps an action in a withAnimation block.

0.14.0

20 Feb 15:21
Compare
Choose a tag to compare

Releases 0.12.0 and 0.13.0 were skipped to stay in sync with the main TCA repo.

  • Added: First-class forms support via BindingAction and Reducer.binding.
  • Added: .sequence(Step) to StepType for more composable testing (thanks @heyltsjay)
  • Changed: replacing an identified array's element with one that has a mismatched id will now fatal error in debug builds.
  • Changed: Improved performance of ForEachStore.
  • Fixed: worked around a Xcode 12.5 beta compilation error.
  • Infrastructure: fleshed out Store.scope documentation.

Contributions are by @mbrandonw or @stephencelis unless mentioned otherwise.

0.11.0

03 Feb 12:48
Compare
Choose a tag to compare

In order for the releases to stay in sync with TCA we skipped 0.10.0. This release includes the changes from 0.10.0 from TCA.

  • Added: WithViewStore now conforms to Scene and can be used in App.body content.
  • Added: TextState, a testable, equatable description of SwiftUI Text. Useful for when you want to store dynamic, stylized text in your app's state.
  • Changed: AlertState and ActionSheetState now use TextState under the hood.
  • Fixed: a few Test Store failure messages were reporting the wrong debug information. They have been fixed.
  • Fixed: view store-derived bindings that do not have animation modifiers applied will not properly animated when mutated explicitly in withAnimation.
  • Fixed: documentation improvements (thanks @nspavlo, @SteinerHannes, @mluisbrown).x
  • Fixed: AlertState and ActionSheetState can once again be used with verbatim strings (thanks @ohitsdaniel).
  • Fixed: Re-publicized AlertState.Button.type.
  • Deprecated: AlertState and ActionSheetState initializers that take LocalizedStringKey. Migration path: use the initializers that take explicit TextState instead (which can be initialized with both LocalizedStringKey and verbatim Strings).

0.9.0

18 Nov 16:51
Compare
Choose a tag to compare
  • Removed ComposableCoreLocation and ComposableCoreMotion. The ReactiveSwift compatible versions of these are, for now, unavailable.

Changes from the upstream repo:

  • Rename producer-transforming scope.
  • Voice Memos Fixes.
  • Use serial queue for Tic Tac Toe authorization
  • Small fix to TestStore.

0.8.1

27 Oct 11:47
a5595df
Compare
Choose a tag to compare

Linux Support 🎉

  • Adds support for Linux and Android.
  • Only import Combine and SwiftUI when the can be imported.

0.8.0

29 Sep 21:56
Compare
Choose a tag to compare

Changes from the upstream 0.8.0 release:

  • Improved: better error messaging around testing uncompleted effects: it will now print the action the effect was kicked off from (thanks @mackoj).
  • Bug fix: fixed identified array implementations of shuffle, reverse (thanks @jeffersonsetiawan).
  • Bug fix: test stores should now perform effects in the same order as a live store.
  • Infrastructure: better document TCA acronym.
  • Infrastructure: document Apple bug with WithViewStore and ScrollViewReader.
  • Infrastructure: fix recursive higher-order reducer demo to map its effects recursively.
  • Infrastructure: Xcode 12 CI.

Plus PRs since 0.8.0:

0.7.1

14 Aug 14:20
Compare
Choose a tag to compare
  • Adds deprecation for ViewStore's publisher property to avoid its rename being a breaking change (#21)