In this episode of Fragmented, Donn and Kaushik continue their conversation with Dan Lew on RxJava. In the final part of this 2 part series, they talk about many useful RxJava operators and other intricacies of using RxJava in Android.
Show Notes
RxJava Operators:
- Observable.just [reactivex.io]
- Observable.from [reactivex.io]
- Observable.defer [reactivex.io]
- Using defer to handle “Old, Slow Code” [blog.danlew.net]
- Observable.map [reactivex.io]
- Observable.flatmap [reactivex.io]
- map vs flatmap (alchemist and cheese shredding analogy [reddit])
- Observable.zip [reactivex.io]
- Observable.combineLatest [reactivex.io]
- Observable. switchMap [reactivex.io]
- Observable.distinctUntilChanged [reactivex.io]
- Observable.lift explanation [reactivex.io]
- Observable.compose
- Don’t break the chain (using compose) [blog.danlew.net]
- Observable.filter [reactivex.io]
- Observable.take [reactivex.io]
- subscribeOn vs observeOn [stackoverflow.com]
- Understanding debounce, buffer, debouncedBuffer [nerds.weddingpartyapp.com]
RxJava Components:
- Subjects: when is it appropriate to use [.net but still applies] [[davesexton.com]19]
- Implementing an event bus using RxJava [nerds.weddingpartyapp.com]
- RxJava plugins [github.com]
- RxJavaDebug plugin – for hooking to start/end/error [github.com]
- .toBlocking() [reactivx.io]
- Composite Subscriptions [reactivex.io]
Retrolambda
- Retrolambda library [github.com]
- Retrolambda gradle plugin [github.com]
- Common Issue with Retrolambda (NoClassDefFoundError) [github.com]
Hot vs Cold observables – From the RxJs wiki [github.com]
- uses js instead of java, but concepts are the same and this is the best explanation I’ve found so far.
RxJava wiki on Backpressure [github.com]:
- Ring buffer size: `System.setProperty(“rx.ring-buffer.size”, “128”);`
- Issue with changing buffer ring size [github.com]
- It’s 16 on Android, down from 1024 originally. :P So it’s actually 64x smaller.
Awesome picks:
Dan Lew:
- Simple Made Easy (talk by Rich Hickey creator of Clojure) [infohq]
- Victor by Trello (SVG assets) [github.com]
Donn:
- Realm Object Database [realm.io]
Kaushik:
- Therapeutic Refactoring (talk by Katrina Owen) [youtube.com]
Contact
Dan Lew
- @danlew42 [twitter.com]
- Dan Lew’s blog [danlew.net]
Donn Felker
- @donnfelker [twitter.com]
- donnfelker.com
Kaushik Gopal
- @kaushikgopal [twitter.com]
- kaush.co