第一步當然是把專案clone到本地,github地址:github.com/ReactiveX/R…
官方文件
學習的第一手資源當然是專案提供的文件。在專案的Document目錄下放著專案的一些概念說明。看過專案的ReadMe後可以從 Getting Started 開始。
![](https://i.iter01.com/images/3d28daaaa4bdcb7a621981e36598c8ae18ef764843ab93c492ded00c82297ebe.png)
不過如果你之前完全沒有接觸過響應式程式設計這種概念,一開始文件可能讀的不太懂,多看一些實際使用的 demo 會有更深的體會。響應式的程式設計思維和在 OC 流行的 ReactiveCocoa 是一致的,所以對於什麼是 FRP 一些介紹 RAC 的文章一樣可以看,不必拘泥。
把專案跑起來,從Playground學習API
用 cocoapod 安裝後,從 workspace 開啟專案,模式裡選擇 RxSwift-macOS 然後編譯專案。Rx 非常友好的寫了一個展示 API 的 Playground。在導航裡選中 Rx.playground 檔案。
![](https://i.iter01.com/images/67a6866990073929502bef4aa1cc08dbfcd36cbf2ffe1f3d7599c7f402405e48.png)
在 Playground 裡可以看到各個 API 的使用方式和一些說明。
![](https://i.iter01.com/images/81dc2d37ed7259b9cec313fa1dbe33ce640ba05ebb395f4b0b7c8f0649f525f3.png)
如果想要自己測試某個 API,可以展開 Rx,選中二級裡的檔案 Playground,就可以在裡面自己寫程式碼執行看某個 API 的執行結果。
![](https://i.iter01.com/images/0665697cf631ff23b62686afdf2b286717c658ca66702a26b836b5edadd23827.png)
書
Rx 的書我只看到過一本。購買地址:store.raywenderlich.com/products/rx…
![](https://i.iter01.com/images/6bd7875ba4ba83ae7101fe927c66450643740f0142775a4bcc5ae424040312a5.png)
雖然這本書有點貴需要55刀,但是裡面的知識也值這個價。對於初學者而言買這本書對著邊做邊學是一個很好的路徑。
需要指出的是這本書還是更多的停留在如何使用好 Rx 上,對於一些具體的設計實現沒有深入提及。所以在讀完這本書後依然建議讀一遍官方文件,再探究一下原始碼。
有一本介紹 RAC 的書,如果你專案是 OC 也可以看看這本,這本內容比較少大概100頁,網路上也有盜版資源。購買連結:leanpub.com/iosfrp 。
![](https://i.iter01.com/images/f87678819db07fce43264ab584b749242a3f2b3b21d92a16567c54109a43de96.png)
其他
推薦兩篇博文。一篇李忠的是時候學習 RxSwift 了。一篇 riddle 的 iOS響應式架構。如果沒有從更高的抽象理解為什麼需要一個響應式的框架是用不好的 Rx 的。
Rx 的操作符實在是有點多,有時也可能記不清,可以下載 RxMarbles 查詢。
![](https://i.iter01.com/images/edfdd063f818fc1ac605d4f4add7845b363cad06140ec54244c7baf8be5bd03b.jpg)
![](https://i.iter01.com/images/125d92d5abfbdc0378b5e0b6ec34f1e1d46127eca146f03790a7aee3e36705d5.jpg)
![](https://i.iter01.com/images/1baba117612aaf34b016a2eadd1011056e6eeaa079add34a7e3bb81bc509fd02.jpg)
有用 Slack 還可以加下 RxSwift 的頻道:rxswift.slack.com 。當然請不要在裡面說中文。
![](https://i.iter01.com/images/a09a6258d544e98a64750576b836a6c006a063f413875a8e5440e98b1112cd92.png)
歡迎關注我的微博:@沒故事的卓同學
![](https://i.iter01.com/images/86ea229fbe02be276ddf1493032a22c8511fe9329656f1ee4a0cca18fe43e120.jpg)