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
930
Android Dev Tools & Workflows
saulmm
3
490
Espresso Workshop, UI Testing en Android
saulmm
2
140
Android Dev Tools & Workflows
saulmm
0
260
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
VibeCodingからAgenticWorkflowへ
starfish719
0
500
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
210
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
160
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
500
バグを直したら useEffect が消えた
colorful12
2
150
yield再入門 #phpcon
o0h
PRO
0
1.1k
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
730
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
330
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
510
「人を評価する AI」の設計と実装
ryoyanara
0
210
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
490
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
240
Featured
See All Featured
Designing for Timeless Needs
cassininazir
1
440
The Spectacular Lies of Maps
axbom
PRO
1
910
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
650
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
300
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
390
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.1k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
430
The Mindset for Success: Future Career Progression
greggifford
PRO
0
450
Documentation Writing (for coders)
carmenintech
77
5.5k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
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 !!