ReSwift Versions Save

Unidirectional Data Flow in Swift - Inspired by Redux

6.1.1

1 year ago

Other:

New Contributors

Full Changelog: https://github.com/ReSwift/ReSwift/compare/6.1.0...6.1.1

6.1.0

3 years ago

API Changes:

  • Deprecate StateType protocol requirement (#462) - @mjarvis

Other:

  • Fix bug where automaticallySkipsRepeats is ignored when subscribing on generic S: StoreType (#463) - @mjarvis
  • Fix typo in error messaging (#470) - @hkellaway

6.0.0

3 years ago

Breaking API Changes:

  • Drop support for Swift 3.2, 4.0, and 4.1. (#418) - @DivineDominion
  • Drop support for iOS 8 (#447) - @DominicSchiller-IBM-CIC

API Changes:

  • Add capability to mutate Middleware after store creation. (#427) - @mjarvis

Other:

  • Add key paths to subscription select (#415) - @djtech42
  • Make isDispatching of Store atomic (#341, #446) - @zhongwuzw, @basememara

5.0.0

4 years ago

Breaking API Changes:

  • Remove StandardAction and StandardActionConvertible (#270) - @mjarvis

    • The existence of StandardAction and StandardActionConvertible is somewhat confusing to new users, and does not have a direct use case within the core ReSwift library. Therefore, it has been moved to ReSwift-Recorder where it belongs.
    • If you're using StandardAction in your project without ReSwift-Recorder, you can copy the old implementation into your project as a middle ground while you migrate away from its usage.
  • Make Store's state setter private (#354) - @mokagio

    • Removes the ability to directly set state by making it private(set). This prevents users from bypassing reducers and middleware. All mutation of the state must occur through the normal Action & Reducer methods.
    • This deprecates the usage of ReSwift-Recorder. Changes may be made to that library in the future in order to support this change.

Other:

  • Resolve Xcode 10.2 warnings with Swift 4.2.2 and 5.0 (#397) - @mjarvis
  • Update Swift Package Manager support (#403, #411) - @Dschee, @hoemoon

4.1.1

5 years ago
  • Fix 4.1.0 regression with automaticallySkipsRepeats when selecting Equatable state in Non-Equatable root state (#399) - @djtech42

4.1.0

5 years ago

API Changes:

Other

  • Add Subscription skip(when:) and only(when:) (#242) - @mjarvis
  • Add automaticallySkipsRepeats configuration option to Store initializer (#262) - @DivineDominion
  • Improve subscription & state update performance (#325) - @mjarvis
  • Enable build settings "Allow app extension API only" (#328) - @oradyvan
  • Open Subscription<State> to allow external extensions (#383) - @mjarvis
  • Update project to Swift 4.2 (#256, #335, #374) - @mjarvis, @DivineDominion

4.0.1

6 years ago

Other:

  • Fix retain cycle in SubscriptionBox (#278) - @mjarvis, @DivineDominion
  • Fix bug where using skipRepeats with optional substate would not notify when the substate became nil #55655 - @Ben-G
  • Add automatic skipRepeats for Equatable substate selection (#300) - @JoeCherry

4.0.0

7 years ago

Breaking API Changes:

  • Introduced a new Subscription API (#203) - @Ben-G, @mjarvis, @DivineDominion

    • The subscription API provides basic operators, such as skipRepeats (skip calls to newState unless state value changed) and select (sub-select a state).

    • This is a breaking API change that requires migrating existing subscriptions that sub-select a portion of a store's state:

      • Subselecting state in 3.0.0:

        store.subscribe(subscriber) { ($0.testValue, $0.otherState?.name) }
        
      • Subselecting state in 4.0.0:

        store.subscribe(subscriber) {
          $0.select {
            ($0.testValue, $0.otherState?.name)
          }
        }
        
    • For any store state that is Equatable or any sub-selected state that is Equatable, skipRepeats will be used by default.

    • For states/substates that are not Equatable, skipRepeats can be implemented via a closure:

      store.subscribe(subscriber) {
        $0.select {
            $0.testValue
            }.skipRepeats {
                return $0 == $1
            }
      }
      
  • Reducer type has been removed in favor of reducer function (#177) - Ben-G

    • Here's an example of a new app reducer, for details see the README:

      func counterReducer(action: Action, state: AppState?) -> AppState {
          var state = state ?? AppState()
      
          switch action {
          case _ as CounterActionIncrease:
              state.counter += 1
          case _ as CounterActionDecrease:
              state.counter -= 1
          default:
              break
          }
      
          return state
      }
      
  • dispatch functions now return Void instead of Any (#187) - @Qata

    • The return type has been removed without any replacement, since the core team did not find any use cases of it. A common usage of the return type in redux is returning a promise that is fullfilled when a dispatched action is processed. While it's generally discouraged to disrupt the unidirectional data flow using this mechanism we do provide a dispatch overload that takes a callback argument and serves this purpose.
  • Make dispatch argument in middleware non-optional (#225) - @dimazen, @mjarvis, @Ben-G

  • Middleware now has a generic type parameter that is used for the getState method and matches the Store's State type. This allows accessing the state in middleware code without type casting (#226) - @mjarvis

Other:

  • Extend StoreType with substate selector subscription (#192) - @mjarvis
  • Add DispatchingStoreType protocol for testing (#197) - @mjarvis
  • Installation guide for Swift Package Manager - @thomaspaulmann
  • Update documentation to reflect breaking API changes - @mjarvis
  • Clarify error message on concurrent usage of ReSwift - @langford

3.0.0

7 years ago

Released: 11/12/2016

This release supports Swift 3.0.1

Breaking API Changes:

  • Dropped support for Swift 2.2 and lower (#157) - @Ben-G

API Changes:

  • Mark Store as open, this reverts a previously accidental breaking API Change (#157) - @Ben-G

Other:

  • Update to Swift 3.0.1 - @Cristiam, @Ben-G
  • Documentation changes - @vkotovv

2.1.0

7 years ago

Released: 09/15/2016

This version supports Swift 3 for Swift 2.2 support use an earlier release.

Other:

  • Swift 3 preview compatibility, maintaining Swift 2 naming - (#126) - @agentk
  • Xcode 8 GM Swift 3 Updates (#149) - @tkersey
  • Migrate Quick/Nimble testing to XCTest - (#127) - @agentk
  • Automatically build docs via Travis CI (#128) - @agentk
  • Documentation Updates & Fixes - @mikekavouras, @ColinEberhardt