RxSwift: Swift 的 ReactiveX
- RxSwift 3.x / Swift 3.x 可在 rxswift-3.0 分支 中找到。
Rx 是通过 Observable
接口表达的计算泛型抽象。
这是 Rx 的 Swift 版本。
它试图尽可能地将原始版本中的概念迁移过来,但为了更好地与 iOS/macOS 环境整合,一些概念进行了适应。
可以在 ReactiveX.io 找到跨平台的文档。
和原始 Rx 一样,它的目的是使异步操作和事件/数据流易于组合。
观察者的 KVO、异步操作和流都被统一在了 序列抽象 下。这就是 Rx 简单、优雅和强大的原因。
我来到这里是因为我想 ...
... 理解
- 为什么使用 Rx?
- 基础知识,开始使用 RxSwift
- 特质 -
Single
、Completable
、Maybe
、Driver
和ControlProperty
是什么,为什么它们存在? - 测试
- 技巧和常见错误
- 调试
- Rx 背后的数学
- 什么是热和冷的可观察序列?
... 安装
- 将 RxSwift/RxCocoa 集成到我的应用程序中。 安装指南
... 变通处理
... 交互
- 这一切都很棒,但是与使用 RxSwift 的人交流并且交换经验会更好。
加入 Slack 通道 - 使用库报告问题。 使用错误模板创建问题
- 请求新功能。 使用功能请求模板创建问题
- 提供帮助 查看贡献指南
... 比较
- 其他库.
RxSwiftCommunity 查找兼容
... 从...查看更广泛的视野
- 这在Android中存在吗? RxJava
- 这一切都往哪里发展,未来会怎样,关于反应式架构,您会如何设计整个应用程序? Cycle.js - 这是javascript,但 RxJS 是Rx的javascript版本。
用法
需求
- Xcode 9.0
- Swift 4.0
- Swift 3.x (使用
rxswift-3.0
分支 代替) - Swift 2.3 (使用
rxswift-2.0
分支 代替)
安装
Rx不包含任何外部依赖。
目前支持以下选项
手册
打开Rx.xcworkspace,选择 RxExample
并运行。此方法将构建所有内容并运行示例应用程序
CocoaPods
通过pod --version
测试: 1.3.1
# Podfile
use_frameworks!
target 'YOUR_TARGET_NAME' do
pod 'RxSwift', '~> 4.0'
pod 'RxCocoa', '~> 4.0'
end
# RxTest and RxBlocking make the most sense in the context of unit/integration tests
target 'YOUR_TESTING_TARGET' do
pod 'RxBlocking', '~> 4.0'
pod 'RxTest', '~> 4.0'
end
替换YOUR_TARGET_NAME
,然后在Podfile
目录中,输入:
$ pod install
Carthage
通过carthage version
测试: 0.26.2
将以下内容添加到Cartfile
github "ReactiveX/RxSwift" ~> 4.0
$ carthage update
Swift Package Manager
通过swift build --version
测试: Swift 4.0.0-dev (swiftpm-13126)
创建一个Package.swift
文件。
// swift-tools-version:4.0
import PackageDescription
let package = Package(
name: "RxTestProject",
dependencies: [
.package(url: "https://github.com/ReactiveX/RxSwift.git", "4.0.0" ..< "5.0.0")
],
targets: [
.target(name: "RxTestProject", dependencies: ["RxSwift", "RxCocoa"])
]
)
$ swift build
为了使用RxTest依赖项构建或测试一个模块,设置TEST=1
。(RxSwift >= 3.4.2)
$ TEST=1 swift test
手动使用git子模块
- 将RxSwift作为子模块添加
$ git submodule add [email protected]:ReactiveX/RxSwift.git
- 将
Rx.xcodeproj
拖入到项目导航器 - 转到
项目 > 目标 > 构建阶段 > 与库链接
,点击+
并选择RxSwift-[平台]
和RxCocoa-[平台]
目标
参考
- http://reactivex.io/
- Reactive Extensions GitHub (GitHub)
- RxSwift RayWenderlich.com 书籍
- Boxue.io RxSwift 在线课程(中文)
🇨🇳 ) - Erik Meijer (维基百科)
- Expert to Expert: Brian Beckman and Erik Meijer - Inside the .NET Reactive Framework (Rx) (视频)
- Reactive Programming Overview (Netflix的Jafar Husain)
- Subject/Observer is Dual to Iterator (论文)
- Rx标准序列运算符可视化(可视化工具)
- Haskell