RxSwift之路 2#如何开始
第一步当然是把项目clone到本地,github地址:https://github.com/ReactiveX/RxSwift。
官方文档
学习的第一手资源当然是项目提供的文档。在项目的Document目录下放着项目的一些概念说明。看过项目的ReadMe后可以从 Getting Started 开始。

不过如果你之前完全没有接触过响应式编程这种概念,一开始文档可能读的不太懂,多看一些实际使用的 demo 会有更深的体会。响应式的编程思维和在 OC 流行的 ReactiveCocoa 是一致的,所以对于什么是 FRP 一些介绍 RAC 的文章一样可以看,不必拘泥。
把项目跑起来,从Playground学习API
用 cocoapod 安装后,从 workspace 打开项目,模式里选择 RxSwift-macOS 然后编译项目。Rx 非常友好的写了一个展示 API 的 Playground。在导航里选中 Rx.playground 文件。

在 Playground 里可以看到各个 API 的使用方式和一些说明。

如果想要自己测试某个 API,可以展开 Rx,选中二级里的文件 Playground,就可以在里面自己写代码运行看某个 API 的运行结果。

视频
realm的学院网站放了一个Rx的专题,入门的时候也可以去看看:
Learning Path: RxSwift from Start to Finish 。

书
Rx 的书我只看到过一本。购买地址:https://store.raywenderlich.com/products/rxswift

虽然这本书有点贵需要55刀,但是里面的知识也值这个价。对于初学者而言买这本书对着边做边学是一个很好的路径。
需要指出的是这本书还是更多的停留在如何使用好 Rx 上,对于一些具体的设计实现没有深入提及。所以在读完这本书后依然建议读一遍官方文档,再探究一下源码。
有一本介绍 RAC 的书,如果你项目是 OC 也可以看看这本,这本内容比较少大概100页,网络上也有盗版资源。购买链接:https://leanpub.com/iosfrp 。

app
Rx 的操作符实在是有点多,有时也可能记不清,可以下载 RxMarbles 查询。



其他
推荐两篇博文。一篇李忠的是时候学习 RxSwift 了。一篇 riddle 的 iOS响应式架构。如果没有从更高的抽象理解为什么需要一个响应式的框架是用不好的 Rx 的。
有用 Slack 还可以加下 RxSwift 的频道:https://rxswift.slack.com 。当然请不要在里面说中文。

欢迎关注我的微博:@没故事的卓同学
