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
300
Androidアプリにおける複雑な画面と向き合うための設計戦略
kazakago
November 14, 2018
Tweet
Share
More Decks by kazakago
See All by kazakago
with_Android版における今までのアーキテクチャとこれから.pdf
kazakago
2
300
OpenSTFによる検証端末管理とその先の一手
kazakago
0
270
中規模以上のアプリ開発におけるCIレシピとリリースフロー戦略
kazakago
6
8.7k
Annotation Processingを 駆使したコード生成で ボイラープレートコードを駆逐しよう!
kazakago
2
6.7k
お う ち ハ ッ ク
kazakago
0
200
モバイルアプリ開発におけるブランチ運用でこの先生きのこるには
kazakago
0
120
まだJavaで消耗してるの?Kotlinのすすめ
kazakago
0
180
Androidでユーザーの大切なデータを預かる
kazakago
0
1k
Other Decks in Programming
See All in Programming
“技術カンファレンスで何か変わる?” ──RubyKaigi後の自分とチームを振り返る
ssagara00
0
160
OpenTelemetryで始めるベンダーフリーなobservability / Vendor-free observability starting with OpenTelemetry
seike460
0
130
Orleans + Sekiban + SignalR でリアルタイムWeb作ってみた
tomohisa
0
260
AI時代のリアーキテクチャ戦略 / Re-architecture Strategy in the AI Era
dachi023
0
150
Flutterでllama.cppをつかってローカルLLMを試してみた
sakuraidayo
0
160
プロフェッショナルとしての成長「問題の深掘り」が導く真のスキルアップ / issue-analysis-and-skill-up
minodriven
8
2k
note の Elasticsearch 更新系を支える技術
tchov
9
3.7k
ASP.NETアプリケーションのモダナイゼーションについて
tomokusaba
0
280
クラシルリワードにおける iOSアプリ開発の取り組み
funzin
1
210
監視 やばい
syossan27
12
10k
インプロセスQAにおいて大事にしていること / In-process QA Meetup
medley
0
190
クラス設計の手順
akikogoto
0
130
Featured
See All Featured
The Invisible Side of Design
smashingmag
299
50k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.7k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
Embracing the Ebb and Flow
colly
85
4.7k
Automating Front-end Workflow
addyosmani
1370
200k
Faster Mobile Websites
deanohume
307
31k
A Tale of Four Properties
chriscoyier
159
23k
Git: the NoSQL Database
bkeepers
PRO
430
65k
A better future with KSS
kneath
239
17k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
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ʂ