17个pods
为RxSwift提供一系列阻塞操作符。这些操作符主要用于单元/集成测试和一些可能很有用的特殊场景。
例如
在退出命令行应用前等待可观察序列完成。
许可证: NOASSERTION
这是一个为UITableView和UICollectionView提供反应式数据源的集合。
它允许在几行代码中创建表格和集合视图的动画数据源。
```swift let data: Observable = ...
let dataSource = RxTableViewSectionedAnimatedDataSource() dataSource.cellFactory = { (tv, ip, i) in let cell = tv.dequeueReusableCell(withIdentifier: "Cell") ?? UITableViewCell(style:.Default, reuseIdentifier: "Cell") cell.textLabel!.text = "(i)" return cell }
// 动画数据 .bind(to: animatedTableView.rx.items(dataSource: dataSource)) .disposed(by: disposeBag)
// 正常重新加载数据 .bind(to: tableView.rx.items(dataSource: dataSource)) .disposed(by: disposeBag) ```
许可证: MIT
最简单的RxSwift架构。状态 + 反馈循环。
调试更简单
可以在任何级别应用
system
操作器中)system
操作器)与依赖注入一起工作得很好
测试
可以建模循环依赖
完全将业务逻辑与效果(Rx)分开
许可证: MIT
这是ReactiveX.io的Swift版本。
与原始Rx一样,它的目的是实现异步操作和事件流的轻松组合。
它尽可能地移植了原始Rx中的概念,但某些概念为了与iOS/macOS/Linux环境更好地集成而进行了调整。
对于那些从未听说过Rx的人来说,最好的类比可能是
git diff | grep bug | less # Linux管道 - 通过发送一系列字节、单词、行来相互通信
许可证: NOASSERTION
Swift
RxTest
RxSwift的单元测试扩展。这个库包含了模拟调度器、可观察对象和观察者,可以让你轻松地对RxSwift的内置操作符进行单元测试。
这个库包含了你需要的所有东西来以以下方式编写单元测试:```swift func testMap() { let scheduler = TestScheduler(initialClock: 0)
let xs = scheduler.createHotObservable([
next(150, 1),
next(210, 0),
next(220, 1),
next(230, 2),
next(240, 4),
completed(300)
])
let res = scheduler.start { xs.map { $0 * 2 } }
let correctEvents = [
next(210, 0 * 2),
next(220, 1 * 2),
next(230, 2 * 2),
next(240, 4 * 2),
completed(300)
]
let correctSubscriptions = [
Subscription(200, 300)
]
XCTAssertEqual(res.events, correctEvents)
XCTAssertEqual(xs.subscriptions, correctSubscriptions)
}
```
许可证: NOASSERTION
- Swift
RxTests
RxSwift的单元测试扩展。这个库包含了模拟调度器、可观察对象和观察者,可以让你轻松地对RxSwift的内置操作符进行单元测试。
这个库包含了你需要的所有东西来以以下方式编写单元测试:```swift func testMap() { let scheduler = TestScheduler(initialClock: 0)
let xs = scheduler.createHotObservable([
next(150, 1),
next(210, 0),
next(220, 1),
next(230, 2),
next(240, 4),
completed(300)
])
let res = scheduler.start { xs.map { $0 * 2 } }
let correctEvents = [
next(210, 0 * 2),
next(220, 1 * 2),
next(230, 2 * 2),
next(240, 4 * 2),
completed(300)
]
let correctSubscriptions = [
Subscription(200, 300)
]
XCTAssertEqual(res.events, correctEvents)
XCTAssertEqual(xs.subscriptions, correctSubscriptions)
}
```
- Swift
RxViewModel
RxViewModel
是 MVVM
和 Rx
扩展的结合体
由于 ReactiveViewModel
项目陷入了停滞,并且没有找到 Swift
或 Swift 2.0
的实现,我们发现有必要在 Swift
中实现类似的功能。
鉴于没有 Swift
分支,并且对项目的兴趣不高,我们认为给 RxSwift
/RxCocoa
一次机会,并把它作为构建此响应式视图模型方法的基石会更好。
简而言之:一个基于 RxCocoa
的对 ReactiveViewModel
的明显“模仿”。
许可证: MIT
- Swift
SMWebView
SMWebView 是 UIWebView 的一个令人愉快的轻量级 Swift 包装器,它让你可以利用闭包和链式调用的力量。当然 - 摆脱那些讨厌、糟糕的代理吧 ;-)
许可证: MIT
- Swift
UIView+Positioning
UIView+Positioning 提供了简短的方法和助手,以便轻松地为任何基于 UIView 的对象定义框架属性。
许可证: MIT
- Swift