Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RxJava2 from (not) scratch
Search
Roberto Orgiu
March 30, 2017
Technology
0
120
RxJava2 from (not) scratch
Slides for mDevTalk #8, Prague, March 30 2017
Roberto Orgiu
March 30, 2017
Tweet
Share
More Decks by Roberto Orgiu
See All by Roberto Orgiu
Wellness & Droid
tiwiz
0
100
Behind the curtains
tiwiz
0
46
The Importance of Being Tested
tiwiz
0
390
An Android Dev start to Kotlin MPP
tiwiz
0
140
Fantastic API and where to find them
tiwiz
0
59
Flipping the Koin @ GDG Dev Party
tiwiz
1
46
Flipping the Koin
tiwiz
2
140
Trip into the async world @ NYC Kotlin Meetup
tiwiz
0
90
Trip into the async world
tiwiz
1
110
Other Decks in Technology
See All in Technology
“プロダクトを好きになれるか“も QAエンジニア転職の大事な判断基準だと思ったの
tomodakengo
1
230
20250623 Findy Lunch LT Brown
3150
0
670
API の仕様から紐解く「MCP 入門」 ~MCP の「コンテキスト」って何だ?~
cdataj
0
180
Snowflake Intelligenceで実現できるノーコードAI活用
takumimukaiyama
1
290
Amplifyとゼロからはじめた AIコーディング 成果と展望
mkdev10
1
330
Абьюзим random_bytes(). Фёдор Кулаков, разработчик Lamoda Tech
lamodatech
0
190
成立するElixirの再束縛(再代入)可という選択
kubell_hr
0
510
讓測試不再 BB! 從 BDD 到 CI/CD, 不靠人力也能 MVP
line_developers_tw
PRO
0
930
OAuth/OpenID Connectで実現するMCPのセキュアなアクセス管理
kuralab
5
640
ObsidianをMCP連携させてみる
ttnyt8701
2
140
25分で解説する「最小権限の原則」を実現するための AWS「ポリシー」大全 / 20250625-aws-summit-aws-policy
opelab
2
210
比起獨自升級 我更喜歡 DevOps 文化 <3
line_developers_tw
PRO
0
920
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
930
How to Think Like a Performance Engineer
csswizardry
24
1.7k
Rails Girls Zürich Keynote
gr2m
94
14k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Practical Orchestrator
shlominoach
188
11k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
GraphQLとの向き合い方2022年版
quramy
46
14k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Writing Fast Ruby
sferik
628
61k
Bash Introduction
62gerente
614
210k
Building Adaptive Systems
keathley
43
2.6k
Transcript
None
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 RY O N E , W
H E N R X J AVA 2 WA 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 !