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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
5.9k
Android Wear vs. Tizen (Apr. 2015)
saulmm
3
1.4k
From Material Design to Android Wear
saulmm
5
690
A glance to android wear
saulmm
3
320
Other Decks in Programming
See All in Programming
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
140
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
320
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
4.1k
CLIであることを活かしたGitHub Copilot CLI活用術 / GitHub Copilot CLI Pro Tips & Tricks
nao_mk2
1
1.2k
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
590
Oxlintのカスタムルールの現況
syumai
5
1k
エージェンティックRAGにAWSで入門しよう!
har1101
7
1.1k
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.1k
Spring Security 実践 ─ GraphQL APIで実務に役立つ 認証・認可 を学ぶ
wagyu
0
150
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
210
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
2.4k
Swiftのレキシカルスコープ管理
kntkymt
0
210
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
940
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
820
Utilizing Notion as your number one productivity tool
mfonobong
4
310
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
RailsConf 2023
tenderlove
30
1.5k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
290
HDC tutorial
michielstock
2
690
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
220
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
600
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
The Mindset for Success: Future Career Progression
greggifford
PRO
0
350
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 !!