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
ANDPAD iOS開発における「マルチモジュール」化の課題と今後
Search
ANDPAD inc
January 12, 2022
Technology
1
1.5k
ANDPAD iOS開発における「マルチモジュール」化の課題と今後
iOS/Androidアプリ開発のマルチモジュール化
https://sansan.connpass.com/event/232503/
イベント登壇時の資料
ANDPAD inc
January 12, 2022
Tweet
Share
More Decks by ANDPAD inc
See All by ANDPAD inc
アンドパッドにおける CocoaPods ライブラリ群の SwiftPackageManager への移行戦略
andpad
0
28
Flutter は DCM が 9 割
andpad
1
32
Amplify で SPA をホスティングする際の注意点
andpad
0
21
マルチプロダクト開発の現場でAWS Security Hubを1年以上運用して得た教訓
andpad
0
60
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
390
本編では話さない Zig の話
andpad
2
250
"noncopyable types" の使いどころについて考えてみた
andpad
0
390
ANDPAD黒板のオフラインモード機能 リリースまでの軌跡
andpad
0
270
アンドパッドのマルチプロダクト戦略を支える SRE
andpad
1
250
Other Decks in Technology
See All in Technology
アジャイルな開発チームでテスト戦略の話は誰がする? / Who Talks About Test Strategy?
ak1210
1
490
What's new in Go 1.24?
ciarana
1
110
OPENLOGI Company Profile
hr01
0
60k
【詳説】コンテンツ配信 システムの複数機能 基盤への拡張
hatena
0
230
データベースの負荷を紐解く/untangle-the-database-load
emiki
2
490
ディスプレイ広告(Yahoo!広告・LINE広告)におけるバックエンド開発
lycorptech_jp
PRO
0
320
NFV基盤のOpenStack更新 ~9世代バージョンアップへの挑戦~
vtj
0
340
LINE NEWSにおけるバックエンド開発
lycorptech_jp
PRO
0
220
Amazon Aurora のバージョンアップ手法について
smt7174
2
140
遷移の高速化 ヤフートップの試行錯誤
narirou
6
1.1k
AIエージェント時代のエンジニアになろう #jawsug #jawsdays2025 / 20250301 Agentic AI Engineering
yoshidashingo
8
3.5k
EMConf JP 2025 懇親会LT / EMConf JP 2025 social gathering
sugamasao
2
190
Featured
See All Featured
Optimizing for Happiness
mojombo
376
70k
Docker and Python
trallard
44
3.3k
What's in a price? How to price your products and services
michaelherold
244
12k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
Automating Front-end Workflow
addyosmani
1368
200k
A better future with KSS
kneath
238
17k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
Transcript
"/%1"%J04։ൃͰ࠷ۙऔΓΈ࢝Ίͨ ʮෳΞϓϦͰར༻͢ΔͨΊͷػೳϞδϡʔϧ։ൃʯ ʹ͍ͭͯ !J04"OESPJEΞϓϦ։ൃͷϚϧνϞδϡʔϧԽΞϯυύουʛΫοΫύουʛ4BOTBO
w ໊લࠤ౻ढ़ี w 5XJUUFS!VTIJTBOUPBTPCV w ձࣾגࣜձࣾΞϯυύουʢೖࣾʣ w ୲J04"OESPJE w झຯίʔώʔɺαοΧʔʢϑοταϧʣ
ࣗݾհ
w "/%1"%ʹ͓͚ΔJ04ΞϓϦ։ൃͷੜଶܥͱ՝ w ݱࡏऔΓΜͰ͍ΔʮෳΞϓϦͰར༻͢ΔͨΊͷػೳϞδϡʔϧ։ൃʯ ΞδΣϯμ
"/%1"%ʹ͓͚ΔJ04ΞϓϦ։ൃͷੜଶܥͱ՝
ʮݐங%9ʯͱ͍͏ෳࡶɾൣғʹΔ՝
ʮݐங%9ʯͱ͍͏ෳࡶɾൣғʹΔ՝ ϞόΠϧΞϓϦͷઓུ
ʮݐங%9ʯͱ͍͏ෳࡶɾൣғʹΔ՝ ϞόΠϧΞϓϦͷઓུ εʔύʔΞϓϦઓུ
ʮݐங%9ʯͱ͍͏ෳࡶɾൣғʹΔ՝ ϞόΠϧΞϓϦͷઓུ εʔύʔΞϓϦઓུ ϚϧνΞϓϦઓུ
ʮݐங%9ʯͱ͍͏ෳࡶɾൣғʹΔ՝ ϞόΠϧΞϓϦͷઓུ εʔύʔΞϓϦઓུ ϚϧνΞϓϦઓུ
ʮݐங%9ʯͱ͍͏ෳࡶɾൣғʹΔ՝ ϚϧνΞϓϦઓུͷϝϦοτ
ʮݐங%9ʯͱ͍͏ෳࡶɾൣғʹΔ՝ ϚϧνΞϓϦઓུͷϝϦοτ w ʢ෦࣭ʣΞϓϦ͝ͱʹٕज़తͳઓ͕Ͱ͖Δɻ'MVUUFSͳͲ w ʢ֎෦࣭ʣෆཁͳػೳΛؾʹ͢Δ͜ͱͳ͘ར༻Ͱ͖Δ ͳͲͳͲ
ʮݐங%9ʯͱ͍͏ෳࡶɾൣғʹΔ՝ ϚϧνΞϓϦઓུͷϝϦοτ ৄ͘͠IUUQTTQFBLFSEFDLDPNBOEQBEGVTIVGBMTFBQVSJXPUPOHTIJOJSJSJTVTJOBHBSBTBCJTVHVSPTVTBTFSVGBOHGB
ʮݐங%9ʯͱ͍͏ෳࡶɾൣғʹΔ՝ ϚϧνΞϓϦઓུͷσϝϦοτ
ʮݐங%9ʯͱ͍͏ෳࡶɾൣғʹΔ՝ ϚϧνΞϓϦઓུͷσϝϦοτ w ෳΞϓϦͰڞ௨Ͱར༻͍ͨ͠ͷ͕͋Δͱ͖ʹͲ͏͠Α͏🤔
"/%1"%ʹ͓͚ΔJ04ΞϓϦ։ൃͷੜଶܥ
ΞϓϦ "/%1"%ʹ͓͚ΔJ04ΞϓϦ։ൃͷੜଶܥ
ΞϓϦ ࣾϥΠϒϥϦ "/%1"%ʹ͓͚ΔJ04ΞϓϦ։ൃͷੜଶܥ
ΞϓϦ ʢ֤ΞϓϦ͕ඞཁͳϥΠϒϥϦΛ$PDPBQPETͰཧ͍ͯ͠Δʣ "/%1"%ʹ͓͚ΔJ04ΞϓϦ։ൃͷੜଶܥ ࣾϥΠϒϥϦ
w ݁ߏෳࡶͳੜଶܥΛ͍ͯ͠Δ w ಛʹӡ༻໘ʢ୭͕໘ΈΔͷʁߋ৽ͨ͠ͱ͖ͷଞ5ͷڞ༗ํ๏ʁʣ w ৭ʑ՝͋Δ͕ɺ·͋ͳΜͱ͔ͬͯ͜Ε͍ͯΔ "/%1"%ʹ͓͚ΔJ04ΞϓϦ։ൃͷੜଶܥ
ΞϓϦ ϥΠϒϥϦ ৽͍͠՝🔥 "/%1"%ʹ͓͚ΔJ04ΞϓϦ։ൃͷੜଶܥ
ΞϓϦ ϥΠϒϥϦ ৽͍͠՝🔥 "/%1"%ʹ͓͚ΔJ04ΞϓϦ։ൃͷੜଶܥ
ΞϓϦ ϥΠϒϥϦ ৽͍͠՝🔥 "/%1"%ʹ͓͚ΔJ04ΞϓϦ։ൃͷੜଶܥ w ͭͷΞϓϦͰಉ͡ػೳ͕ଘࡏ͢Δ͜ͱ ͕ݟ͔ͭͬͨ w ͜ͷػೳΛվम͢Δͷʹɺશ͘ಉ͡मਖ਼ ΛͭͷΞϓϦʹద༻͢Δͱ͍͏ࣄଶ͕
গ͠લʹൃੜͨ͠ w ͍ͦͯۙ͠কདྷɺͬͱେ͖ͳػೳվળ ͕͜ͷػೳʹ༧ఆ͞Ε͍ͯΔͱͷ͜ͱ Ͱɺɺɺ͜͜ڞ௨Խ͍ͨ͠
"/%1"%ʹ͓͚ΔJ04ΞϓϦ։ൃͷੜଶܥ ৽͍͠՝🔥 w ͨͩ͠ࠓճڞ௨Խ͍ͨ͠ͷɺ͜Ε·ͰͷࣾϥΠϒϥϦʮπʔϧతʯ ͳͷɺͱ͍͏ΑΓ͔ʮػೳతʯͳͷͰ͋Δ w ػೳత"1*ϦΫΤετ͕͋Δଞͷػೳͷը໘ʹ్தͰભҠ͢Δ w কདྷతʹ͜ͷΑ͏ͳʮػೳతʯͳͷΛෳΞϓϦͰڞ༗͢Δػձ͕૿ ͍͖͑ͯͦ͏ͩͱ͍͏͕ٞ͋ͬͨ
ݱࡏऔΓΜͰ͍Δ ʮෳΞϓϦͰར༻͢ΔͨΊͷػೳϞδϡʔϧ։ൃʯ
ݱࡏऔΓΜͰ͍ΔʮෳΞϓϦͰར༻͢ΔͨΊͷػೳϞδϡʔϧ։ൃʯ w શମͷߏʹ͍ͭͯ w ґଘੑͷѻ͍ʹ͍ͭͯ w ϞδϡʔϧͷϛχΞϓϧʹ͍ͭͯ w Ϟδϡʔϧͷཧʹ͍ͭͯ
શମͷߏʹ͍ͭͯ
શମͷߏʹ͍ͭͯ
"OEQBE4PNF'FBUVSF શମͷߏʹ͍ͭͯ "OEQBE4PNF'FBUVSF
"OEQBE4PNF'FBUVSF શମͷߏʹ͍ͭͯ "OEQBE4PNF'FBUVSF ͜ͷػೳΛϞδϡʔϧͱͯ͠ Γग़͍ͨ͠
"OEQBE4PNF'FBUVSF શମͷߏʹ͍ͭͯ
"OEQBE4PNF'FBUVSF શମͷߏʹ͍ͭͯ Ϟδϡʔϧͱͯ͠Γग़͢
'FBUVSF" શମͷߏʹ͍ͭͯ কདྷతʹෳͷػೳϞδϡʔ ϧΛ࡞͍ͬͯ͘͜ͱΛఆͯ͠ ͍ΔͷͰ 'FBUVSF# 'FBUVSF$ 'FBUVSF%
"OEQBE$PSF "OEQBE6*$PNQPOFOU "OEQBE4PNF'FBUVSF ڞ௨ϞδϡʔϧʢPSج൫Ϟδϡ ʔϧʣ༻ҙ શମͷߏʹ͍ͭͯ
"OEQBE$PSF "OEQBE6*$PNQPOFOU "OEQBE4PNF'FBUVSF શମͷߏʹ͍ͭͯ
"OEQBE$PSF "OEQBE6*$PNQPOFOU "OEQBE4PNF'FBUVSF શମͷߏʹ͍ͭͯ ʢҰ୴Θ͔Γ͍͢Α͏ʹɺยํͷΞϓϦলུʣ
ґଘؔ "OEQBE$PSF "OEQBE6*$PNQPOFOU "OEQBE4PNF'FBUVSF શମͷߏʹ͍ͭͯ
"OEQBE$PSF "OEQBE6*$PNQPOFOU "OEQBE4PNF'FBUVSF w ΤϯςΟςΟ w &OWJSPONFOUʢґଘੑΛఆ ٛɻৄ͘͠ޙड़ʣ w &YUFOTJPO
શମͷߏʹ͍ͭͯ
"OEQBE$PSF "OEQBE6*$PNQPOFOU "OEQBE4PNF'FBUVSF w 6*$PNQPOFOUΛू w ίʔυͷΈͰ6*Λߏங w 9DPEF1SFWJFXTΛར༻ w
େ͖ΊͷίϯϙʔωϯτͷΈ ఆٛʢ.PMFDVMFT ʣ શମͷߏʹ͍ͭͯ
"OEQBE$PSF "OEQBE6*$PNQPOFOU "OEQBE4PNF'FBUVSF w .77.ߏ w 7JFX$POUSPMMFSͱ7JFX.PEFM ͷΈͷബ͍ϨΠϠߏʢඞཁ ʹԠͯ͡վળͯ͘͠ʣ શମͷߏʹ͍ͭͯ
"OEQBE$PSF "OEQBE6*$PNQPOFOU "OEQBE4PNF'FBUVSF $PDPBQPETͰཧ શମͷߏʹ͍ͭͯ
"OEQBE$PSF "OEQBE6*$PNQPOFOU "OEQBE4PNF'FBUVSF શମͷߏʹ͍ͭͯ w ֤छϞδϡʔϧͷJNQPSU w $PSFͷґଘੑͷ࣮ମΛఆٛ ʢৄ͘͠ޙड़ʣ
ґଘੑͷѻ͍ʹ͍ͭͯ
"OEQBE$PSF ґଘੑͷѻ͍ʹ͍ͭͯ
Ϟδϡʔϧͷґଘੑʹ͍ͭͯ &OWJSPONFOUʹू͢Δ "OEQBE$PSF ґଘੑͷѻ͍ʹ͍ͭͯ
"1*$MJFOUநʹґଘ͢ΔΑ͏ ʹ࡞͍ͬͯΔʢৄ͘͠ޙड़ʣ "OEQBE$PSF ґଘੑͷѻ͍ʹ͍ͭͯ
"OEQBE$PSF ґଘੑͷѻ͍ʹ͍ͭͯ Ϟδϡʔϧ֎ͷը໘ભҠͷॲ ཧ3PVUFSͱ͍͏؆қͳͷͰ
"OEQBE4PNF'FBUVSF ґଘੑͷѻ͍ʹ͍ͭͯ
"OEQBE4PNF'FBUVSF ґଘੑͷѻ͍ʹ͍ͭͯ ػೳϞδϡʔϧ$PSFͰఆٛ͠ ͨ&OWJSPONFOUʹґଘ࣮ͯ͠ ͍ͯ͘͠
ΞϓϦʢ"QQMJDBUJPO5BSHFUʣ ґଘੑͷѻ͍ʹ͍ͭͯ
ΞϓϦʢ"QQMJDBUJPO5BSHFUʣ ґଘੑͷѻ͍ʹ͍ͭͯ &OWJSPONFOUͷ֤छ࣮ମΛ࣮ ͢Δ
ΞϓϦʢ"QQMJDBUJPO5BSHFUʣ ґଘੑͷѻ͍ʹ͍ͭͯ "1*$MJFOUͷ࣮ମͷ࣮
ΞϓϦʢ"QQMJDBUJPO5BSHFUʣ ґଘੑͷѻ͍ʹ͍ͭͯ طଘͷ"1*.BOBHFSΛݺͼग़ ͢ɻͦͷϨεϙϯεΛϞδϡʔϧ ͷΤϯςΟςΟʢ$PSFʹఆٛʣ ʹม͢Δ
ΞϓϦʢ"QQMJDBUJPO5BSHFUʣ ґଘੑͷѻ͍ʹ͍ͭͯ
ΞϓϦʢ"QQMJDBUJPO5BSHFUʣ ґଘੑͷѻ͍ʹ͍ͭͯ ػೳϞδϡʔϧʹ&OWJSPONFOU ΛΠϯδΣΫτ͢Δ
ʮෳΞϓϦͰར༻͢ΔతͷϞδϡʔϧͰ"1*$MJFOUͳͲΛநԽ͢Δඞཁ͋Δͷʁʁʯ🤔 ґଘੑͷѻ͍ʹ͍ͭͯ
ґଘੑͷѻ͍ʹ͍ͭͯ "OEQBE4PNF'FBUVSF "OEQBE4PNF'FBUVSF
ʢΤϯυϙΠϯτ͋͘·ͰΠϝʔδʣ https://chat.andpad.jp/chat/{chat_id}/somes ґଘੑͷѻ͍ʹ͍ͭͯ "OEQBE4PNF'FBUVSF "OEQBE4PNF'FBUVSF https://sekokanri.andpad.jp/anken/{anken_id}/somes ΞϓϦຖʹΤϯυϙΠϯτ͕ҟ ͳΔ
"OEQBE4PNF'FBUVSF 🙅 ґଘੑͷѻ͍ʹ͍ͭͯ https://chat.andpad.jp/chat/{chat_id}/somes https://sekokanri.andpad.jp/anken/{anken_id}/somes ػೳϞδϡʔϧଆ͕ͦΕͧΕͷ ΞϓϦͷΤϯυϙΠϯτͳͲΛ Γͨ͘ͳ͍ͱࢥͬͨ
"OEQBE$PSF "OEQBE4PNF'FBUVSF ʮ4PNFͷҰཡΛGFUDI͢ΔΑʯ ͱ͍͏݁ߏநͷߴ͍ͷʹ ػೳϞδϡʔϧґଘ͍ͯ͠Δ ґଘੑͷѻ͍ʹ͍ͭͯ
͜͜ΒΜ·ͩ·ͩࢼߦࡨޡதʢࣾͰٞͷ༨͋Γʣ😢 ґଘੑͷѻ͍ʹ͍ͭͯ
ґଘੑͷѻ͍ʹ͍ͭͯ
ґଘੑͷѻ͍ʹ͍ͭͯ &OWJSPONFOUʹ࣮ࡍʹͦΕ ͧΕͷΞϓϦͰඞཁͳใ͕ ͞Ε͍ͯΔ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ϛχΞϓϦͷ࡞Γํ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ϛχΞϓϦͷ࡞Γํ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ $PDPBQPETͰϞδϡʔϧΛ৽ن ࡞͍ͯ͠ΔͨΊɺϛχΞϓϦ ؆୯ʹͰ͖Δ ϛχΞϓϦͷ࡞Γํ
"OEQBE$PSF "OEQBE6*$PNQPOFOU "OEQBE4PNF'FBUVSF ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ϛχΞϓϦ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ελϒΛ༻͍ͨϛχΞϓϦ։ൃ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ελϒΛ༻͍ͨϛχΞϓϦ։ൃ ϛχΞϓϦ༻ͷ&OWJSPONFOUΛ ࣮͢Δ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ελϒΛ༻͍ͨϛχΞϓϦ։ൃ "1*$MJFOUελϒΛฦ͢Α͏ʹ ΰϦΰϦॻ͘
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ελϒΛ༻͍ͨϛχΞϓϦ։ൃͰͰ͖͍ͯΔ͜ͱ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ελϒΛ༻͍ͨϛχΞϓϦ։ൃͰͰ͖͍ͯΔ͜ͱ ྫ ϖʔδϯά͋ΓͷҰཡը໘ʹ ͯɺ֤छελϒΛFOVNͰఆٛ͢ Δ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ελϒΛมߋ͢Δ͜ͱͰɺ৭ʑͳڍಈΛ֬ ೝ͢Δ͜ͱ͕Ͱ͖Δɻ ελϒมߋ࠶Ϗϧυ͕ඞཁ͕ͩϛχΞϓ ϦܰྔͳͷͰؾʹ͠ͳ͍͍ͯ͘ ελϒΛ༻͍ͨϛχΞϓϦ։ൃͰͰ͖͍ͯΔ͜ͱ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ଞɺ"1*ॲཧʹ͕͔͔͍࣌ؒͬͯ ΔΑ͏ʹγϛϡϨʔτͤͨ͞Γ ελϒΛ༻͍ͨϛχΞϓϦ։ൃͰͰ͖͍ͯΔ͜ͱ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ελϒΛ༻͍ͨϛχΞϓϦ։ൃ ͜͜Βล·Ͱؾ࣋ͪΑ͘ελϒͰϛχΞϓϦ։ൃͰ͖͍ͯΔͱࢥ͍͕ͬͯͨɺɺɺ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ελϒΛ༻͍ͨϛχΞϓϦ։ൃͰ͏·͍͍ͬͯ͘ͳ͍͜ͱ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ελϒΛ༻͍ͨϛχΞϓϦ։ൃͰ͏·͍͍ͬͯ͘ͳ͍͜ͱ w ը໘Λ·͍ͨͩͱ͖ʹσʔλͷ߹ੑΛͲ͜·ͰͱΔʁ
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ελϒΛ༻͍ͨϛχΞϓϦ։ൃͰ͏·͍͍ͬͯ͘ͳ͍͜ͱ w ը໘Λ·͍ͨͩͱ͖ʹσʔλͷ߹ੑΛͲ͜·ͰͱΔʁ w όοΫΤϯυͷ߹ʢʮ͜͏͍ͬͨ݅ͷͱ͖ʹ͜͏͍ͬͨϨεϙϯ ε͕ฦͬͯ͘ΔʯͳͲʣΛελϒͰ୲อ͢Δ͜ͱͰ͖ͳ͍
ϞδϡʔϧͷϛχΞϓϦʹ͍ͭͯ ελϒΛ༻͍ͨϛχΞϓϦ։ൃͰ͏·͍͍ͬͯ͘ͳ͍͜ͱ w ը໘Λ·͍ͨͩͱ͖ʹσʔλͷ߹ੑΛͲ͜·ͰͱΔʁ w όοΫΤϯυͷ߹ʢʮ͜͏͍ͬͨ݅ͷͱ͖ʹ͜͏͍ͬͨϨεϙϯ ε͕ฦͬͯ͘ΔʯͳͲʣΛελϒͰ୲อ͢Δ͜ͱͰ͖ͳ͍ w ϞοΫͮ͠Β͍ͷΛͲ͏͢Δ͔ʢ1)"TTFUͳͲʣ
Ϟδϡʔϧཧʹ͍ͭͯ
Ϟδϡʔϧཧʹ͍ͭͯ w $PDPBQPETͰཧ͍ͯ͠Δ͚ͩ w ʢҰൠతʹݴΘΕΔϚϧνϞδϡʔϧ։ൃͰ9DPEFHFO41.Λ༻͍ Δ͜ͱ͕ଟ͍ೝࣝʣ
Ϟδϡʔϧཧʹ͍ͭͯ ʮ$PDPBQPETͰཧ͍ͯ͠Δ͚ͩʯͱݴͬͯ w ʮผϨϙδτϦʯʮUBHӡ༻ʯ݁ߏίετ͕͔͔Δ w ʢݱଘͷࣾϥΠϒϥϦͷӡ༻ͰೝࣝࡁΈʣ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠🙇