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
Android @ Scale
Search
rallat
April 13, 2018
Technology
24k
0
Share
Android @ Scale
5 minute talk at Shibuya APK
rallat
April 13, 2018
More Decks by rallat
See All by rallat
Effective java 2 Effective Kotlin short version
rallat
0
120
Effective Java to Effective Kotlin
rallat
8
1.4k
Android at Scale in Mercari
rallat
0
150
App development pragmatic best practices
rallat
0
190
Droidkaigi Smoke and Mirrors
rallat
0
120
Smoke and mirrors
rallat
2
660
AndroidDevLikeAProDroidconSF
rallat
17
4k
Android development like a pro
rallat
77
14k
Building First Class Android Sdks
rallat
7
730
Other Decks in Technology
See All in Technology
電子辞書Brainをネットに繋げてみた(自力編)
raspython3
0
220
管理アカウント単一運用からAWS Organizationsに移行するの大変で滅
hiramax
0
270
Strands Agents超入門
kintotechdev
1
130
Javaコミュニティをもっと楽しむための9箇条
takasyou
0
290
NFLコンペ2026 解法
lycorptech_jp
PRO
0
120
開発を止めない CI/CD ~CI Visibilityによる継続的最適化~
pensuke628
0
110
GitHub Copilot CLI の Rubber Duck 機能を使ってコーディングの品質をあげよう #techbaton_findy
stefafafan
2
1.1k
20260528_生成AIを専属DSに_Howの次にすべきことを考える
doradora09
PRO
0
220
AI活用の格差をなくす:チーム全体のAI開発生産性を底上げする方法
moongift
PRO
1
110
食べログのサーキットブレーカー導入を振り返って
atpons
0
140
さきさん文庫の書籍ができるまで
sakiengineer
0
270
エンジニアは生成AIと どのように向き合うべきか? ことばの意味という観点から
verypluming
3
260
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Typedesign – Prime Four
hannesfritz
42
3k
Code Review Best Practice
trishagee
74
20k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
540
Utilizing Notion as your number one productivity tool
mfonobong
4
310
Ethics towards AI in product and experience design
skipperchong
2
290
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
310
Designing Experiences People Love
moore
143
24k
HDC tutorial
michielstock
2
680
From π to Pie charts
rasagy
0
190
Transcript
Android @ Scale
Israel Ferrer Camacho @rallat
MV
MV WW
WW = “whatever works”
Define Principles
Apply Principles
with Consistency Apply Principles
Principles must evolve
Principles?
Dependency Injection
Dependency Injection
Dependency Injection Allows to declare dependencies of an object upfront.
Dependency Injection Allows to declare dependencies of an object upfront.
This helps to easily mock dependencies and unit test the object
Single Responsibility
None
View layer
UI Manipulation
UI Manipulation
Logic layer UI Manipulation
Screen Behavior UI Manipulation
Screen Behavior UI Manipulation
Screen Behavior UI Manipulation Data layer
Screen Behavior UI Manipulation Repository Interface Network DB Memory cache
Complex screens
Complex screens Multiple logic layer components each with a single
responsibility.
Complex screens Multiple logic layer components each with a single
responsibility. Logic layer components can subscribe to events tied to their logic (E.g. Rx, EventBus)
Shared logic
Shared logic If the view is shared you can create
a 3 layered complete feature component.
Shared logic If the view is shared you can create
a 3 layered complete feature component. If the view is not share then add another layer…
Data layer View layer Logic layer
Use cases Screen behavior View layer Data layer
Screen behavior View layer Data layer
Screen behavior View layer Data layer Sort Items
Screen behavior View layer Data layer Sort Items Buy Item
Screen behavior View layer Data layer Sort Items Buy Item
Like Item
Screen behavior View layer Data layer Sort Items Buy Item
Like Item Comment Item
Goal
Goal Each layer has a reason to exist.
Goal Each layer has a reason to exist. Consistency in
codebase
Goal Each layer has a reason to exist. Consistency in
codebase Testable logic layer
Goal Each layer has a reason to exist. Consistency in
codebase Testable logic layer Reusable of logic layer
Do Not Over-Engineer
Do Not Over-Engineer Libraries, patterns are tools not goals
Do Not Over-Engineer Libraries, patterns are tools not goals The
goal is to ship and maintain speed of development
Questions? @rallat