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
Design & be reactive on Android with Iron Man i...
Search
Saul Molinero
November 27, 2015
Programming
930
16
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Design & be reactive on Android with Iron Man in a clean way
Saul Molinero
November 27, 2015
More Decks by Saul Molinero
See All by Saul Molinero
Hidden gems and wats for the Modern android Developer
saulmm
0
210
Hidden gems and wats for modern Android Development
saulmm
8
920
Android Dev Tools & Workflows
saulmm
3
490
Espresso Workshop, UI Testing en Android
saulmm
2
140
Android Dev Tools & Workflows
saulmm
0
250
Tools & tips of the trade for the Android Developer
saulmm
31
6k
Android Wear vs. Tizen (Apr. 2015)
saulmm
3
1.4k
From Material Design to Android Wear
saulmm
5
700
A glance to android wear
saulmm
3
320
Other Decks in Programming
See All in Programming
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
200
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.7k
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
280
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
820
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
Creating Composable Callables in Contemporary C++
rollbear
0
180
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.6k
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
160
Vite+ Unified Toolchain for the Web
naokihaba
0
410
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
420
Webフレームワークの ベンチマークについて
yusukebe
0
190
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Done Done
chrislema
186
16k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Exploring anti-patterns in Rails
aemeredith
3
430
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
190
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
880
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
220
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
160
Making Projects Easy
brettharned
120
6.7k
Tell your own story through comics
letsgokoyo
1
980
Six Lessons from altMBA
skipperchong
29
4.3k
Transcript
Design & be reactive on Android with Iron Man in
a clean way Saúl Molinero MADRID · NOV 27-28 · 2015 @_saulmm
MADRID · NOV 27-28 · 2015 @_saulmm Popsy
MADRID · NOV 27-28 · 2015 @_saulmm DEPENDENCY INjECTION Coordinator
Layout RXJAVA RETROFIT 2 CLEAN ARCHITECTURE DATA BINDING OKhttp
MADRID · NOV 27-28 · 2015 @_saulmm CLEAN ARCHITECTURE
MADRID · NOV 27-28 · 2015 @_saulmm SOLID
MADRID · NOV 27-28 · 2015 @_saulmm SOLID SINGLE responsibility
OPEN-CLOSED LISKOV SUBSTITUTION INTERFACE SEGREGATION DEPENDENCY INVERSION
MADRID · NOV 27-28 · 2015 @_saulmm - Easy to
test - Easy to add - Easy to hide implementations Featuring:
MADRID · NOV 27-28 · 2015 @_saulmm Views PRESENTER INTERACTOR
/ USECASE INTERACTOR / USECASE INTERACTOR / USECASE REPOSITORY DATASOURCE DATASOURCE DATASOURCE View Interface INTERACTOR INTERFACE REPO INTERFACE DATA SOURCE INTERFACE
MADRID · NOV 27-28 · 2015 @_saulmm Activity / Fragment
/ Dialog / Whatever CLEAN
MADRID · NOV 27-28 · 2015 @_saulmm Activity / Fragment
/ Dialog / Whatever CLEAN
MADRID · NOV 27-28 · 2015 @_saulmm Activity / Fragment
/ Dialog / Whatever CLEAN
MADRID · NOV 27-28 · 2015 @_saulmm Activity / Fragment
/ Dialog / Whatever CLEAN
MADRID · NOV 27-28 · 2015 @_saulmm Presenter CLEAN
MADRID · NOV 27-28 · 2015 @_saulmm RETROFIT
MADRID · NOV 27-28 · 2015 @_saulmm RETROFIT 2
MADRID · NOV 27-28 · 2015 @_saulmm RETROFIT 2
MADRID · NOV 27-28 · 2015 @_saulmm RETROFIT 2
MADRID · NOV 27-28 · 2015 @_saulmm Asynchronous Synchronous RETROFIT
2
MADRID · NOV 27-28 · 2015 @_saulmm Asynchronous Synchronous RETROFIT
2
MADRID · NOV 27-28 · 2015 @_saulmm Call pattern RETROFIT
2
MADRID · NOV 27-28 · 2015 @_saulmm RETROFIT 2
MADRID · NOV 27-28 · 2015 @_saulmm RETROFIT 2
MADRID · NOV 27-28 · 2015 @_saulmm OKHTTP OkHttp
MADRID · NOV 27-28 · 2015 @_saulmm OKHTTP
MADRID · NOV 27-28 · 2015 @_saulmm Support design library
MADRID · NOV 27-28 · 2015 @_saulmm DESIGN
MADRID · NOV 27-28 · 2015 @_saulmm DESIGN
MADRID · NOV 27-28 · 2015 @_saulmm DESIGN
MADRID · NOV 27-28 · 2015 @_saulmm DESIGN
MADRID · NOV 27-28 · 2015 @_saulmm DESIGN
MADRID · NOV 27-28 · 2015 @_saulmm DESIGN
MADRID · NOV 27-28 · 2015 @_saulmm Support design library
Coordinator layout
MADRID · NOV 27-28 · 2015 @_saulmm
MADRID · NOV 27-28 · 2015 @_saulmm
MADRID · NOV 27-28 · 2015 @_saulmm
MADRID · NOV 27-28 · 2015 @_saulmm
MADRID · NOV 27-28 · 2015 @_saulmm
MADRID · NOV 27-28 · 2015 @_saulmm BEHAVIORS
MADRID · NOV 27-28 · 2015 @_saulmm BEHAVIORS
MADRID · NOV 27-28 · 2015 @_saulmm BEHAVIORS
MADRID · NOV 27-28 · 2015 @_saulmm BEHAVIORS
MADRID · NOV 27-28 · 2015 @_saulmm BEHAVIORS
MADRID · NOV 27-28 · 2015 @_saulmm BEHAVIORS
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm
MADRID · NOV 27-28 · 2015 @_saulmm
MADRID · NOV 27-28 · 2015 @_saulmm
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm == DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm DATA BINDING
MADRID · NOV 27-28 · 2015 @_saulmm DEPENDENCY INJECTION
MADRID · NOV 27-28 · 2015 @_saulmm Testing DEPENDENCY INJECTION
Low coupling MODULARITY
MADRID · NOV 27-28 · 2015 @_saulmm DEPENDENCY INJECTION
MADRID · NOV 27-28 · 2015 @_saulmm DEPENDENCY INJECTION
MADRID · NOV 27-28 · 2015 @_saulmm DEPENDENCY INJECTORS
MADRID · NOV 27-28 · 2015 @_saulmm DEPENDENCY INJECTION
MADRID · NOV 27-28 · 2015 @_saulmm : ) DEPENDENCY
INJECTION
MADRID · NOV 27-28 · 2015 @_saulmm : ) DEPENDENCY
INJECTION
MADRID · NOV 27-28 · 2015 @_saulmm ¿? DEPENDENCY INJECTION
MADRID · NOV 27-28 · 2015 @_saulmm DEPENDENCY INJECTION
MADRID · NOV 27-28 · 2015 @_saulmm ¿? DEPENDENCY INJECTION
MADRID · NOV 27-28 · 2015 @_saulmm ¿? DEPENDENCY INJECTION
MADRID · NOV 27-28 · 2015 @_saulmm ¿? DEPENDENCY INJECTION
MADRID · NOV 27-28 · 2015 @_saulmm … DEPENDENCY INJECTION
MADRID · NOV 27-28 · 2015 @_saulmm DEPENDENCY INJECTION -
Dagger 2 modules
MADRID · NOV 27-28 · 2015 @_saulmm DEPENDENCY INJECTION -
Dagger 2 modules
MADRID · NOV 27-28 · 2015 @_saulmm DEPENDENCY INJECTION -
Dagger 2 modules
MADRID · NOV 27-28 · 2015 @_saulmm RX Java
MADRID · NOV 27-28 · 2015 @_saulmm
MADRID · NOV 27-28 · 2015 @_saulmm Characters stream RESULTS
stream
MADRID · NOV 27-28 · 2015 @_saulmm (observable) (subscriber)
MADRID · NOV 27-28 · 2015 @_saulmm Observable SubscribeR RX
JAVA
MADRID · NOV 27-28 · 2015 @_saulmm Observable onNext(T t)
-> emits items onCompleted() -> no errors and no more emissions onError(Throwable t) -> an error has happened RX JAVA
MADRID · NOV 27-28 · 2015 @_saulmm Observable RX JAVA
fetchCharacters();
MADRID · NOV 27-28 · 2015 @_saulmm Observable Subscriber RX
JAVA onNext
MADRID · NOV 27-28 · 2015 @_saulmm Observable Subscriber RX
JAVA onError
MADRID · NOV 27-28 · 2015 @_saulmm Observable Subscriber RX
JAVA onCompleted
MADRID · NOV 27-28 · 2015 @_saulmm Observable Subscriber Scheduler
RX JAVA
MADRID · NOV 27-28 · 2015 @_saulmm RX JAVA
MADRID · NOV 27-28 · 2015 @_saulmm Observable Subscriber Scheduler
RX JAVA
MADRID · NOV 27-28 · 2015 @_saulmm Observable Subscriber Scheduler
RX JAVA
MADRID · NOV 27-28 · 2015 @_saulmm RX JAVA
MADRID · NOV 27-28 · 2015 @_saulmm RX JAVA OPERATORS
!!!
MADRID · NOV 27-28 · 2015 @_saulmm RX JAVA OPERATORS
!!!
MADRID · NOV 27-28 · 2015 @_saulmm RX JAVA OPERATORS
!!!
MADRID · NOV 27-28 · 2015 @_saulmm RX JAVA OPERATORS
!!!
MADRID · NOV 27-28 · 2015 @_saulmm REFERENCES
MADRID · NOV 27-28 · 2015 @_saulmm https:/ /github.com/saulmm/Avengers
MADRID · NOV 27-28 · 2015 @_saulmm References http:/ /www.slideshare.net/flipper83/forgetting-android
http:/ /pguardiola.com/blog/clean-architecture-part-1/ http:/ /fernandocejas.com/2014/09/03/architecting-android-the-clean-way/ http:/ /www.materialup.com/posts/marvel-avengers-app-animation-concept https:/ /speakerdeck.com/realm/functional-reactive-programming-in-java-by-juan-gomez-droidcon-nyc-2015 https:/ /speakerdeck.com/realm/bay-area-android-yigit-boyar-and-george-mount-data-binding-in-android-6-dot-0 http:/ /es.slideshare.net/PedroVicenteGmezSnch/dependency-injection-on-android-spanish https:/ /github.com/PaNaVTEC/Clean-Contacts
MADRID · NOV 27-28 · 2015 @_saulmm References http:/ /www.slideshare.net/jmpereirag/limpiando-espero-la-arquitectura-que-yo-quiero
MADRID · NOV 27-28 · 2015 @_saulmm THANKS !!