This a RxSwift implementation of The Composable Architecture and is optimized for UIKit.
Some notable differences compared to the original:
- It uses
Driver
instead ofEffect
type so that actions from side effects will always be delivered to the main thread. - Has no
ViewStore
. ViewStore was created for ergonomic reasons in SwiftUI and since SwiftUI is not supported, there's no reason for it to exist. - To subscribe to state updates, you can use the
subscribe
method
class Store<State, Action> {
public func subscribe<LocalState: Equatable>(
_ toLocalState: @escaping (State) -> LocalState
) -> Driver<LocalState>
}
struct Person {
var name: String
}
store
.subscribe(\Person.name)
.drive(label.rx.text)
.disposed(by: disposeBag)
This library is still in active development, so I happily accept feedbacks, issues and code contributions.