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
kazakago
November 14, 2018
Programming
1
310
Androidアプリにおける複雑な画面と向き合うための設計戦略
kazakago
November 14, 2018
Tweet
Share
More Decks by kazakago
See All by kazakago
with_Android版における今までのアーキテクチャとこれから.pdf
kazakago
2
310
OpenSTFによる検証端末管理とその先の一手
kazakago
0
280
中規模以上のアプリ開発におけるCIレシピとリリースフロー戦略
kazakago
6
9k
Annotation Processingを 駆使したコード生成で ボイラープレートコードを駆逐しよう!
kazakago
2
7k
お う ち ハ ッ ク
kazakago
0
210
モバイルアプリ開発におけるブランチ運用でこの先生きのこるには
kazakago
0
130
まだJavaで消耗してるの?Kotlinのすすめ
kazakago
0
180
Androidでユーザーの大切なデータを預かる
kazakago
0
1k
Other Decks in Programming
See All in Programming
Rancher と Terraform
fufuhu
0
100
開発チーム・開発組織の設計改善スキルの向上
masuda220
PRO
13
7.5k
Introduction to Git & GitHub
latte72
0
120
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
260
Understanding Ruby Grammar Through Conflicts
yui_knk
1
120
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
980
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
490
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
910
オホーツクでコミュニティを立ち上げた理由―地方出身プログラマの挑戦 / TechRAMEN 2025 Conference
lemonade_37
2
490
一人でAIプロダクトを作るための工夫 〜技術選定・開発プロセス編〜 / I want AI to work harder
rkaga
13
2.8k
TanStack DB ~状態管理の新しい考え方~
bmthd
2
330
TDD 実践ミニトーク
contour_gara
0
140
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
820
The Pragmatic Product Professional
lauravandoore
36
6.8k
Become a Pro
speakerdeck
PRO
29
5.5k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
A better future with KSS
kneath
239
17k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Site-Speed That Sticks
csswizardry
10
780
Testing 201, or: Great Expectations
jmmastey
45
7.6k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
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ʂ