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
0
24k
Android @ Scale
5 minute talk at Shibuya APK
rallat
April 13, 2018
Tweet
Share
More Decks by rallat
See All by rallat
Effective java 2 Effective Kotlin short version
rallat
0
96
Effective Java to Effective Kotlin
rallat
8
1.3k
Android at Scale in Mercari
rallat
0
130
App development pragmatic best practices
rallat
0
170
Droidkaigi Smoke and Mirrors
rallat
0
98
Smoke and mirrors
rallat
2
610
AndroidDevLikeAProDroidconSF
rallat
17
3.9k
Android development like a pro
rallat
77
14k
Building First Class Android Sdks
rallat
7
710
Other Decks in Technology
See All in Technology
(非公式) AWS Summit Japan と 海浜幕張 の歩き方 2025年版
coosuke
PRO
1
340
Wasm元年
askua
0
100
Кто отправит outbox? Валентин Удальцов, автор канала Пых
lamodatech
0
290
Clineを含めたAIエージェントを 大規模組織に導入し、投資対効果を考える / Introducing AI agents into your organization
i35_267
4
1.4k
初めてのAzure FunctionsをClaude Codeで作ってみた / My first Azure Functions using Claude Code
hideakiaoyagi
1
190
ユーザーのプロフィールデータを活用した推薦精度向上の取り組み
yudai00
0
490
Amazon ECS & AWS Fargate 運用アーキテクチャ2025 / Amazon ECS and AWS Fargate Ops Architecture 2025
iselegant
16
4.7k
第9回情シス転職ミートアップ_テックタッチ株式会社
forester3003
0
150
Oracle Cloud Infrastructure:2025年6月度サービス・アップデート
oracle4engineer
PRO
2
140
米国国防総省のDevSecOpsライフサイクルをAWSのセキュリティサービスとOSSで実現
syoshie
2
820
新卒3年目の後悔〜機械学習モデルジョブの運用を頑張った話〜
kameitomohiro
0
390
LinkX_GitHubを基点にした_AI時代のプロジェクトマネジメント.pdf
iotcomjpadmin
0
160
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
16
940
Building Applications with DynamoDB
mza
95
6.5k
Into the Great Unknown - MozCon
thekraken
39
1.9k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Optimizing for Happiness
mojombo
379
70k
Practical Orchestrator
shlominoach
188
11k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Why You Should Never Use an ORM
jnunemaker
PRO
56
9.4k
It's Worth the Effort
3n
184
28k
The Cult of Friendly URLs
andyhume
79
6.4k
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