GoReactive
GoReactive 是一个简单但功能强大的基于可观察模式的响应式框架。它提供了一种简单的方式来实现许多简单任务,如观察、绑定等。这对于许多日常任务非常有用,无需在代码库中添加太多复杂性。
GoReactive 故意不处理不同线程中的事件,这个框架的主要目的是提供易于调试和轻量级的强大功能。
开发这个框架的原因是,在某些地方,与大型响应式框架结合可能会难以维护,对新员工来说更新难度较大(学习曲线陡峭),而且存在出错或误用的风险。这个框架旨在为最常见的流程和观察提供简单解决方案,无需调试多线程环境,无需学习许多操作符,无需更改应用程序架构。只需在需要的地方使用,而不会中断应用程序流程和当前架构。
如果您需要更复杂的功能,这个框架不会变得很大,也不会有很多操作符;如果您只需要简单的绑定和可观察模式,则这个框架可以是一个很好的候选者。
简单使用
import GoReactive
...
class ViewModel {
let bindableProperty = Property<String?>(nil)
}
...
let viewModel = ViewModel()
// A group of cancelable subscriptions,
// will handle disposing of all subscriptions when deinitialized.
let cancelableGroup = CancelableGroup()
@IBOutlet weak var bindableLabel: UILabel!
@IBOutlet weak var bindableTextField: UITextField!
...
// Can subscribe to changes
self.viewModel.bindableProperty.subscribe(onNext: { (value) in
// handles subscription
}).add(to: self.cancelableGroup)
// Can bind one way
self.viewModel.bindableProperty
.bind(to: self.bindableLabel.reactiveComponent.text)
.add(to: self.cancelableGroup)
// Can bind two way
self.bindableTextField.reactiveComponent.text
.bidirectionalBind(to: self.viewModel.bindableProperty)
.add(to: self.cancelableGroup)
示例
要运行示例项目,请先克隆仓库,然后从 Example 目录中首先运行 pod install
需求
- Xcode 10
- Swift 4.2
安装
GoReactive 通过 CocoaPods 可用。要安装它,只需将以下行添加到您的 Podfile
pod 'GoReactive'
待办事项
- 组合可观察操作
- 映射可观察操作
- 使用可观察序列与KVO、通知等
- CI流水线自动部署(标签上的版本和文档)以及其他改进
- 代码覆盖率
- SwiftLint
- tvOS,macOS支持
作者
Gal Orlanczyk, [email protected]
许可
GoReactive 在MIT许可下可用。有关更多信息,请参阅LICENSE文件。