Roberto Orgiu: RxJava 2 for the rest of us

34

Transcript of Roberto Orgiu: RxJava 2 for the rest of us

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

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)?

BACKPRESSURE

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 !