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
270
Androidアプリにおける複雑な画面と向き合うための設計戦略
kazakago
November 14, 2018
Tweet
Share
More Decks by kazakago
See All by kazakago
with_Android版における今までのアーキテクチャとこれから.pdf
kazakago
2
270
OpenSTFによる検証端末管理とその先の一手
kazakago
0
220
中規模以上のアプリ開発におけるCIレシピとリリースフロー戦略
kazakago
6
7.4k
Annotation Processingを 駆使したコード生成で ボイラープレートコードを駆逐しよう!
kazakago
2
5.5k
お う ち ハ ッ ク
kazakago
0
170
モバイルアプリ開発におけるブランチ運用でこの先生きのこるには
kazakago
0
90
まだJavaで消耗してるの?Kotlinのすすめ
kazakago
0
170
Androidでユーザーの大切なデータを預かる
kazakago
0
950
Other Decks in Programming
See All in Programming
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
25
7.7k
DDD, necessary but insufficient: physical design principles for microservices
cer
PRO
0
2.2k
オブジェクトしこう
okuramasafumi
2
130
Why 1 + 1 = 2 in Swift?
1plus4
1
250
とにかくHTTP3をライトニングに話す / Anyway, I'll talk to Lightning about HTTP3.
seike460
PRO
0
120
Go1.22からの疑似乱数生成器について/go-122-pseudo-random-generator
convto
1
160
両面どころかインフラもTSでできるよ ~ 全方位TypeScriptによるプロダクト開発 ~
myfinder
9
2.6k
object-oriented-conference-2024
fuwasegu
6
2k
Data Contracts In Practice With Debezium and Apache Flink (Kafka Summit London)
gunnarmorling
2
280
Cloud RunとCloud PubSubでサーバレスなデータ基盤2024 with Terraform / Cloud Run and PubSub with Terraform
shinyorke
7
1.9k
incrementalモデルの理解を深める
ikkimiyazaki
2
640
App Router への移行は「改善」となり得るのか?/ Can migration to App Router be an improvement
takefumiyoshii
1
140
Featured
See All Featured
Web Components: a chance to create the future
zenorocha
304
41k
Pencils Down: Stop Designing & Start Developing
hursman
115
11k
How To Stay Up To Date on Web Technology
chriscoyier
781
250k
A Tale of Four Properties
chriscoyier
150
22k
Testing 201, or: Great Expectations
jmmastey
27
6.3k
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
The Language of Interfaces
destraynor
150
23k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
101
6.6k
Unsuck your backbone
ammeep
661
56k
4 Signs Your Business is Dying
shpigford
174
21k
From Idea to $5000 a Month in 5 Months
shpigford
376
45k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
28
5.9k
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ʂ