Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Droidy Architectures in a messy world
Roberto Orgiu
December 02, 2017
Programming
0
32
Droidy Architectures in a messy world
Slides of the talk I gave at DevFest1 Veneto 2017
Roberto Orgiu
December 02, 2017
Tweet
Share
More Decks by Roberto Orgiu
See All by Roberto Orgiu
Wellness & Droid
tiwiz
0
10
Behind the curtains
tiwiz
0
11
The Importance of Being Tested
tiwiz
0
130
An Android Dev start to Kotlin MPP
tiwiz
0
53
Fantastic API and where to find them
tiwiz
0
26
Flipping the Koin @ GDG Dev Party
tiwiz
1
27
Flipping the Koin
tiwiz
2
88
Trip into the async world @ NYC Kotlin Meetup
tiwiz
0
49
Trip into the async world
tiwiz
1
62
Other Decks in Programming
See All in Programming
質とスピード(2022春版、質疑応答用資料付き) / Quality and Speed 2022 Spring Edition
twada
PRO
28
18k
Kueue入門/Kueue Introduction
bells17
0
510
Micro Frontends with Module Federation: Beyond the Basics @codecrafts2022
manfredsteyer
PRO
0
100
Is Rust a great language for building Kubernetes ecosystem
deepu105
0
140
Android Architecture Design With Koin
agiuliani
0
230
Jakarta EE 10 is Coming Your Way
ivargrimstad
0
2.6k
Nix for Scala folks
kubukoz
0
130
Monadic Java
mariofusco
4
260
tfcon2022_Web3Dひとめぐり.pdf
emadurandal
0
960
あなたの会社の古いシステム、なんとかしませんか?~システム刷新から考えるDX化への道筋とバリエーション~/webinar20220420-systems
grapecity_dev
0
130
GraphQL+KMM開発でわかったこと / What we learned from GraphQL+KMM development
kubode
0
130
CIでAndroidUIテストの様子を録画してみた
mkeeda
0
180
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
56
6.4k
Music & Morning Musume
bryan
35
4.1k
A better future with KSS
kneath
225
15k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
7
1k
How GitHub Uses GitHub to Build GitHub
holman
465
280k
Stop Working from a Prison Cell
hatefulcrawdad
261
17k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
15
910
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1M
Building a Scalable Design System with Sketch
lauravandoore
447
30k
Code Reviewing Like a Champion
maltzj
506
37k
WebSockets: Embracing the real-time Web
robhawkes
57
5k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
11
4.6k
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?