Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Androidアプリにおけるモジュラライズの進め方
Search
Young
February 18, 2019
Programming
0
240
Androidアプリにおけるモジュラライズの進め方
社内勉強会 #深いい勉強会 の資料です
Young
February 18, 2019
Tweet
Share
More Decks by Young
See All by Young
GitbookからOpenApiへのAPIドキュメント移行
akihitookada
0
95
Navigation ComponentとFluxをnanaに導入した
akihitookada
0
98
MotionLayoutを使ってクリスマスなアプリを作った
akihitookada
0
160
OrmaからRoomに移行する 2nd Season
akihitookada
1
770
ミャンマーのすゝめ
akihitookada
2
97
Android版 nanaとデータの永続化とDatabase
akihitookada
2
220
Android Team @ nana music, Inc.
akihitookada
0
96
ConstraintLayoutを理解する
akihitookada
0
110
OpenSTFとJenkinsで 社内のAndroid端末を有効活用する
akihitookada
0
290
Other Decks in Programming
See All in Programming
ローカルLLMを⽤いてコード補完を⾏う VSCode拡張機能を作ってみた
nearme_tech
PRO
0
140
AIエージェントの設計で注意するべきポイント6選
har1101
5
2.1k
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
120
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
0
260
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
140
ゆくKotlin くるRust
exoego
1
150
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
510
AIコーディングエージェント(Gemini)
kondai24
0
260
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
580
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
950
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
130
Navigating Dependency Injection with Metro
l2hyunwoo
1
170
Featured
See All Featured
Building an army of robots
kneath
306
46k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
29
Writing Fast Ruby
sferik
630
62k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
0
31
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
27
What's in a price? How to price your products and services
michaelherold
246
13k
My Coaching Mixtape
mlcsv
0
13
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
400
Paper Plane (Part 1)
katiecoart
PRO
0
1.9k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
What does AI have to do with Human Rights?
axbom
PRO
0
1.9k
Building Applications with DynamoDB
mza
96
6.8k
Transcript
AndroidΞϓϦʹ͓͚Δ ϞδϡϥϥΠζͷਐΊํ
Young @ nana music Android Engineer
ϞδϡϥϥΠζͱ • ΞϓϦͷϓϩδΣΫτΛػೳతͳ୯ҐͰϞ δϡʔϧԽͯ͠ߏ͢Δ͜ͱ • ΞϓϦ͕ߴػೳʹͳΓɺίʔυ͕େ͖͘ͳΔ ʹͭΕɺڞ௨Խ͞Ε࠶ར༻ੑͷߴ͍ίʔυͷ ॏཁੑ͕ߴ·ͬͯ͘Δ
Ϟδϡʔϧͱ • Ϟδϡʔϧͱιʔε ϑΝΠϧͱϏϧυઃఆ ͷ·ͱ·Γͷ͜ͱ • ϞδϡʔϧʹΑͬͯػೳ͝ͱʹϓϩδΣΫτΛ ׂͰ͖Δ • ϓϩδΣΫτʹ
1 ͭ·ͨଟͷϞδϡʔ ϧΛؚΊΔ͜ͱ͕Ͱ͖Δ
ϝϦοτͱσϝϦοτ
ϞδϡϥϥΠζͷϝϦοτ • ઃܭ͕͖Ε͍ʹͳΔ • ࠶ར༻ੑΛߴΊΔ͜ͱ͕Ͱ͖Δ • ػೳΛΓ͠Ͱ͖Δ
ઃܭ͕͖Ε͍ʹͳΔ • Ϟδϡʔϧ॥ࢀরΛߦ͏͜ͱ͕Ͱ͖ͳ͍ ͨΊɺίʔυ͕͋Δ͖ॴʹॻ͔ͳ͚Ε ͍͚ͳ͘ͳΔ • ਖ਼͍͠ઃܭ͕Ͱ͖ΔΑ͏ʹͳΔ
• ҟͳΔΞϓϦͰɺػೳΛڞ༗Ͱ͖Δ • ೝূػೳΛڞ௨Խ • ΤϑΣΫτͳͲͷԻॲཧΛڞ௨Խ ࠶ར༻ੑΛߴΊΔ͜ͱ͕Ͱ͖Δ
ػೳΛΓ͠Ͱ͖Δ • ϦϦʔε͔Β֎͢ • ϦϙδτϦʹͨ͠··ɺsettings.gradleͰϞδϡʔϧΛআ ֎ • ઌʹμϯϩʔυͯ͠ར༻ • Instant
Apps • ͋ͱͰμϯϩʔυͯ͠ར༻ • Dynamic Feature Modules
ϞδϡϥϥΠζͷσϝϦοτ • ґଘ͕ؔίʔυ͚ͩͰΘ͔Γʹ͍͘ͷͰɺ ͱ͖ͬͭʹ͘͘ͳΔ • ॳճϏϧυʹ͕͔͔࣌ؒΔ(͖͕͢Δ)
ओͳϞδϡʔϧͷछྨ • Android ΞϓϦ Ϟδϡʔϧ • ΞϓϦ ϨϕϧͷઃఆΛ֨ೲ͢ΔϝΠϯίϯςφ • Android
ϥΠϒϥϦ Ϟδϡʔϧ • ΞϓϦ ϞδϡʔϧͰ༻ͨ͠ΓɺଞͷϥΠϒϥϦ ϞδϡʔϧʹΠϯϙʔτͨ͠ΓͰ͖Δ࠶ར༻Մೳͳ ίϯςφ
ϞδϡϥϥΠζͷํ
ΞʔΩςΫνϟ 1. ϨΨγʔͳΞϓϦͷϞδϡʔϧߏ 2. ϨΠϠʔυͳϞδϡʔϧߏ 3. ػೳຖϞδϡʔϧߏ×ϨΠϠʔυͳϞ δϡʔϧߏ
ϨΨγʔͳΞϓϦͷϞδϡʔϧ ߏ • AndroidΞϓϦϞδϡʔϧ
ϨΠϠʔυͳϞδϡʔϧߏ • AndroidΞϓϦϞδϡʔϧ • ΞϓϦέʔγϣϯͷϞδϡʔϧ • υϝΠϯͷϞδϡʔϧ • ΠϯϑϥͷϞδϡʔϧ
ػೳ × ϨΠϠʔυͳϞδϡʔϧ ߏ • AndroidΞϓϦϞδϡʔϧ • ΞϓϦέʔγϣϯͷϞδϡʔϧ × ػೳ
• υϝΠϯͷϞδϡʔϧ × ػೳ • ΠϯϑϥͷϞδϡʔϧ × ػೳ * ཧతͳܗͱࢥΘΕΔ
ϦϑΝΫλϦϯά
طଘͷίʔυϕʔεͷ • طଘͷίʔυϕʔε͕͠ΒΈͩΒ͚ • গͣͭ͠བྷΈ߹ͬͨґଘؔΛ΄Ͳ͍͍ͯ͘ • ࣌ʹɺϦϑΝΫλϦϯάͷ͢͠͞ > ઃܭ ͷਖ਼͠͞
• ͋ͱͰ⁋᧒Λ͋Θ͍ͤͯ͘
ϞδϡϥϥΠζͷεςοϓ 1. ґଘͷগͳ͍ػೳ 2. Domain Model 3. Πϯϑϥ 4. υϝΠϯ
5. ڞ௨UIίϯϙʔωϯτ 6. UIΛؚΜͩػೳ
ґଘͷগͳ͍ػೳ • c++ͷϥΠϒϥϦ Module • ԻपΓͷॲཧ Module
Domain Model • Model Module • Domain Model • ෦ʹenumͳͲͰɺResourceΛ͍࣋ͬͯΔͷ
͋Δ • Resource Module • colorɺจࣈɺը૾Ϧιʔε
Πϯϑϥ • Data Module • Api • SharedPreferences • Database
• Repository * ͬͱࡉ͔͘ModuleΛผ͚ͯྑͦ͞͏
υϝΠϯ • Use Case Module • Use Case
ڞ௨UIίϯϙʔωϯτ • Feature Common Module • Dialog / Pop-up /
CustomView • Utility / Ext • Abstract Activity * ֎ग़͍ͨ͠͠ػೳͰ͍͍ͨͷΛؚΊΔ
UIΛؚΜͩػೳ • ϦϦʔε͔Β֎͔͢͠Εͳ͍ػೳ * ࠓޙͬͱ͍͚͛ͯΔͱྑ͍
·ͱΊ • nanaͰઈࢍ Γग़్͠தɺίϯϑϦΫτ • গͣͭ͠Γ͍͢ͱ͜Ζ͔ΒਐΊΔ • ϦϑΝΫλϦϯάΛ͠ͳ͕Βؾͮ͘ଟ ͍ •
ػೳ × ϨΠϠʔυͳϞδϡʔϧߏΛࢦ͢
ࢀߟ • https://speakerdeck.com/kgmyshin/multi- module-no-susume