The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
## What's Changed
* Add Swift Package Manager Guide by @OhKanghoon in https://github.com/ReactorKit/ReactorKit/pull/194
* Make public valueUpdatedCount on Pulse by @tokijh in https://github.com/ReactorKit/ReactorKit/pull/196
**Full Changelog**: https://github.com/ReactorKit/ReactorKit/compare/3.1.0...3.2.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)
- Add RxSwift 6 support :fire: (#172, @tokijh)
- Remove RxExpect dependency (#171, @tokijh)
* Update Swift Package to be compatible with Xcode 12 (#163, @dodgecm)
* 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` and `IdentityHashable` (#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:
```swift
performOnBackgroundThread {
reactor.state.map { $0.someText }
.observeOn(MainScheduler.instance)
.bind(to: myLabel.rx.text)
}
```
Alternatively, you can use the [Scheduling API](https://github.com/ReactorKit/ReactorKit/tree/2.1.0#scheduling) to specify the scheduler:
```swift
class MyReactor {
let scheduler: Scheduler = MainScheduler.instance
}
```
* Add `Reactor.isStubEnabled` and deprecate `Stub.isEnabled` for the runtime performance. (e813112e4497a66f046e1fa0e9783adbace388bf)
* Add Swift 5 support 🚀 (#106)
Special thanks to @mariohahn and @tokijh 🎉
* Introduce `StateRelay` as a replacement of `Variable` (#82, @tokijh)
* Add Swift 4.2 support :tada: (#77, @murselturk)
* Create a state stream automatically when accessing `action` (#49, @creasty)