Releases: pointfreeco/swift-composable-architecture
Releases · pointfreeco/swift-composable-architecture
0.14.0
-
Changed:
FormActionandReducer.formhave been renamed toBindingActionandReducer.bindingbased on community feedback and the more general, non-form-based use cases. Migration path:FormActionandReducer.formhave been deprecated and Xcode can automatically migrate them to their newer names.// before: enum SettingsAction { case form(FormAction<SettingsState>) } let settingsReducer = Reducer< SettingsState, SettingsAction, SettingsEnvironment > { state, action, environment in switch action { ... case .form: return .none } } . form(action: /SettingsAction.form) TextField( "Display name", text: viewStore.binding(keyPath: \.displayName, send: SettingsAction.form) ) // after: enum SettingsAction { case binding(BindingAction<SettingsState>) } let settingsReducer = Reducer< SettingsState, SettingsAction, SettingsEnvironment > { state, action, environment in switch action { ... case .binding: return .none } } .binding(action: /SettingsAction.binding) TextField( "Display name", text: viewStore.binding(keyPath: \.displayName, send: SettingsAction.binding) )
0.13.0
Quick turnaround for this release. Should have waited for Xcode 12.5 to download 😅
- Changed: replacing an identified array's element with one that has a mismatched id will now fatal error in debug builds.
- Fixed: worked around a Xcode 12.5 beta compilation error.
- Infrastructure: fleshed out
Store.scopedocumentation.
0.12.0
- Added: First-class forms support via
FormActionandReducer.form(). - Fixed: Re-publicized
AlertState.Button.type.
0.11.0
- Added:
TextState, a testable, equatable description of SwiftUIText. Useful for when you want to store dynamic, stylized text in your app's state. - Changed:
AlertStateandActionSheetStatenow useTextStateunder the hood. - Fixed: worked around a bug affecting iOS 13.0-13.2 that prevented state changes from being reflected in the view (thanks @nsillik).
- Fixed:
AlertStateandActionSheetStatecan once again be used with verbatim strings (thanks @ohitsdaniel). - Deprecated:
AlertStateandActionSheetStateinitializers that takeLocalizedStringKey. Migration path: use the initializers that take explicitTextStateinstead (which can be initialized with bothLocalizedStringKeyand verbatimStrings).
0.10.0
- Added:
WithViewStorenow conforms toSceneand can be used inApp.bodycontent. - Changed:
Store.scope's less commonly used overload that transforms publishers ofStores has been deprecated and renamed topublisherScope. - 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
animationmodifiers applied will not properly animated when mutated explicitly inwithAnimation. - Fixed: documentation improvements (thanks @nspavlo, @SteinerHannes, @mluisbrown).x
- Infrastructure: better support dark mode in the Voice Memos demo (thanks @willisplummer).
- Infrastructure: use serial queue in Tic Tac Toe demo.
0.9.0
- Improved: test stores can now call throwing code in assert step closures.
- Fixed: stores now buffer actions that are sent recursively.
- Infrastructure: fixed Tic Tac Toe demo bug.
- Infrastructure: fixed LocalizedStringKey test (thanks @mluisbrown).
- Removed ComposableCoreLocation and ComposableCoreMotion. They now live at https://github.com/pointfreeco/composable-core-location and https://github.com/pointfreeco/composable-core-motion
0.8.0
- 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
WithViewStoreandScrollViewReader. - Infrastructure: fix recursive higher-order reducer demo to map its effects recursively.
- Infrastructure: Xcode 12 CI.
0.7.0
- Changed:
LocationManagermock initializers now take the correct, optional signature for thelocationdependency (thanks @mackoj ). - Changed:
Reducer.optionalis now a method so that its assertions can include file/line context (thanks @alexito4). Theoptionalproperty has been deprecated in favor of the method. - Changed: previously-deprecated interfaces have been obsoleted.
- Bug fixed:
Store.ifLetno longer evaluates theelsebranch too often (thanks @mluisbrown). - Bug fixed: more than one alert can now be presented in a row, as can more than one action sheet.
- Infrastructure: documentation fixes (thanks @jasdev, @artnest, @mmatoszko).
- Infrastructure:
Store.ifLetcan take advantage of ascopeoverload (thanks @fonkadelic). - Infrastructure: fixed Voice Memos bug around deleting a memo that is playing.
- Infrastructure: new demo for tvOS focus.
- Infrastructure: added key frame effect to animation demo (thanks @boudavid).
- Infrastructure: fixed Tic-Tac-Toe demo bug around error display (thanks @heiberg).
0.6.0
- Added: SwiftUI alert and action sheet helpers via
AlertStateandActionSheetState. - Changed:
ViewStoreno longer uses@Publishedto coordinate its state withObservableObject.
0.5.0
- Added:
ComposableCoreMotion, a micro library for integrating the Composable Architecture with Core Motion. - Improved:
Store.sendnow prints the action sent in its assertion failure for better debugging (thanks @ollitapa). - Changed:
Reducer.debugnow usesPublishers.MergeManyinstead ofPublishers.Concatenateto avoid a Combine bug that results in a memory leak. - Infrastructure: document
rxswift-composable-architecture(thanks @dannyhertz), moveViewStore.swiftinto the root directory (thanks @dannyhertz), reorganize VoiceMemos demo for readability.