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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Roberto Orgiu
December 02, 2017
Programming
49
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
140
Behind the curtains
tiwiz
0
89
The Importance of Being Tested
tiwiz
0
450
An Android Dev start to Kotlin MPP
tiwiz
0
210
Fantastic API and where to find them
tiwiz
0
100
Flipping the Koin @ GDG Dev Party
tiwiz
1
79
Flipping the Koin
tiwiz
2
180
Trip into the async world @ NYC Kotlin Meetup
tiwiz
0
130
Trip into the async world
tiwiz
1
150
Other Decks in Programming
See All in Programming
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
190
Build-to-own AI: Agentic Development for Humans
inesmontani
PRO
0
120
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
160
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
560
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.7k
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
190
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.3k
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
230
Built Our Own Background Agent at LayerX #aidevex_findy
layerx
PRO
9
3.8k
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
200
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
210
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
560
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
880
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
230
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
420
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Skip the Path - Find Your Career Trail
mkilby
1
170
WCS-LA-2024
lcolladotor
0
770
Utilizing Notion as your number one productivity tool
mfonobong
4
480
Git: the NoSQL Database
bkeepers
PRO
432
67k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
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?