Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
AIコーディングエージェント(NotebookLM)
kondai24
0
220
ゆくKotlin くるRust
exoego
1
140
認証・認可の基本を学ぼう後編
kouyuume
0
250
FluorTracer / RayTracingCamp11
kugimasa
0
250
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
320
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
340
これならできる!個人開発のすゝめ
tinykitten
PRO
0
120
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
3.5k
マスタデータ問題、マイクロサービスでどう解くか
kts
0
110
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
1.6k
AIエンジニアリングのご紹介 / Introduction to AI Engineering
rkaga
8
3.3k
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
160
Featured
See All Featured
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
1
1.3k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
250
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
0
31
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
130
The SEO Collaboration Effect
kristinabergwall1
0
300
Raft: Consensus for Rubyists
vanstee
141
7.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
200
Believing is Seeing
oripsolob
0
15
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
Documentation Writing (for coders)
carmenintech
77
5.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