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
Swift Package Manager によるマルチモジュール構成
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Tomoki Kobayashi
September 10, 2021
Programming
2k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swift Package Manager によるマルチモジュール構成
2021/9/10 に開催された「みそかつモバイル#1」での発表資料です
https://misokatsu-web.connpass.com/event/221035/
Tomoki Kobayashi
September 10, 2021
More Decks by Tomoki Kobayashi
See All by Tomoki Kobayashi
Ruby×iOSアプリ開発 ~共に歩んだエコシステムの物語~
temoki
0
2.9k
Liquid Glass を Metal Shader で描きたいだけの人生だった…
temoki
0
210
Skip Skip Run Run Run ♫
temoki
0
990
さようならRxSwift こんにちは*****
temoki
1
600
Androidで不安定なPlatform Viewsとの闘い
temoki
0
1.1k
iOSパッケージマネージャー奮闘記 完結編
temoki
2
740
事業譲渡を受けたアプリとの統合で失敗、 そしてユーザーからの評価回復に至るまで
temoki
1
790
Apple Vision Proデベロッパラボに参加してきた
temoki
0
610
年末年始の成果、そして現状の紹介
temoki
0
310
Other Decks in Programming
See All in Programming
Vite+ Unified Toolchain for the Web
naokihaba
0
320
AIだと陥りがちなJakarta EE最新技術への移行時の落とし穴と解決策
tnagao7
0
110
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
140
TypeScript+Orvalで実現する型安全かつ堅牢でスケーラブルなマルチチャネル通知基盤 / TSKaigi Night talks ~after conference~
d0riven
0
340
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
170
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
200
3Dシーンの圧縮
fadis
1
780
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
140
スマートグラスで並列バイブコーディング
hyshu
0
150
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
570
Lessons from Spec-Driven Development
simas
PRO
0
210
AI 輔助遺留系統現代化的經驗分享
jame2408
1
530
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
820
Git: the NoSQL Database
bkeepers
PRO
432
67k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
720
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
330
Side Projects
sachag
455
43k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
420
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
Ruling the World: When Life Gets Gamed
codingconduct
0
260
Google's AI Overviews - The New Search
badams
0
1k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
850
Exploring anti-patterns in Rails
aemeredith
3
410
Between Models and Reality
mayunak
4
340
Transcript
!UFNPLJ 4XJGU1BDLBHF.BOBHFSʹΑΔ ϚϧνϞδϡʔϧߏ Έ͔ͦͭϞόΠϧ
5PNPLJ,PCBZBTIJ !UFNPLJ w גࣜձࣾελϝϯʢ໊ݹʣ w ΤϯδχΞϦϯάɾϚωʔδϟʔ w J1IPOF(ຊ্ͱಉ࣌ʹ J1IPOFΞϓϦ։ൃΛ࢝ΊΔ
w "OESPJE 'MVUUFSʹखΛग़͢
📖ΒΓදࢴͰݟ͚ͭΔֆຊ͞ΜΞϓϦ 'MVUUFSͰJ04"OESPJE8FCΞϓϦΛϦϦʔεʂ https://perali.hiraku.space/about
9DPEFͷϞδϡʔϧ
import UIKit import SwiftUI 👈ίϨ
ϞδϡʔϧΛ͚ΔϝϦοτɾσϝϦοτ w ✅ଞͷϞδϡʔϧͷެ։ൣғΛίϯτϩʔϧͰ͖Δ w ✅Ϟδϡʔϧ୯ҐͰͷϏϧυʹΑΓϏϧυ͕࣌ؒॖ͞ΕΔ w ❌దʹϞδϡʔϧΛׂ͢Δқ͕ߴ͍ w ❌ϞδϡʔϧؒΛૄ݁߹ʹ͢ΔͨΊͷநԽʹΑΓෳࡶ্͕͕͞Δ
ྫ ;PPϞδϡʔϧΛఆٛ
ྫ ;PPϞδϡʔϧΛ͏
9DPEFͷϚϧνϞδϡʔϧߏ
.VMUJ5BSHFUT 9DPEFϓϩδΣΫτͷதʹෳͷλʔήοτ
.VMUJ1SPKFDUT 9DPEFϫʔΫεϖʔεͷதʹෳͷ9DPEFϓϩδΣΫτ
9DPEF1SPKFDUϑΝΠϧͱͷ ಆ͍͕େมͳ͜ͱʹʜ
9DPEF1SPKFDUϑΝΠϧͱͷ ಆ͍͕େมͳ͜ͱʹʜ
🆕.VMUJ-PDBM4XJGU1BDLBHFT
🆕.VMUJ-PDBM4XJGU1BDLBHFT 9DPEFϓϩδΣΫτͷதʹϩʔΧϧཧͷ4XJGUύοέʔδΛෳஔ
.VMUJ-PDBM4XJGU1BDLBHFTߏͷ࡞Γํ ᶃΞϓϦ༻ͷ9DPEFϓϩδΣΫτΛ༻ҙ MyApp MyApp.xcodeproj MyApp
.VMUJ-PDBM4XJGU1BDLBHFTߏͷ࡞Γํ ᶄMJCSBSZλΠϓͷ4XJGUύοέʔδΛ࡞Δ MyApp MyApp.xcodeproj MyApp ModuleA mkdir
ModuleA cd $_ swift package init
.VMUJ-PDBM4XJGU1BDLBHFTߏͷ࡞Γํ ᶅύοέʔδͷσΟϨΫτϦΛ9DPEFͷ1SPKFDU/BWJHBUPSυϩοϓ MyApp MyApp.xcodeproj MyApp ModuleA ModuleA
.VMUJ-PDBM4XJGU1BDLBHFTߏͷ࡞Γํ ᶆՃͨ͠ύοέʔδΛΞϓϦͷϦϯΫରʹઃఆ͢Δ MyApp MyApp.xcodeproj MyApp ModuleA
.VMUJ-PDBM4XJGU1BDLBHFTߏͷ࡞Γํ ᶇύοέʔδؒͷґଘؔ1BDLBHFTXJGUʹఆٛ MyApp MyApp.xcodeproj MyApp ModuleA ModuleB ґଘ
✅Ϟδϡʔϧͷઃఆ1BDLBHFTXJGU 9DPEFϓϩδΣΫτϑΝΠϧʹൺͯѹతʹ؆ܿʹʂ ෳਓ։ൃͰͷίϯϑϦΫτͷۤ௧αϤφϥ👋
✅Ϟδϡʔϧ୯ҐͰͷܰྔͳ։ൃ 4XJGUύοέʔδͷΈ9DPEFͰ։͍ͯ։ൃ͢ΕϏϧυαΫαΫಈ͘ʂ
'"2ʢࢲ͕ࠔͬͯௐͨ͜ͱʣ
4XJGU6*ͷϓϨϏϡʔදࣔͰ͖·͔͢ʁ ✅Ͱ͖·͢ʂͨͩ͠4XJGU6*͕ར༻Ͱ͖Δ1MBUGPSNͷࢦఆ͕ඞਢɻ ·ͨɺϓϨϏϡʔ༻ʹ͏1SFWJFX$POUFOUʹ૬͢Δػೳ͕ͳͦ͞͏ɻ 9DPEF1SFWJFXΛ༻͢Δ߹ 4XJGU6*͕ར༻Ͱ͖Δ1MBUGPSN͕ඞਢ
ύοέʔδʹϦιʔεؚΊΒΕ·͔͢ʁ ✅Ͱ͖·͢ʂYDBTTFUT TUPSZCPBSE TUSJOHTͱ͍ͬͨҰൠతͳ ϦιʔεϑΝΠϧࣗಈతʹύοέʔδͷ#VOEMFʹಉࠝ͞Ε·͢ɻ ϩʔΧϥΠζɾϦιʔεΛؚΉ߹ EFGBVMU-PDBMJ[BUJPOͷઃఆΛʂ ͦͷଞͷϦιʔεϑΝΠϧ 5BSHFUʹ໌͍ࣔͯͩ͘͠͞
JG%(Ͱσόοά࣌ͷίʔυΛॻ͚·͔͢ʁ ✅ॻ͚·͢ʂಠࣗͷίϯύΠϧ࣌ϑϥά1BDLBHFTXJGUʹఆٛͰ͖·͢ɻ
ύοέʔδϏϧυ࣌ʹ4XJGU-JOUΛ࣮ߦ͍ͨ͠ʂ ❌Ͱ͖·ͤΜʂ w 9DPEFϓϩδΣΫτͷ#VJME1IBTF4DSJQU૬ͷΈ͕͋Γ·ͤΜ w 4DIFNFͷ#VJME1SF"DUJPOͰ9DPEFͰ-JOU݁ՌΛͰදࣔͰ͖·ͤΜ TXJGUMJOU fi YͷΈͳΒ0,ʣ
w ΞϓϦຊମϓϩδΣΫτͷϏϧυ࣌ʹҰׅνΣοΫ͢Δ͔͠ͳ͍ͷ͔ʁ
·ͱΊ
·ͱΊ w ΞϓϦ։ൃʹ͓͍ͯϩʔΧϧཧͷ4XJGUύοέʔδͰ ϚϧνϞδϡʔϧߏΛ࣮ݱͰ͖Δ w 9DPEFϓϩδΣΫτʹΑΔϚϧνϞδϡʔϧߏΑΓɺ 1BDLBHFTXJGUʹΑΓγϯϓϧʹཧͰ͖Δ w 9DPEFϓϩδΣΫτͱͷҧ͍ΛѲ͓ͯ͘͠ඞཁ͕͋Δ