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
本編では話さない Zig の話
andpad
2
160
"noncopyable types" の使いどころについて考えてみた
andpad
0
260
ANDPAD黒板のオフラインモード機能 リリースまでの軌跡
andpad
0
110
アンドパッドのマルチプロダクト戦略を支える SRE
andpad
1
130
Introduction of Cybersecurity with OSS (RDRC2024)
andpad
1
33
開発チームとともに進めるインフラセキュリティの継続的な改善
andpad
2
68
ANDPAD and Ruby
andpad
1
550
Modular semantic actions
andpad
0
120
about #67401 //go:linkname
andpad
3
22k
Other Decks in Technology
See All in Technology
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
120
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
マルチモーダル / AI Agent / LLMOps 3つの技術トレンドで理解するLLMの今後の展望
hirosatogamo
37
12k
Terraform Stacks入門 #HashiTalks
msato
0
350
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
600
誰も全体を知らない ~ ロールの垣根を超えて引き上げる開発生産性 / Boosting Development Productivity Across Roles
kakehashi
1
230
Engineer Career Talk
lycorp_recruit_jp
0
170
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
Lambdaと地方とコミュニティ
miu_crescent
2
370
Platform Engineering for Software Developers and Architects
syntasso
1
520
AWS Lambdaと歩んだ“サーバーレス”と今後 #lambda_10years
yoshidashingo
1
170
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
110
Featured
See All Featured
What's new in Ruby 2.0
geeforr
343
31k
Done Done
chrislema
181
16k
Navigating Team Friction
lara
183
14k
How GitHub (no longer) Works
holman
310
140k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
65k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Embracing the Ebb and Flow
colly
84
4.5k
The Art of Programming - Codeland 2020
erikaheidi
52
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
Faster Mobile Websites
deanohume
305
30k
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 ʢݱଘͷࣾϥΠϒϥϦͷӡ༻ͰೝࣝࡁΈʣ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠🙇