最近ReactiveX程式設計模型開始慢慢發展起來了,對于 Android 開發者來說, RxJava 是一個很難上手的庫,因為它對于 Android 開發者來說有太多陌生的概念了,可是它真的很牛。RxAndroid的核心是異步,提供了可維護行好的鍊式文法和各種線程之間的友善切換,對于大多數Android開發者來說,使用RxAndroid寫的代碼初看應該是很迷茫的,但熟悉了流程就好了,RxAndroid對于複雜的異步程式設計場景還是能顯著提高代碼可讀性的,就像javascript 的Promise程式設計模式差不多。
ReactiveX是Reactive Extensions的縮寫,一般簡寫為Rx。Rx是一個程式設計模型,目标是提供一緻的程式設計接口,幫助開發者更友善的處理異步資料流,Rx庫支援.NET、JavaScript和C++,Rx近幾年越來越流行了,現在已經支援幾乎全部的流行程式設計語言了(已經有13種語言了)。社群網站是 http://reactivex.io/。 RxAndroid是在RxJava基礎上增加了一些類,讓我們可以在Android平台上使用RxJava。Retrofit(REST網絡庫),RxBinding,RxBus等開源項目可以和RxAndroid一起使用。
下面是網友收集的一些相關的文章
Blog
- 給 Android 開發者的 RxJava 詳解 -強烈推薦 扔物線的文章 講解非常詳細,這篇看懂基本就可以上手了a啊
- NotRxJava懶人專用指南 -這篇入門極力推薦,手把手,深入淺出教你實作一個簡易的RxJava庫,更好的了解RxJava的實作思路
- 深入淺出RxJava(一:基礎篇)
- 深入淺出RxJava ( 二:操作符 )
- 深入淺出RxJava ( 三--響應式的好處 )
- 深入淺出RxJava ( 四-在Android中使用響應式程式設計 )
- 如何更新到RxAndroid1.0 -适合使用Rx 0.x版本的使用者更新的時候參考
開發者前線翻譯的一系列很贊的教程
- 那些年我們錯過的響應式程式設計 -非常棒的講解響應式程式設計的文章。
- 使用RxJava從多個資料源中加載資料
- 使用RxJava.Observable取代AsyncTask和AsyncTaskLoader
- 當複仇者聯盟遇上Dragger2、RxJava和Retrofit的巧妙結合
- 結合RxJava使用SQLite
- 比鋼鐵俠反應更靈敏-RxJava
一些不錯的介紹操作符的文章
- 行雲流水的部落格
- Android RxJava使用介紹(二) RxJava的操作符
一些不錯的翻譯文章
- 【譯】Deferring Observable code until subscription in RxJava
- 【譯】RxJava Observable tranformation: concatMap() vs flatMap()
- 【譯】Loading data from multiple sources with RxJava
- 【譯】Don't break the chain: use RxJava's compose() operator
Test
- Unit Testing RxJava Observables and Subscriptions
App
- android-gfycat -Android application that loads gifs via gfycat for efficiency's sake
- JakeWharton/u2020 -Jake大神的項目,裡面有RxJava和Retrofit一起使用的例子
- Avengers - 一個使用Retrofit+RxJava+MVP的app
- rx-android-architecture -Android中使用Rx的一種架構
- learnrxjava -RxJava例子
Library
- rx-preferences -使SharedPreferences支援RxJava
- RxAndroid -RxJava的Android拓展
- RxLifecycle -幫助使用了RxJava的安卓應用控制生命周期
- RxBinding -安卓UI控件的RxJava綁定API
- storio -支援RxJava的資料庫
- retrofit -支援RxJava的網絡請求庫
Stackoverflow
When should one use RxJava Observable and when simple Callback on Android?