Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
RxJava at Freeletics
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Dmytro Khmelenko
November 03, 2016
Programming
91
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
RxJava at Freeletics
How we use RxJava at Freeletics and why we like it
Dmytro Khmelenko
November 03, 2016
More Decks by Dmytro Khmelenko
See All by Dmytro Khmelenko
Securing High-Risk Django Applications: Lessons from the Payment Domain
dkhmelenko
0
58
Securing Python Web Applications
dkhmelenko
0
43
Best of login experience
dkhmelenko
0
130
Best of sign in experience @ Droidcon Lisbon
dkhmelenko
0
130
Red or Green? Let us test
dkhmelenko
0
52
A journey to smaller APK size
dkhmelenko
1
130
A journey to smaller apk size
dkhmelenko
0
78
How Git helps us with localization
dkhmelenko
0
110
Dagger.Android module
dkhmelenko
0
81
Other Decks in Programming
See All in Programming
JIS keyboard support in Omarchy
lef237
0
170
Long Living Tokens, Die, Die, Die! (or: The One Ring is Banned in Modern)
sylph01
0
380
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
210
ChromeでローカルLLM
ryu1013
0
170
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
5
1.2k
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
12
11k
SFCで実現する病院・医療システムの動的組み立て式UI
koukimiura
1
130
APNsからLive Activityを開始する話
yumnumm
0
180
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.3k
Railsバージョンを4倍にした話
optim
0
810
最近”作らせてる” ローカルAIアプリの話
akit37
0
510
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
360
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1033
470k
Ethics towards AI in product and experience design
skipperchong
2
440
The SEO Collaboration Effect
kristinabergwall1
1
600
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
950
The Curse of the Amulet
leimatthew05
3
16k
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Prompt Engineering for Job Search
mfonobong
0
550
Mobile First: as difficult as doing things right
swwweet
225
10k
How to Talk to Developers About Accessibility
jct
2
600
Odyssey Design
rkendrick25
PRO
2
890
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
640
Transcript
RXJAVA AT FREELETICS Dmytro Khmelenko Software Engineer 3 November 2016
REACTIVE EXTENSION It’s a library for composing asynchronous and event-
based programs by using observable sequences. 2
GET FUNCTIONAL - avoid changing state - avoid mutable data
- declarative expression instead of statement - computation as the evaluation of math function 3
BEFORE 4 private Product getProduct() throws IOException, JSONException { AssetSource
assets = new AssetSource(context, "product_1_month.json"); String productJson = assets.asCharSource(Charsets.UTF_8).read(); return new Product(productJson); } private void handleProduct() { Product product = null; try { product = getProduct(); } catch (IOException | JSONException e) { e.printStackTrace(); } if(product != null) { String interval = product.interval(); //... } }
TRANSFORMATION 5
TRANSFORMATION 6
AFTER 7
GET FUNCTIONAL 8
TESTING 9
TESTING 10
TESTING 11
• Documentation • github.com/ReactiveX/RxJava/wiki • reactivex.io • Book • introtorx.com
12 RESOURCES
QUESTIONS?