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 (SwiftPM, SPM)
Search
Satoshi Hachiya
May 25, 2016
Programming
3.5k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swift Package Manager (SwiftPM, SPM)
potatotips #29
Satoshi Hachiya
May 25, 2016
More Decks by Satoshi Hachiya
See All by Satoshi Hachiya
iOS の HTTP キャッシュについて
jp_pancake
3
720
花嫁アプリを作った
jp_pancake
1
550
try! ReactorKit
jp_pancake
1
790
QR Code Recognition on iOS 11
jp_pancake
1
1.4k
WWDC Pre Party 2018 at Ebisu
jp_pancake
4
3.4k
try! Swift Tokyo 2018 Report
jp_pancake
1
530
try! Swift Tokyo 2018 Day 1 Opening
jp_pancake
0
880
What is `Swifty`?
jp_pancake
2
1.4k
danger-swift
jp_pancake
2
1.6k
Other Decks in Programming
See All in Programming
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
5
930
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
830
PyConJP2026_wat_Python × Signal Processing: How to Draw Pictures with Sound Using Spectrogram Art
wat
0
660
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
2
310
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
140
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
350
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
リアルな遅延を測る仕様
kota_yata
1
140
高専、大学編入、そして未踏へ〜プロダクト開発とキャリアの歩み - Technical College, University Transfer, and On to “Mitou” / My Journey in Product Development and Career
pkmiya
0
140
週末にAI-DLCを本気で回したら$1,600溶けた
hbashimizu
0
120
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
670
MySQLとPostgreSQLって何が違うの?
akagami
PRO
0
160
Featured
See All Featured
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
400
Are puppies a ranking factor?
jonoalderson
2
3.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
520
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
870
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.5k
Done Done
chrislema
186
16k
Marketing to machines
jonoalderson
1
5.7k
Prompt Engineering for Job Search
mfonobong
0
440
The untapped power of vector embeddings
frankvandijk
2
1.9k
Transcript
Swift Package Manager (SwiftPM, SPM) 2016-05-25 potatotips #29 JPMartha 1
ࣗݾհ @JPMartha_jp JPMartha 2
Swift Package Manager 3
͢͜ͱ ᶃ Swift Package Manager ೖ ᶄ ͜ΕΛۦͨ͠πʔϧհ 4
apple / swift-package-manager (GitHub) 5
Merged ! 6
ͨͩ͠։ൃ͢Δʹ apple / master ͷ࠷৽͕ඞཁ ʢDevelopment Snapshots ෆཁʣ ͍Ζ͍Ζ͍͜͠ͷͰ ڵຯ͕͋Δํͷͪ΄Ͳฉ͍͍ͯͩ͘͞ɻ
7
͝ଘͳ͍ํ͚ʹ • ैདྷͷϥΠϒϥϦΛύοέʔδͱݺͼ·͢ɻ • CocoaPods, Carthage ͷΑ͏ʹϥΠϒϥϦΛཧ ͢ΔπʔϧͰ͢ɻ • ͨͩ͠গ͠ҧ͍·͢ɻ
8
ύοέʔδΛ Ϗϧυ͢Δ $ swift build 9
$ swift build • Xcode ΛΘͳ͍ͰύοέʔδશମΛϏϧυ͠·͢ɻ • Swift 3.0-devʢSwift 2.2
ʹͳ͍ʣͰ͢ɻ • Apple ͷϦϙδτϦʹকདྷ૾͕هࡌ͞Ε͍ͯ·͕͢۩ମ తʹ·ͩΘ͔Γ·ͤΜɻ • Archive ͕ͳ͍Ͱ͕͢ Xcode ϓϩδΣΫτΛੜ͢ΔίϚ ϯυ͕͋Γ·͢ɻ`$ swift build -X` ʢকདྷతʹ Xcode ʹΈࠐ·ΕΔΑ͏Ͱ͢ʣ 10
Tips ୯ʹʮ͜͏͍͏͜ͱ͕Ͱ͖·͢ʯͱ͍͏Ͱ͢ɻ 11
Module • Sources ͱ Tests ҎԼΛσΟϨΫτϦͰΘ͚Δ͜ͱ ʹΑΓɺ໊લۭؒΛΘ͚Δ͜ͱ͕Ͱ͖·͢ɻ Directory.isAccessible() File.isAccessible() •
αʔυύʔςΟͷϥΠϒϥϦͰ໊લ͕όοςΟϯ άͯ͠Αͦ͞͏Ͱ͢ɻʢσΟϨΫτϦ͕ผʣ 12
Directory / File #if os(Linux) import Glibc #else import Darwin
#endif #if os(Linux) public func isAccessible(name: String) -> Bool { guard !name.isEmpty else { return false } return access(name, F_OK) == 0 } #else public func isAccessible(path: String) -> Bool { guard !path.isEmpty else { return false } return access(path, F_OK) == 0 } #endif 13
Travis CI Cross-Platform (OS X, Linux) 14
.travis.yml 15
run-tests.sh 16
JPMartha / FounDarwin 17
͜͜·Ͱ͕ Swift Package Manager ೖͷ Ͱͨ͠ɻ 18
Swift Package Manager Ͱ ίϚϯυϥΠϯπʔϧΛ ࡞͠·ͨ͠ tryswift on GitHub 19
tryswiftdev Φʔϓϯιʔε༻ίϚϯυϥΠϯπʔϧ܈Ͱ͢ɻ 20
README Generator ৽͍͠ϓϩδΣΫτͷ README Λ؆୯ʹ࡞Ε·͢ʂ • It duplicates an existing
README.md • It replaces strings (e.g. Name) in a README.md 21
Find it "image not found” Λ୳͠·͢ʂ • "Find It" searches
for a specified file in some directories. • It makes easy for you to compare your Xcode Build Settings and find a mistake. 24
Version Strings Updater ֤छυΩϡϝϯτͷόʔδϣϯ จࣈྻΛҰׅม͠·͢ʂ 26
Development Snapshots Installer ৽͍͠ Snapshots Λ؆୯ʹΠϯετʔϧͰ͖·͢ʂ • It downloads a
specified Developer Snapshot into your current working directory. • It installs the package via the sudo command. • It removes the pkg file. 28
try! Swift 3.0 Swift 3.0 ͚ͷڥมΛ؆୯ʹ ઃఆͰ͖·͢ʂ 30
A WORK IN PROGRESS " 32
Thanks! 33