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アプリにおける複雑な画面と向き合うための設計戦略
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kazakago
November 14, 2018
Programming
1
320
Androidアプリにおける複雑な画面と向き合うための設計戦略
kazakago
November 14, 2018
Tweet
Share
More Decks by kazakago
See All by kazakago
with_Android版における今までのアーキテクチャとこれから.pdf
kazakago
2
320
OpenSTFによる検証端末管理とその先の一手
kazakago
0
290
中規模以上のアプリ開発におけるCIレシピとリリースフロー戦略
kazakago
6
9.4k
Annotation Processingを 駆使したコード生成で ボイラープレートコードを駆逐しよう!
kazakago
2
7.4k
お う ち ハ ッ ク
kazakago
0
220
モバイルアプリ開発におけるブランチ運用でこの先生きのこるには
kazakago
0
130
まだJavaで消耗してるの?Kotlinのすすめ
kazakago
0
200
Androidでユーザーの大切なデータを預かる
kazakago
0
1.1k
Other Decks in Programming
See All in Programming
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.2k
AtCoder Conference 2025
shindannin
0
1k
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
CSC307 Lecture 07
javiergs
PRO
0
540
今から始めるClaude Code超入門
448jp
7
8k
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
170
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
220
dchart: charts from deck markup
ajstarks
3
990
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
130
Basic Architectures
denyspoltorak
0
650
Package Management Learnings from Homebrew
mikemcquaid
0
170
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
170
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
220
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
280
Navigating Weather and Climate Data
rabernat
0
89
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
270
Designing Powerful Visuals for Engaging Learning
tmiket
0
210
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
60
Everyday Curiosity
cassininazir
0
120
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
53
Accessibility Awareness
sabderemane
0
47
Testing 201, or: Great Expectations
jmmastey
46
8k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
Transcript
"OESPJEΞϓϦʹ͓͚Δ ෳࡶͳը໘ͱ͖߹͏ ͨΊͷઃܭઓུ גࣜձࣾΠάχεXJUIࣄۀ෦ ాଜݠհ!,B[B,BHP
• ాଜ ݠհ @KazaKago • גࣜձࣾΠάχε • with Android൛ΤϯδχΞ •
iOSग़དྷΔΑʂ
None
ϚονϯάαʔϏε ͋Δ͋Δ
ϓϩϑΟʔϧ͕ ͍ʂʂʂ
ϝΠϯࣸਅ αϒࣸਅ ࣗݾհจ ग़ झຯ ݁ࠗ؍ ͻͱ͜ͱ ډॅ ݂ӷܕ ݁ࠗྺ
ٳ ऩ ֶྺ ৬ۀ ܑఋ࢞ຓ ੑ֨
ϝΠϯࣸਅ ϛογϣϯ ࣗݾհ جຊϓϩϑΟʔϧ ͻͱ͜ͱ ৄࡉϓϩϑΟʔϧ அ݁Ռ αϒࣸਅ ΈΧʔυϕετ ΈΧʔυ
՝ۚϦετΞ ૬ख͔Βݟͨը໘
ͯΜ͜Γʂʂ
͜ΕʹΑͬͯ ։ൃ࣌ʹԿ͕ى͖Δ͔
ͦ͏
ΈΜͳͷ༑ୡ 'BU"DUJWJUZͷొʂ ʢ͍ΘΏΔ'BU$POUSPMMFSঢ়ଶʣ
None
XJUIͷϓϩϑΟʔϧը໘ͷίʔυ MyProfileTopPresenter … 875 line MyProfileTopActivity … 1712 line =
2587 line !!!
ͦΕ͡ΌؼΓ·͢Ͷ ͓ർΕ༷Ͱͨ͠ ͬͯݴ͍ͨ͘ͳΔ ʢʢʢʢ
ͦΜͳંɺ ͜ͷը໘ͷશ໘վम͕ ͍ࠐΜͩ
͜ΕϦϑΝΫλϦϯά νϟϯεͳͷͰʜʁ
৽༷
• ཁૉͷࣗମมΘΒͣ • ը໘ߏͷมߋʹΑͬͯ͜ͷը໘ͷϩδοΫ Ή͠Ζ૿͑ͨ • ݪܕ͕΄΅ͳ͘ɺҰ͔Β࡞Γ͠ • ֓೦্ͷϓϩϑΟʔϧ্ͷηΫγϣϯ͕ଘࡏ͢ Δ
• ୯७ʹίʔυྔΛݮΒ͢ͷ͍͠
վमํ
• ֓೦্ͷηΫγϣϯผʹFragmentʹղ • ActivityFragmentΛஔ͢Δ͚ͩʹప͢Δ • MVP -> MVVMύλʔϯͷҠߦ • Android
Architecture Componentsͷ ViewModel, LiveDataͷ࠾༻ • Java -> KotlinͷҠߦ • CleanArchitectureͷపఈʹΑΔPresentation ͷϩδοΫͷഉআ • Kotlin CoroutinesʹΑΔasync/awaitͷ࠾༻
MyProfileTopActionBarFragment MyProfileTopBasicInfoFragment MyProfileTopEventFragment MyProfileTopKonomiBestFragment MyProfileTopKonomiFragment MyProfileTopMainPhotoFragment MyProfileTopMissionFragment MyProfileTopPersonalityFragment MyProfileTopSelfIntroductionFragment MyProfileTopSubPhotoFragment
͓ޓ͍ͷ'SBHNFOUͷσʔλͷΓऔΓ 7JFX.PEFMͷ-JWF%BUBܦ༝ͰͷΈߦ͏ Fragment Fragment Fragment Fragment Activity ViewModel LiveData Presentation
Layer Domain Layer UseCase UseCase UseCase UseCase
࠷ऴతʹ Ͳ͏ͳ͔ͬͨ
MyProfileTopPresenter … 875 line -> MyProfileTopActivity … 1712 line ->
MyProfileTop**Fragment … MyProfileTopViewModel … 7JFX.PEFMߦͦ͜ଟ͍͕ɺ΄΅ͯ͢ͷ ϩδοΫΛυϝΠϯҠৡ͍ͯ͠ΔͨΊɺ ΄ͱΜͲͷϝιου͕ߦҎԼʹ͑ΒΕͨ 242 line! Deleted! 168 average line! 936 line
ॕʂ'BU"DUJWJUZʂ