Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Androidアプリにおけるモジュラライズの進め方
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Young
February 18, 2019
Programming
250
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Androidアプリにおけるモジュラライズの進め方
社内勉強会 #深いい勉強会 の資料です
Young
February 18, 2019
More Decks by Young
See All by Young
GitbookからOpenApiへのAPIドキュメント移行
akihitookada
0
100
Navigation ComponentとFluxをnanaに導入した
akihitookada
0
110
MotionLayoutを使ってクリスマスなアプリを作った
akihitookada
0
190
OrmaからRoomに移行する 2nd Season
akihitookada
1
800
ミャンマーのすゝめ
akihitookada
2
110
Android版 nanaとデータの永続化とDatabase
akihitookada
2
230
Android Team @ nana music, Inc.
akihitookada
0
120
ConstraintLayoutを理解する
akihitookada
0
120
OpenSTFとJenkinsで 社内のAndroid端末を有効活用する
akihitookada
0
300
Other Decks in Programming
See All in Programming
作れる、でも消せるか?──安全に「枯らして消す」機能削除術 / Drain, Then Delete
chobishiba
2
900
Domain-Driven Transformation
hschwentner
2
2.3k
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
410
GraphQL の onError と Nullability のこれから
quramy
0
170
No More NoSuchMethodError
exoego
1
110
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
ChromeでローカルLLM
ryu1013
0
160
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
120
コードで差別化できない時代の ソフトウェアエンジニアリング / Software Engineering in an Era Where Code Doesn’t Differentiate
kishida
2
190
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
[2026-10-09]一枚の布で作らなくてもいい。 信頼性は「パッチワーク」で紡がれる~既存の運用と新しい可能性をつなぎ合わせてきたCREの話~
tosite
0
110
複雑なUIコンポーネントとの ⻑い付き合い⽅:波及するバグからテスト戦略を経て、安全な再設計へ
mixplace
0
450
Featured
See All Featured
The SEO Collaboration Effect
kristinabergwall1
1
600
Everyday Curiosity
cassininazir
0
360
A Tale of Four Properties
chriscoyier
163
24k
We Are The Robots
honzajavorek
0
400
Chasing Engaging Ingredients in Design
codingconduct
0
370
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
My Coaching Mixtape
mlcsv
0
360
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.8k
Typedesign – Prime Four
hannesfritz
42
3.2k
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