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アプリを救う | Scramble Tech #0
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Mori Atsushi
December 18, 2019
Programming
1
1.2k
マルチモジュールでandroidアプリを救う | Scramble Tech #0
https://scramble.connpass.com/event/157710/
tags: android, multi module, OPENREC, java, kotlin
Mori Atsushi
December 18, 2019
Tweet
Share
More Decks by Mori Atsushi
See All by Mori Atsushi
モバイルアプリ開発のためのDesign Doc実践ガイド
moriatsushi
4
630
原則から考える保守しやすいComposable関数設計
moriatsushi
3
780
Kotlin Coroutinesで共有リソースに正しくアクセスする
moriatsushi
6
5.3k
Jetpack Composeで Reduxっぽいアーキテクチャを試す
moriatsushi
2
1.2k
Kotlin MultiplatformでもKSPを使う
moriatsushi
2
890
実例から学ぶJetpack Composeのパフォーマンス改善
moriatsushi
3
7.6k
WindowInsets 2022 feat. Jetpack Compose #ca_aab
moriatsushi
1
1.7k
Jetpack Composeで UI Catalog Libraryを 作っている話 #android_meetup
moriatsushi
1
1.3k
良いコードとは何か - エンジニア新卒研修 スライド公開
moriatsushi
98
160k
Other Decks in Programming
See All in Programming
15年目のiOSアプリを1から作り直す技術
teakun
1
610
朝日新聞のデジタル版を支えるGoバックエンド ー価値ある情報をいち早く確実にお届けするために
junkiishida
1
550
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
400
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
420
PJのドキュメントを全部Git管理にしたら、一番喜んだのはAIだった
nanaism
0
240
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
2
500
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
970
CSC307 Lecture 12
javiergs
PRO
0
460
AIプロダクト時代のQAエンジニアに求められること
imtnd
2
750
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
260
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
250
Codex の「自走力」を高める
yorifuji
0
1k
Featured
See All Featured
Prompt Engineering for Job Search
mfonobong
0
180
Context Engineering - Making Every Token Count
addyosmani
9
740
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
Building Applications with DynamoDB
mza
96
6.9k
Technical Leadership for Architectural Decision Making
baasie
3
280
HDC tutorial
michielstock
1
510
The Curse of the Amulet
leimatthew05
1
9.7k
Abbi's Birthday
coloredviolet
2
5.2k
Designing Powerful Visuals for Engaging Learning
tmiket
0
260
The Cost Of JavaScript in 2023
addyosmani
55
9.7k
Building Adaptive Systems
keathley
44
2.9k
Amusing Abliteration
ianozsvald
0
120
Transcript
ϚϧνϞδϡʔϧͰ BOESPJEΞϓϦΛ ٹ͏ ಞ࢙c4DSBNCMF5FDIc
ಞ࢙ .PSJ"UTVTIJ ໌ੴߴઐ ஜେֶ גࣜձࣾαΠόʔΤʔδΣϯτגࣜձࣾ$ZCFS;01&/3&$ ܦྺ BOESPJEXFCJPTDBNFSB εΩϧ ୈճશࠃߴઐϓϩάϥϛϯάίϯςετ,"/";"8"ΦʔϓϯσʔλΞϓϦίϯςετ -0%νϟϨϯδୈճશࠃߴઐϓϩάϥϛϯάίϯςετ
ฏىۀՈߕࢠԂ*NBHJOF$VQ.BTIVQ"XBSET .BTIVQ"XBSET(6(&/ ίϯςετ
ήʔϜ࣮گϓϨΠಈըɺ ϥΠϒ৴ָ͕͠ΊΔɺ ಈըίϛϡχςΟ ϓϥοτϑΥʔϜ
σβΠϯϦχϡʔΞϧ ࡁ ݄ ݄
ೖࣾc݄̐ ؔ+BWB ؔ.7$ ؔ$BMMCBDLࠈ ۀքతͰLPUMJOͰͷ։ൃ͕ओྲྀ (PPHMF.77.Λਪ 3Y+BWBར༻͍ͯ͠ͳ͍
BOESPJEද 01&/3&$ ϦϦʔε ,PUMJOΛ ਖ਼ࣜ։ൃݴޠʹ
,PUMJOpSTU +FU1BDLͷൃද "OESPJEΞϓϦͷ։ൃΛՃͤ͞Δ࣍ੈͷ ίϯϙʔωϯτɺπʔϧɺΞʔΩςΫνϟΨΠμϯε .77.͕ڧ͘ਪ͞Εɺ.7$ඇਪͱ͞Εͨ ,PUMJOͰͷ։ൃΛ(PPHMF͕ਖ਼ࣜʹαϙʔτ ͢ΔΑ͏ʹͳͬͨɻKBWBͱ͖ͳํ͕બΔɻ ৽نػೳɾ৽نϥΠϒϥϦΛ,PUMJO༏ઌͰϦϦʔε͠ ͍ͯ͘ͱએݴɻ +BWBͩͱ࠷৽ػೳͷԸܙ͕ड͚ΒΕͳ͍Մೳੑ͕ +BWBͰͷ։ൃ͕ओྲྀɻ .7$.71.77.ɺ ༷ʑͳΞʔΩςΫνϟ͕ཚཱ͍ͯͨ͠
ࠓ෩ʹॻ͖͍͑ͨʙʂ
ઈରʹͳ͘ͳΒͳ͍ͷ
ػೳՃ ઈରʹͳ͘ͳΒͳ͍ͷ
ܧଓతʹ։ൃͭͭ͠ ৽ઃܭʹҠߦͰ͖ΔΈ
͍͋Ͱ͌͋ ৽ΞʔΩςΫνϟ چΞʔΩςΫνϟ ৽ΞʔΩςΫνϟΛ࡞ͬͯঃʑʹͦͪΒʹҠߦ͍ͯ͘͠ ঃʑʹҠߦ "DUJWJUZ'SBHNFOU 7JFX.PEFM 6TF$BTF 3FQPTJUPSZ %BUB4PVSDF
6UJM "DUJWJUZ'SBHNFOU $POUSPMMFS .PEFM 6UJM
༧͞ΕΔ͜ͱ +BWBͷ6UJMॆ࣮ͯ͠Δ͓ͦͬͪ͠͏ʜ ৽ΞʔΩςΫνϟ چΞʔΩςΫνϟ "DUJWJUZ'SBHNFOU 7JFX.PEFM 6TF$BTF 3FQPTJUPSZ %BUB4PVSDF 6UJM
"DUJWJUZ'SBHNFOU $POUSPMMFS .PEFM 6UJM
༧͞ΕΔ͜ͱ ݹ͍ը໘Ͱ৽͍͠ػೳʹΞΫηε͠ͳ͚Εʜ ৽ΞʔΩςΫνϟ چΞʔΩςΫνϟ "DUJWJUZ'SBHNFOU 7JFX.PEFM 6TF$BTF 3FQPTJUPSZ %BUB4PVSDF 6UJM
"DUJWJUZ'SBHNFOU $POUSPMMFS .PEFM 6UJM
༧͞ΕΔ͜ͱ 6TF$BTFҎԼ࡞ΔͷϝϯυΫαΠ͠ɺ+BWBͷ$POUSPMMFSʜ ৽ΞʔΩςΫνϟ چΞʔΩςΫνϟ "DUJWJUZ'SBHNFOU 7JFX.PEFM 6TF$BTF 3FQPTJUPSZ %BUB4PVSDF 6UJM
"DUJWJUZ'SBHNFOU $POUSPMMFS .PEFM 6UJM
༧͞ΕΔ͜ͱ ґଘ͕ؔΊͪΌΊͪΌʹʜ ৽ΞʔΩςΫνϟ چΞʔΩςΫνϟ "DUJWJUZ'SBHNFOU 7JFX.PEFM 6TF$BTF 3FQPTJUPSZ %BUB4PVSDF 6UJM
"DUJWJUZ'SBHNFOU $POUSPMMFS .PEFM 6UJM
৽-FHBDZ ༧͞ΕΔ͜ͱ ৽ΞʔΩςΫνϟ چΞʔΩςΫνϟ "DUJWJUZ'SBHNFOU 7JFX.PEFM 6TF$BTF 3FQPTJUPSZ %BUB4PVSDF 6UJM
"DUJWJUZ'SBHNFOU $POUSPMMFS .PEFM 6UJM
৽-FHBDZ ༧͞ΕΔ͜ͱ ৽ΞʔΩςΫνϟ چΞʔΩςΫνϟ "DUJWJUZ'SBHNFOU 7JFX.PEFM 6TF$BTF 3FQPTJUPSZ %BUB4PVSDF 6UJM
"DUJWJUZ'SBHNFOU $POUSPMMFS .PEFM 6UJM
ͳʹ͕͍͚ͳ͔͔ͬͨ ৽ΞʔΩςΫνϟ چΞʔΩςΫνϟ ૄ݁߹Ͱ͋Δ͜ͱ͕ॏཁ ಛʹɿ৽ΞʔΩςΫνϟچΞʔΩςΫνϟʹґଘ͍͚ͯ͠ͳ͍ "DUJWJUZ'SBHNFOU 7JFX.PEFM 6TF$BTF 3FQPTJUPSZ %BUB4PVSDF
6UJM "DUJWJUZ'SBHNFOU $POUSPMMFS .PEFM 6UJM
ͳʹ͕͍͚ͳ͔͔ͬͨ ৽ΞʔΩςΫνϟ چΞʔΩςΫνϟ ૄ݁߹Ͱ͋Δ͜ͱ͕ॏཁ ಛʹɿ৽ΞʔΩςΫνϟچΞʔΩςΫνϟʹґଘ͍͚ͯ͠ͳ͍ "DUJWJUZ'SBHNFOU 7JFX.PEFM 6TF$BTF 3FQPTJUPSZ %BUB4PVSDF
6UJM "DUJWJUZ'SBHNFOU $POUSPMMFS .PEFM 6UJM
ؾΛ͚ͭͯ։ൃ͠Α͏ʂ ͓ΘΓ
ຊʹେৎͰ͔͢ʁ
ਓؒ͠͠ աͪΛى͜͢
"OESPJE .VMUJ .PEVMF
ϚϧνϞδϡʔϧ ҰͭͷϓϩδΣΫτͰίϯύΠϧ୯ҐΛׂ͢Δ͜ͱ͕Ͱ͖Δ ϞδϡʔϧؒͷґଘؔΛ໌ࣔతʹఆٛ͢Δ ॥ͨ͠ґଘఆٛͰ͖ͳ͍ Ϟδϡʔϧ" Ϟδϡʔϧ#
ࠓճͷྫ ৽ΞʔΩςΫνϟ چΞʔΩςΫνϟ ΈͰ༧ظͤ͵ґଘΛ͙ "DUJWJUZ'SBHNFOU 7JFX.PEFM 6TF$BTF 3FQPTJUPSZ %BUB4PVSDF 6UJM
"DUJWJUZ'SBHNFOU $POUSPMMFS .PEFM 6UJM
۩ମతʹ GFBUVSFEJTDPWFS BQQ GFBUVSFXBUDI GFBUVSFTFUUJOH MFHBDZ EBUBVTFDBTF EBUBSFQPTJUPSZ EBUBTPVSDFBQJ EBUBTPVSDFMPDBM
DPSF ˞؆ུԽͷͨΊҰ෦NPEVMFґଘলུ͞Ε͍ͯΔ ˞VTFDBTFSFQPTJUPSZEBUBTPVSDFͷJOUFSGBDFͱ ͦͷ࣮ɺ࣮ࡍʹผNPEVMFʹͳ͍ͬͯΔ
ܧଓతʹ։ൃͭͭ͠Ҡߦ͢Δ ᶃ'SBHNFOU୯ҐͰҠߦ͢Δ ᶄԼҐϨΠϠʔ͔ΒੵۃతʹҠߦ͢Δ ᶅ#BTF"DUJWJUZͷҠߦ݁ہྗͮ͘ BDUJWJUZ୯ҐͰେ͖͗͢ΔNPEVMFΛ͑ͯ'SBHNFOUΛ͢ʹʁ ԼҐϨΠϠʔೖΕସ͍͑͢ Δؾͱࠜؾ
'SBHNFOU୯ҐͰҠߦ͢Δ Α͠ʂ͜ͷ"DUJWJUZʢը໘ʣΛ Ҡߦ͢Δͧʂ ͋Εɺͳ͔ͳ͔ऴΘΒͳ͍ʜ ͖͋ΒΊ·ͨ͠
'SBHNFOU୯ҐͰҠߦ͢Δ Α͠ʂ͜ͷ"DUJWJUZʢը໘ʣΛ Ҡߦ͢Δͧʂ ͋Εɺͳ͔ͳ͔ऴΘΒͳ͍ʜ ͖͋ΒΊ·ͨ͠ ҠߦযΒͣ গͣͭ͠
'SBHNFOU୯ҐͰҠߦ͢Δ ҠߦࡁΈ ະҠߦ λϒ୯ҐͰҠߦத ҰͷσόοάϦϦʔεΛখ͘͞ Ϟνϕʔγϣϯҡ࣋
'SBHNFOU୯ҐͰҠߦ͢Δ GFBUVSFOFX MFHBDZ BQQ MFHBDZͷ'SBHNFOUΛ औಘ͍͕ͨ͠औΕͳ͍
GFBUVSFOFX MFHBDZ BQQ DPSFOBWJHBUJPO 'SBHNFOU୯ҐͰҠߦ͢Δ *OUFSGBDFΛఆٛ *OUFSGBDFΛ࣮ %*Ͱ*NQMΫϥεΛΔ
'SBHNFOU୯ҐͰҠߦ͢Δ λϒλοϓͰ Ұ൪্·ͰεΫϩʔϧ BDUJWJUZ͔Β GSBHNFOUΛૢ࡞͍ͨ͠
GFBUVSFOFX MFHBDZ BQQ DPSFOBWJHBUJPO 'SBHNFOU୯ҐͰҠߦ͢Δ *OUFSGBDFΛఆٛ 'SBHNFOUʹ*OUFSGBDFΛ࣮ͤ͞Δ 'SBHNFOUʹ*OUFSGBDFΛνΣοΫ͢Δ
GFBUVSFOFX MFHBDZ BQQ DPSFOBWJHBUJPO 'SBHNFOU୯ҐͰҠߦ͢Δ *OUFSGBDFΛఆٛ *OUFSGBDFΛ࣮ *OUFSGBDFΛνΣοΫ͢Δ நʹґଘͤΑ
'SBHNFOU୯ҐͰҠߦ͢Δ ৽ը໘TDSPMMBCMFͳGSBHNFOUͰ͋Δ ͜ͱ͔͠Βͳ͍ TDSPMMBCMFͳGSBHNFOUʹଈ࠲ʹ ஔ͖͑Մೳ நʹґଘͤ͞ΔͱԿ͕ྑ͍͔
ԼҐϨΠϠʔ͔ΒੵۃతʹҠߦ͢Δ %BUB4PVSDF ৽ΞʔΩςΫνϟ "DUJWJUZ'SBHNFOU $POUSPMMFS .PEFM چΞʔΩςΫνϟ ύλʔϯᶃ%BUB4PVSDFʢ-PDBM%#ʣ͚ͩ৽ʹࠩ͠ସ͑ ґଘ͕গͳ͘Έ͘͢ɺσʔλͷෆ߹͕ى͖ʹ͘͘ͳΔ
ԼҐϨΠϠʔ͔ΒੵۃతʹҠߦ͢Δ ৽ΞʔΩςΫνϟ "DUJWJUZ'SBHNFOU چΞʔΩςΫνϟ ύλʔϯᶄ6TF$BTFҎԼΛ৽ʹࠩ͠ସ͑ ৽͍͠ػೳΛ৽ΞʔΩςΫνϟͰ࡞Γɺچ"DUJWJUZ͔Βݺͼग़͢ ৽"DUJWJUZʹҠߦ͢Δͱָ͖ʑ 6TF$BTF 3FQPTJUPSZ %BUB4PVSDF
ԼҐϨΠϠʔ͔ΒੵۃతʹҠߦ͢Δ ৽ΞʔΩςΫνϟ چΞʔΩςΫνϟ ൪֎ฤ6UJMΛNPEVMFҠߦ ڞ௨NPEVMFʹ͑ͦ͏ͳVUJMͲΜͲΜҠ͍ͯ͘͠ ϦϑΝΫλ͢Δ͍͍λΠϛϯάʂ 6UJM "DUJWJUZ'SBHNFOU $POUSPMMFS .PEFM
#BTF"DUJWJUZͷҠߦ #BTF"DUJWJUZංେԽ͕ͪ͠ʜ ϩάܥॲཧͷڞ௨ԽݖݶपΓΞϓϦͷόοΫάϥϯυɾ ϑΥΞάϥϯυݕ1*1੍ޚڧ੍Ξοϓσʔτڧ੍ϩάΞ τϓϨϛΞϜձһνΣοΫʜ
#BTF"DUJWJUZͷҠߦ جຊઓུ ᶃࠓ·Ͱͷ#BTF"DUJWJUZΛ-FHBDZ#BTF"DUJWJUZʹ ϦωʔϜ͠ɺ-FHBDZNPEVMFʹ͓͘ ᶄڞ௨NPEVMFʹਅ#BTF"DUJWJUZΛ࡞Γɺ ຊʹඞཁͳͷ͚ͩΛҠ͢ ᶅ-FHBDZ#BTF"DUJWJUZʹऔΓ͞ΕͨॲཧΛ Α͠ͳʹղ͢Δ
#BTF"DUJWJUZͷҠߦ #BTF"DUJWJUZͷղϓϥϯ ॲཧͷڞ௨ԽΛ͍ͨ͠ 6UJM*OUFSGBDFʹΓग़͢ 'SBHNFOUͱ"DUJWJUZɺ'SBHNFOUؒͰσʔλͷΓऔΓ͕͍ͨ͠ "DUJWJUZTDPQFͷ7JFX.PEFMΛ͏ ΞϓϦͷCBDLHSPVOE GPSFHSPVOEΛݕ͍ͨ͠ 1SPDFTT-JGFDZDMF0XOFSΛ͏ Ͳ͏ʹͰ͖ͳ͍͚Ͳɺ৽ΞʔΩςΫνϟͰ͍ͨ͘ͳ͍
*OUFSGBDFʹͬͯ!%FQSFDBUFEΛ͚ͭΔ
#BTF"DUJWJUZͷҠߦ #BTF"DUJWJUZͷղϓϥϯ ॲཧͷڞ௨ԽΛ͍ͨ͠ 6UJM*OUFSGBDFʹΓग़͢ 'SBHNFOUͱ"DUJWJUZɺ'SBHNFOUؒͰσʔλͷΓऔΓ͕͍ͨ͠ "DUJWJUZTDPQFͷ7JFX.PEFMΛ͏ ΞϓϦͷCBDLHSPVOE GPSFHSPVOEΛݕ͍ͨ͠ 1SPDFTT-JGFDZDMF0XOFSΛ͏ Ͳ͏ʹͰ͖ͳ͍͚Ͳɺ৽ΞʔΩςΫνϟͰ͍ͨ͘ͳ͍
*OUFSGBDFʹͬͯ!%FQSFDBUFEΛ͚ͭΔ
·ͱΊ ϚϧνϞδϡʔϧΛͬͯ৽ઃܭͱچઃܭΛΓ͚Δͱ ґଘ͕ؔڧ੍Ͱ͖ͯྑ͍ ϞδϡʔϧΛ͑Δ߹நʹґଘͤ͞ΔΑ͏ʹ͢Δ ݁ߏͰΓΒͳ͍ͱ͍͚ͳ͍ͱ͜Ζଟ͍