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
RxJava at Freeletics
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Dmytro Khmelenko
November 03, 2016
Programming
89
0
Share
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
34
Securing Python Web Applications
dkhmelenko
0
40
Best of login experience
dkhmelenko
0
120
Best of sign in experience @ Droidcon Lisbon
dkhmelenko
0
130
Red or Green? Let us test
dkhmelenko
0
50
A journey to smaller APK size
dkhmelenko
1
130
A journey to smaller apk size
dkhmelenko
0
75
How Git helps us with localization
dkhmelenko
0
110
Dagger.Android module
dkhmelenko
0
77
Other Decks in Programming
See All in Programming
Inside Stream API
skrb
1
550
Modding RubyKaigi for Myself
yui_knk
0
860
OSもどきOS
arkw
0
380
OCRを使ってゲームのアイテムをデータ化する
kishikawakatsumi
0
130
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
430
Oxlintはいかにしてtsgolintのlint ruleを呼び出しているのか
syumai
2
1.1k
Claspは野良GASの夢をみるか
takter00
0
150
These Five Tricks Can Make Your Apps Greener, Cheaper, & Nicer
hollycummins
0
260
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
2
1.1k
dRuby over BLE
makicamel
1
270
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
530
初めてのRubyKaigiはこう見えた
jellyfish700
0
400
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
290
Information Architects: The Missing Link in Design Systems
soysaucechin
0
950
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Optimizing for Happiness
mojombo
378
71k
Why Our Code Smells
bkeepers
PRO
340
58k
Agile that works and the tools we love
rasmusluckow
331
21k
Test your architecture with Archunit
thirion
1
2.3k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
560
The Mindset for Success: Future Career Progression
greggifford
PRO
0
350
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
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?