GoReactive 0.1.1

GoReactive 0.1.1

Gal Orlanczyk 维护。



  • Gal Orlanczyk

GoReactive

Build Status Version License Platform

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文件。