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
Droidy Architectures in a messy world
Search
Roberto Orgiu
December 02, 2017
Programming
45
0
Share
Droidy Architectures in a messy world
Slides of the talk I gave at DevFest1 Veneto 2017
Roberto Orgiu
December 02, 2017
More Decks by Roberto Orgiu
See All by Roberto Orgiu
Wellness & Droid
tiwiz
0
130
Behind the curtains
tiwiz
0
72
The Importance of Being Tested
tiwiz
0
430
An Android Dev start to Kotlin MPP
tiwiz
0
190
Fantastic API and where to find them
tiwiz
0
84
Flipping the Koin @ GDG Dev Party
tiwiz
1
78
Flipping the Koin
tiwiz
2
170
Trip into the async world @ NYC Kotlin Meetup
tiwiz
0
120
Trip into the async world
tiwiz
1
150
Other Decks in Programming
See All in Programming
NakouPAY説明用
annouim0
0
240
TiDBのアーキテクチャから学ぶ分散システム入門 〜MySQL互換のNewSQLは何を解決するのか〜 / tidb-architecture-study
dznbk
1
180
クラウドネイティブなエンジニアに向ける Raycastの魅力と実際の活用事例
nealle
2
200
VueエンジニアがReactを触って感じた_設計の違い
koukimiura
0
180
tRPCの概要と少しだけパフォーマンス
misoton665
2
210
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
290
Offline should be the norm: building local-first apps with CRDTs & Kotlin Multiplatform
renaudmathieu
0
220
How Swift's Type System Guides AI Agents
koher
0
270
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
790
ドメインイベントでビジネスロジックを解きほぐす #phpcon_odawara
kajitack
3
790
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
260
おれのAgentic Coding 2026/03
tsukasagr
1
150
Featured
See All Featured
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
270
Designing for Performance
lara
611
70k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
510
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
99
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
110
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.5k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
340
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.2k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
340
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
440
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Transcript
Droidy in a messy Architectures world
@_tiwiz
Introducing Architecture Components…
None
Expected reaction
YOU ARE NOT FORCED TO USE THEM ALL AT THE
SAME TIME. Someone, somewhere
None
Other expected reaction
LIVEDATA
veryLongCalculation()
veryLongCalculation() expecting result?
veryLongCalculation()
veryLongCalculation() synchronous
veryLongCalculation() synchronous
veryLongCalculation()
veryLongCalculation() listener
veryLongCalculation()
veryLongCalculation() .observe()
veryLongCalculation() .observe()
ROOM
list_of_cities.json
list_of_cities.json List<City>
list_of_cities.json List<City> $
list_of_cities.json List<City> Cache
List<City> Cache
List<City> Cache $
VIEWMODEL
getDataFromBackend()
getDataFromBackend() dataPresenter
getDataFromBackend() dataPresenter ?
getDataFromBackend() dataPresenter viewModel
getDataFromBackend() dataPresenter viewModel !
LIFECYCLE
clientApi.onCreate() clientApi.onStart() clientApi.onStop() clientApi.onDestroy()
clientApi.onCreate() clientApi.onStart() clientApi.onStop() clientApi.onDestroy() Activity
clientApi.onCreate() clientApi.onStart() clientApi.onStop() clientApi.onDestroy() Activity
clientApi.onCreate() clientApi.onStart() clientApi.onStop() clientApi.onDestroy() LifecycleObserver Activity
clientApi.onCreate() clientApi.onStart() clientApi.onStop() clientApi.onDestroy() LifecycleObserver Activity
clientApi.onCreate() clientApi.onStart() clientApi.onStop() clientApi.onDestroy() LifecycleObserver Activity
None
ProcessLifecycleOwner
None
None
WebView
WebView
ON_START
ON_START Save system status Apply app status (system wide)
ON_STOP
ON_STOP Load system status Apply back system status
PAGINATION
List<City>
List<City> RecyclerView
List<City> RecyclerView $
List<City>
List<City> PagedListAdapter
List<City> PagedListAdapter no lag!
List<City> PagedListAdapter no lag! better UX!
None
None
open.nytimes.com @nytdev github.com/NYTimes developers.nytimes.com
Thank You
Q?