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
98
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
IPA&AWSダブル全冠が明かす、人生を変えた勉強法のすべて
iwamot
PRO
2
140
データグループにおけるフロントエンド開発
lycorptech_jp
PRO
1
100
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
27k
2025-07-06 QGIS初級ハンズオン「はじめてのQGIS」
kou_kita
0
170
React開発にStorybookとCopilotを導入して、爆速でUIを編集・確認する方法
yu_kod
1
280
Claude Code に プロジェクト管理やらせたみた
unson
6
4.1k
敢えて生成AIを使わないマネジメント業務
kzkmaeda
2
450
面倒な作業はAIにおまかせ。Flutter開発をスマートに効率化
ruideengineer
0
260
AI時代の開発生産性を加速させるアーキテクチャ設計
plaidtech
PRO
3
160
ビズリーチにおけるリアーキテクティング実践事例 / JJUG CCC 2025 Spring
visional_engineering_and_design
1
120
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
4
13k
怖くない!はじめてのClaude Code
shinya337
0
400
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
72
4.9k
Thoughts on Productivity
jonyablonski
69
4.7k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
A better future with KSS
kneath
238
17k
Practical Orchestrator
shlominoach
189
11k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
6
300
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Six Lessons from altMBA
skipperchong
28
3.9k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.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