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
Young
February 18, 2019
Programming
0
190
Androidアプリにおけるモジュラライズの進め方
社内勉強会 #深いい勉強会 の資料です
Young
February 18, 2019
Tweet
Share
More Decks by Young
See All by Young
GitbookからOpenApiへのAPIドキュメント移行
akihitookada
0
58
Navigation ComponentとFluxをnanaに導入した
akihitookada
0
81
MotionLayoutを使ってクリスマスなアプリを作った
akihitookada
0
100
OrmaからRoomに移行する 2nd Season
akihitookada
1
530
ミャンマーのすゝめ
akihitookada
2
83
Android版 nanaとデータの永続化とDatabase
akihitookada
2
170
Android Team @ nana music, Inc.
akihitookada
0
86
ConstraintLayoutを理解する
akihitookada
0
99
OpenSTFとJenkinsで 社内のAndroid端末を有効活用する
akihitookada
0
260
Other Decks in Programming
See All in Programming
[技育CAMPアカデミア]アイディアを形に!【超入門】スマホアプリ開発〜リリースまでの流れをご紹介
teamlab
PRO
0
350
デザインシステムで Tailwind CSSとCSS in JSに分散投資をしたら良かった話
fsubal
18
4.8k
Elm 0.19.0 Changes
bkuhlmann
0
490
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
480
脱・初心者!脱・マネコン!AWS CDKを使ってみませんか!?
har1101
0
300
雑に思考を整理する技術と効能
konifar
55
26k
今の SmartHR にエンジニアで入社するとどうなるの?
daisukeshinoku
5
4.6k
ログラスを支える設計標準について / loglass-design-standards
urmot
10
2.1k
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
0
110
What We Can Learn From OSS
inouehi
0
400
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
190
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
430
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
22
3.9k
GitHub's CSS Performance
jonrohan
1023
450k
What’s in a name? Adding method to the madness
productmarketing
PRO
15
2.6k
The Brand Is Dead. Long Live the Brand.
mthomps
48
28k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
The Cult of Friendly URLs
andyhume
74
5.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
240
1.2M
It's Worth the Effort
3n
180
27k
The Cost Of JavaScript in 2023
addyosmani
14
3.8k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
The Invisible Customer
myddelton
114
12k
Fireside Chat
paigeccino
20
2.6k
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