Releases: ReactorKit/ReactorKit
Releases · ReactorKit/ReactorKit
3.2.0
What's Changed
- Add Swift Package Manager Guide by @OhKanghoon in #194
- Make public valueUpdatedCount on Pulse by @tokijh in #196
Full Changelog: 3.1.0...3.2.0
3.1.0
- Upgrade swift tool version to 5.3 (@OhKanghoon)
- Fix deprecated class type to AnyObject type (@jsryudev)
- Swizzle viewDidLoad in +load rather than +initialize. (@GetToSet)
- Introduce Pulse 📡 (@tokijh)
3.0.0
2.1.1
2.1.0
- Guarantee thread safety (#126)
- Add an availability to specify a scheduler (#128)
- Fix a crash in Mac Catalyst (#129, @mariohahn)
- Import RxSwift with
@_exported
attribute (#130) - Ensure that mutate and reduce are executed in the same serial scheduler (#131)
- Ensure that the last published state can be observed immediately (#135, @wplong11)
- Introduce
IdentityEquatable
andIdentityHashable
(#136) - Use WeakMapTable from dependency (#138)
⚠️ Breaking Change Notice
This version contains a potential breaking API change (#128). Reactors will no longer force to observe states in the main thread. Since the default scheduler is changed to CurrentThreadScheduler
, you need to specify an observer if there is a UI binding on a non-main thread:
performOnBackgroundThread {
reactor.state.map { $0.someText }
.observeOn(MainScheduler.instance)
.bind(to: myLabel.rx.text)
}
Alternatively, you can use the Scheduling API to specify the scheduler:
class MyReactor {
let scheduler: Scheduler = MainScheduler.instance
}