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
Embedded FrameworkからSPMへ 段階的移行の軌跡
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
ras0q
July 20, 2023
Programming
0
460
Embedded FrameworkからSPMへ 段階的移行の軌跡
2023/07/20のpixiv App Nightでの発表スライドです。
https://pixiv.connpass.com/event/288082/
ras0q
July 20, 2023
Tweet
Share
More Decks by ras0q
See All by ras0q
PencilKitで実装するPDFへの手書き注釈 / Handwritten-annotations to PDF with PencilKit
ras0q
0
1.1k
iOS16で変わった画面の向きを操作する方法 - iOSDC Japan 2023
ras0q
0
3.9k
Other Decks in Programming
See All in Programming
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
220
GISエンジニアから見たLINKSデータ
nokonoko1203
0
190
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
260
CSC307 Lecture 01
javiergs
PRO
0
680
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
170
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
2.3k
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
170
Kotlin Multiplatform Meetup - Compose Multiplatform 외부 의존성 아키텍처 설계부터 운영까지
wisemuji
0
180
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
500
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
390
ThorVG Viewer In VS Code
nors
0
750
Featured
See All Featured
Designing for Performance
lara
610
70k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
The browser strikes back
jonoalderson
0
340
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Building Applications with DynamoDB
mza
96
6.9k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Un-Boring Meetings
codingconduct
0
190
For a Future-Friendly Web
brad_frost
181
10k
Tell your own story through comics
letsgokoyo
1
800
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.9k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
36k
Transcript
Ras Embedded Framework͔ΒSPM ஈ֊తҠߦͷي
ࣗݾհ • Ras (Β͢) • {Twitter, GitHub, Scrapbox}: @ras0q •
দ͔Β্ژͯ͠4Ͱ͢ • pixivࣄۀຊ෦/ΞϓϦΤϯδχΞϦϯάνʔϜ (ΞϧόΠτ) • Ҏલ·ͰSketchνʔϜʹ͍·ͨ͠ 👈 ࠓճ͜ͷͱ͖ͷ • ౦ژۀେֶ B4 / σδλϧ࡞ಉձtraP • ීஈGoͰόοΫΤϯυΛॻ͍͍ͯ·͢ • iOSDC 2023ग़·͢ʂʂʂʂʂʂʂʂʂʂʂʂʂ
Swift Package ManagerͰ ϓϩδΣΫτཧ͠·ͤΜ͔ʁ
ͷલʹSwift Package Manager ʹ͍ͭͯগ͚ͩ͠
Swift Package Manager (SPM) • Appleެࣜͷύοέʔδཧπʔϧ (2019~) • ͜Ε·ͰCocoaPodsCarthage͕ओྲྀ •
ϥΠϒϥϦϓϩμΫτΛSwiftϑΝΠϧͰཧͰ͖Δ • Package.swiftʹґଘؔΛهड़Ͱ͖Δ • Մಡੑͷ্ • ίϯϑϦΫτ͕ى͖ʹ͍͘ • XcodeprojͰͷύοέʔδཧසൟʹίϯϑϦΫτ͢Δ
None
SPMΛϓϩδΣΫτʹ͏ͱ… • ϓϩδΣΫτΛϞδϡʔϧʹ؆୯ʹׂͰ͖Δ • ϓϩδΣΫτͷmonorepoԽ • ґଘ͕ؔίʔυ্Ͱ໌֬ʹͳΔ • νʔϜ։ൃͰίϯϑϦΫτ͠ͳ͍ •
͜Ε·Ͱ֤ϞδϡʔϧʹxcodeprojΛஔ (Embedded Framework) • ࡞ɾཧ͕େม
ͱ͜ΖͰ
Swift Package ManagerͰ ϓϩδΣΫτཧ͠·ͤΜ͔ʁ
pixiv Sketch • ͓ֆ͔͖ίϛϡχέʔγϣϯΞϓϦ • ʮʑͷ͓ֆ͔͖Λͬͱָ͘͠ʯ • ΞϓϦ্Ͱֆ͕͔͚Δ • ίϝϯτػೳɺϥΠϒ৴ػೳͱ͔͋Δ
• ຖ͓͕ߋ৽͞ΕΔ
SketchͷϞδϡʔϧཧ • Embedded FrameworkͰ֤ϞδϡʔϧΛཧ • ৽نϞδϡʔϧͷ࡞͕େม • ίϯϑϦΫτ͕සൃ • SPMΛͬͯϞμϯͰվमʹڧ͍ϞδϡʔϧཧʹΓସ͍͑ͨ
• ҠߦͰ͖Δ෦Λஈ֊తʹҠߦͨ͠
None
SketchͰͷSPMҠߦखॱ 1. Ҡߦ͕ͦ͠͏ͳϞδϡʔϧͷચ͍ग़͠ 2. ҠߦͰ͖ͦ͏ͳϞδϡʔϧͷҠߦखॱΛܾΊΔ 3. ϞδϡʔϧΛ·ͱΊΔύοέʔδΛ࡞ 4. ҠߦखॱʹԊͬͯ1ͭͣͭҠߦΛߦ͏
SketchͰͷSPMҠߦखॱ 1. Ҡߦ͕ͦ͠͏ͳϞδϡʔϧͷચ͍ग़͠ 2. ҠߦͰ͖ͦ͏ͳϞδϡʔϧͷҠߦखॱΛܾΊΔ 3. ϞδϡʔϧΛ·ͱΊΔύοέʔδΛ࡞ 4. ҠߦखॱʹԊͬͯ1ͭͣͭҠߦΛߦ͏
1. Ҡߦ͕ͦ͠͏ͳϞδϡʔϧͷચ͍ग़͠ • ґଘ͍ͯ͠ΔϥΠϒϥϦ͕SPMʹରԠ͍ͯ͠ͳ͍ • UIपΓҰ୴์ஔ • storyboardxibϑΝΠϧͷҠߦ͕͍͠ • ແཧ͗ͣ͢͠
• Ҡߦ͕͍͠ͱ͜ΖͱΓ͋͑ͣͦͷ··Ͱ
SketchͰͷSPMҠߦखॱ 1. Ҡߦ͕ͦ͠͏ͳϞδϡʔϧͷચ͍ग़͠ 2. ҠߦͰ͖ͦ͏ͳϞδϡʔϧͷҠߦखॱΛܾΊΔ 3. ϞδϡʔϧΛ·ͱΊΔύοέʔδΛ࡞ 4. ҠߦखॱʹԊͬͯ1ͭͣͭҠߦΛߦ͏
2. ҠߦͰ͖ͦ͏ͳϞδϡʔϧͷҠߦखॱΛܾΊΔ • ·ͣଞͷґଘ͕ͳ͍SketchModelΛҠߦ • ͦͷ࣍ʹUI৴ͷґଘ͕গͳ͍SketchCommonSketchAPIΛҠߦ • UI৴पΓҰ୴์ஔ
SketchͰͷSPMҠߦखॱ 1. Ҡߦ͕ͦ͠͏ͳϞδϡʔϧͷચ͍ग़͠ 2. ҠߦͰ͖ͦ͏ͳϞδϡʔϧͷҠߦखॱΛܾΊΔ 3. ϞδϡʔϧΛ·ͱΊΔύοέʔδΛ࡞ 4. ҠߦखॱʹԊͬͯ1ͭͣͭҠߦΛߦ͏
3. ϞδϡʔϧΛ·ͱΊΔύοέʔδΛ࡞ • ϝχϡʔόʔ͔ΒύοέʔδΛ࡞ • ϓϩδΣΫτԼʹஔ • xcworkspaceʹՃ • SketchͰSketchPackageΛ࡞
SketchͰͷSPMҠߦखॱ 1. Ҡߦ͕ͦ͠͏ͳϞδϡʔϧͷચ͍ग़͠ 2. ҠߦͰ͖ͦ͏ͳϞδϡʔϧͷҠߦखॱΛܾΊΔ 3. ϞδϡʔϧΛ·ͱΊΔύοέʔδΛ࡞ 4. ҠߦखॱʹԊͬͯ1ͭͣͭҠߦΛߦ͏
4. ҠߦखॱʹԊͬͯ1ͭͣͭSPMҠߦΛߦ͏ ※ Ϟδϡʔϧ໊Moͱ͠·͢ • project_root/MoΛSketchPackage/MoʹҠಈ͢Δ • Mo.xcodeprojΛআ • ֤targetͷґଘϥΠϒϥϦ͔ΒMo.frameworkΛআ
& MoϞδϡʔϧΛՃ • assetϑΝΠϧͳͲೝࣝ͞Εͳ͍ͨΊҙ • reference error ى͖͕ͪ (࠶ىಈͰେମ࣏Γ·͢)
ҠߦखॱΛܾΊͯ ແཧͤͣSPMҠߦ͠Α͏
ࢀߟ • Swift.org - Package Manager • Swift Package centered
project - Build and Practice - Speaker Deck • iOSΞϓϦͰSPMΛ༻͍ͨϚϧνϞδϡʔϧߏΛࢼͯ͠Έͨ - Zenn
͓·͚ • SPMͷϞδϡʔϧׂΛͬͯݸਓΞϓϦΛ։ൃ͍ͯ͠·͢ • github.com/ras0q/traq-ios-clone • traQͷiOSΫϥΠΞϯτ • ࣌ظະఆͰ͢