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
Droidy Architectures in a messy world
Search
Roberto Orgiu
December 02, 2017
Programming
53
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
Transcript
62 slides
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?
More Decks by Roberto Orgiu
See All by Roberto Orgiu
Wellness & Droid
tiwiz
0
150
Behind the curtains
tiwiz
0
100
The Importance of Being Tested
tiwiz
0
470
An Android Dev start to Kotlin MPP
tiwiz
0
220
Fantastic API and where to find them
tiwiz
0
120
Flipping the Koin @ GDG Dev Party
tiwiz
1
86
Flipping the Koin
tiwiz
2
190
Trip into the async world @ NYC Kotlin Meetup
tiwiz
0
140
Trip into the async world
tiwiz
1
170
Other Decks in Programming
See All in Programming
ローカルLLMの基本と近況 2611 / Local LLM basics and recent situation 2611
kishida
2
440
느린 네트워크와 저사양 디바이스 사용자를 위한 웹뷰 로딩 시간 개선기
kmkim
1
240
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
210
地方こそサーバーレス — 10年続けた、顔が見えるチームで確かな基盤を / Serverless Matters Most in Regional Areas — 10 Years of Building Reliable Foundations with Close-Knit Teams
seike460
PRO
1
450
DroidKnights 2026 Android A2UI Jetpack Compose 기반의 안전한 AI UI 렌더링 - 박제창
itsmedreamwalker
1
230
あなたはMCPの機能を、まだ知らない。
4geru
1
140
動画プレイヤーはなぜカクつくのか 〜Flutterのレンダリングとネイティブの境界を解剖する〜
naruogram
0
340
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
340
Lambda durable functionsでHuman in the Loopを楽に…楽に……
har1101
2
320
自作Discord音声botをLambda MicroVMsに移行した話 / Migrating My Discord Voice Bot to Lambda MicroVMs
akihisaikeda
1
330
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2.1k
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
15
12k
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Why You Should Never Use an ORM
jnunemaker
PRO
61
10k
Optimising Largest Contentful Paint
csswizardry
37
4k
Producing Creativity
orderedlist
PRO
348
41k
Six Lessons from altMBA
skipperchong
29
4.6k
Embracing the Ebb and Flow
colly
88
5.2k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.9k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
480
We Have a Design System, Now What?
morganepeng
55
8.4k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
370