R X J AVA 2 F R O M ( N O T ) S C R AT C H
R O B E R T O O R G I U
– E V E R Y O N E , W H E N R X J AVA 2 W A S A N N O U N C E D
“I am on RxJava 1… am I doomed?”
R X J AVA A N D R X J AVA 2 C A N B E U S E D AT T H E S A M E T I M E
N O P E
compile ‘io.reactivex:rxjava:1.2.7’
compile ‘io.reactivex:rxjava:1.2.7’
compile 'io.reactivex.rxjava2:rxjava:2.0.7'
rx.Observable
reactivex.Observable
rx.Observable
rx.functions.*
RXJAVA
reactivex.Observable
reactivex.functions.*
RXJAVA 2
FuncN<T,R>
R call(T data)
FuncN<T,R>
R call(T data)
Function<T,R>
R apply(T data)
FuncN<T,R>
R call(T data)
Function<T,R>
R apply(T data)
Func1<T,R> Function<T,R>
Func2<T,R> BiFunction<T,R>
Func3<T,R> Function3<T,R>
Action1<T>
call(T data)
Action1<T>
call(T data)
Consumer<T>
accept(T data)
Action1<T>
call(T data)
Consumer<T>
accept(T data)
Action0
call()
Consumer
accept()
Action0
call()
Action
run()
rx.Observable
RXJAVA
rx.Observable
RXJAVA
reactivex.Observable reactivex.Flowable
RXJAVA 2
reactivex.Observable
RXJAVA 2
• ~1k elements • GUI & touch events • Synchronous flow
reactivex.Flowable
RXJAVA 2
• 10k+ elements • Reading from file, databases and network • Blocking/pull-based data source
Single
RXJAVA
Completable
Single*
RXJAVA 2
Completable
Maybe
* has been totally redesigned
Maybe
RXJAVA 2
onSubscribe (onSuccess | onError | onComplete)?
Observable.from()
RXJAVA
Observable.fromArray()
RXJAVA 2
Observable.fromIterable()
Observable.fromFuture()
Observable.create()
RXJAVA
Observable.create()
RXJAVA 2
Observable.create()
RXJAVA 2
Observable.fromAsync()
M O R E A B O U T R X J AVA 2
https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0
https://caster.io/courses/rxjava2/
D O Y O U H AV E A N Y Q U E S T I O N ?
T H A N K S F O R Y O U R AT T E N T I O N !