2016年1月2日 星期六

Practice Reative(Rx) - merge

http://reactivex.io/documentation/operators/merge.html

前言: 最近Rx相關的議題在Android圈特別熱門,除了在Android Weekly裡面的文章幾乎都會擦到邊,又或者很多公司直接把這個架構導入產品之中;對我來說,原本某些code就已經有這個概念的影子,例如Async的操作,我們是用Parse推出的Bolts來實踐Defer/Promise,但Rx的概念更為通用,這表示Async的功能只是其中之一;學習Design Pattern最重要的是套用實際案例,所以以後Practice Reative(Rx)的系列文章,將針對各個component如何套用到實際的問題為目標

今天要聊到merge,其概念就是將數個Observable合併起來,你可以用在把所有Error report的Observable合併,再透過統一方式去處理,而此範例將搭配RxBinding跟map來解決Report Flurry Event的問題。

假設UI(此Sample Code來自好事地圖的專案)有8個按鈕都要report不同的event到flurry,你可以這樣寫(Gist)



如有更多有趣的使用方式歡迎分享。