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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
[Kotlin Fest 2026] eBPF Tracing for Kotlin
takehaya
1
140
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
340
Crash Auto Pipelines
veronikapj
1
420
Growing PicoRuby's Ecosystem on ESP32
yuuu
2
130
Seven New Principles of Software Engineering
yegor256
0
500
Apple Intelligenceとオンデバイス時代の到来
yahir0
0
240
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
2.1k
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
protojson における文字化けの扱い
kazuki1023
0
430
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
210
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
170
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
6k
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
600
A Modern Web Designer's Workflow
chriscoyier
699
190k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1.1k
Accessibility Awareness
sabderemane
1
300
Reality Check: Gamification 10 Years Later
codingconduct
0
2.4k
The Language of Interfaces
destraynor
162
27k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Un-Boring Meetings
codingconduct
0
500
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
340
The Pragmatic Product Professional
lauravandoore
37
7.5k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k