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
Design & be reactive on Android with Iron Man i...
Search
Saul Molinero
November 27, 2015
Programming
950
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
Transcript
102 slides
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 !!
More Decks by Saul Molinero
See All by Saul Molinero
Hidden gems and wats for the Modern android Developer
saulmm
0
230
Hidden gems and wats for modern Android Development
saulmm
8
950
Android Dev Tools & Workflows
saulmm
3
510
Espresso Workshop, UI Testing en Android
saulmm
2
160
Android Dev Tools & Workflows
saulmm
0
270
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
720
A glance to android wear
saulmm
3
340
Other Decks in Programming
See All in Programming
Distance field of Julia set
kinakomoti321
0
320
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
GraphQL の onError と Nullability のこれから
quramy
0
210
オーケストレーション記述言語 Katari
yukikurage
0
250
DroidKnights 2026 Android A2UI Jetpack Compose 기반의 안전한 AI UI 렌더링 - 박제창
itsmedreamwalker
1
220
Performance Optimization With LLMs
xleitix
0
250
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
330
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
1.2k
Next.js: The final boss of Web Performance
guaca
0
400
AI時代のIaC入門 〜なぜインフラをコードで管理したいのか?〜 / Introduction to IaC in the AI Era
akihisaikeda
6
1.5k
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
340
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
330
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
670
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
What does AI have to do with Human Rights?
axbom
PRO
1
2.5k
Ruling the World: When Life Gets Gamed
codingconduct
0
440
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.7k
We Have a Design System, Now What?
morganepeng
55
8.4k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
Balancing Empowerment & Direction
lara
6
1.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
560
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
280
Speed Design
sergeychernyshev
33
2.2k