Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Swift Weekly 12/13
Search
Johnlin
December 13, 2016
Programming
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swift Weekly 12/13
Johnlin
December 13, 2016
More Decks by Johnlin
See All by Johnlin
用 MLIR 實作 一個 Ruby IR (intermediate representation)
johnlinvc
0
340
Unearth Ruby builtin Gems 發掘 Ruby 的內建 Gems
johnlinvc
0
420
Ruby 型別檢查工具簡介
johnlinvc
0
640
Swift Actor 實作探索
johnlinvc
0
210
用 mruby 來寫跨平台工具
johnlinvc
0
130
Actor model 簡介
johnlinvc
0
250
一起玩 Helm 3
johnlinvc
1
170
為什麼 App 卡卡的
johnlinvc
2
1.3k
如何使用 byebug 來除錯 Ruby 程式
johnlinvc
0
280
Other Decks in Programming
See All in Programming
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
320
Java 27新機能 / Java 27 new features
kishida
2
140
iOSDC2026登壇資料.pdf
riofujimon
0
160
Webの地図
yosuke_furukawa
PRO
6
4.5k
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
AIを上手に使っていこうとしたら越境せざるを得なくなった話 〜実践1年で見えた境界を越えなければならない理由と進め方〜 / Crossing borders with AI
tomoyakitaura
4
1.1k
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
120
速習iPhone Duo対応
yuukiw00w
1
290
iOSDC Japan 2026 - Swiftで作って学ぼう!データベース自作入門
kaseken
2
160
Family mrubyの進捗
kishima
1
120
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
340
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
280
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
1.6k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
360
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
WENDY [Excerpt]
tessaabrams
14
39k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
240
Between Models and Reality
mayunak
4
460
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
510
Embracing the Ebb and Flow
colly
88
5.2k
Darren the Foodie - Storyboard
khoart
PRO
4
3.9k
Transcript
Swift पใ 12/13 John Lin @johnlinvc
From the core • Swift 3.1 ᚙྲྀఔ • ະိ Swift
తԼ૬༰
Swift 3.1 ᚙྲྀఔ • Swift 3.1 ။Լ૬༰ Swift 3.0ɼݱ༗తఔࣜᛰෆ༻ मվ
• رೳࡏ2017 य़ఱᚙɻ
ະိSwift తԼ૬༰ • 3.X ൘ʢแؚ 3.1) ။શ૬༰ 3.0 ൘ɼୠੋ༗Մೳ။ Ճ૬༰త৽ޠ๏ɻ
• Swift 4ฤᩄث။ଟҰݸჩᏐ -swift-version ༻ိඪ ࣔఔࣜᛰత Swift ൛ຊɻ څ 3 बදੋ 3.X ൘ɼڅ 4 बදੋ 4.X ൘ɻ
ະိSwift తԼ૬༰ • 4.X ൘ 3.X ൘త Swift library
ሡՄҎࠞ༻ɻॴҎෆ ༻፦৺૬ґత݅ᔒ༗ঋڃɻ • Swift ݅ཧث။ଟҰݸબ߲ိࢦఆ૬༰త൛ຊɻ
Evolution • [SE-0145] ݅ཧث൛ຊݻఆ • [SE-0146] ݅ཧثՄࣗగ㗞
[SE-0145] ݅ཧث൛ຊݻఆ • ༻݅ཧث҆݅ޙ။ࣗಈ㗞ੜҰݸ Package.pins 䈕Ҋɼཫ໘။แؚॴ༗݅తৄࡉ൛ ຊࢿ㘤(൛ຊɼSHA1)ɻ • ᙛ҆݅࣌ɼ။༏ઌ༻ Package.pins
ိܾఆ൛ ຊɼՌᔒ༗Ṝݸ䈕Ҋ࠽။ Package.swift
[SE-0145] ݅ཧث൛ຊݻఆ • ။ڣ Package.pins ࣕෆڣ Package.lock ੋҼҝ POSIX ༗
lock, Thread ༗ lock • Package.pins త֬֨ࣜؐᔒ༗ܾఆɼመ࡞ऀ ༻ॄኄᒬత֨ࣜɻෆաେ֓ੋJSON
[SE-0145] ݅ཧث൛ຊݻఆ • swift build • Ռ༗ Package.pinsɼबཫ໘తࢦఆ൛ຊɻ • ᔒ༗
Package.pinsɼ༻ Package.swift ိܾఆద ߹త൛ຊɼ࠶ࠣࢿ㘤ࣗಈሜਐ Package.pins
[SE-0145] ݅ཧث൛ຊݻఆ • swift package pin --all #ݻఆݱ༗త൛ຊ • swift
package pin Foo #ݻఆݱ༗తFoo൛ຊ • swift package pin Foo 1.2.3 #ݻఆFoo౸1.2.3൘ • swift package pin Foo 1.2.3 --message “1.2.4 is broken” #ݻఆFoo౸1.2.3൘ɼෟ্ݪҼ
[SE-0145] ݅ཧث൛ຊݻఆ • swift package pin --enable-autopin #⬏Ⴈሱọܥקđswift package
update ޙ။ࣗಈݻ ఆ৽త൛ຊ • swift package pin --disable-autopin #औফࣗಈݻఆɼswift package update ޙෆ။ࣗಈ ݻఆ৽త൛ຊ
[SE-0145] ݅ཧث൛ຊݻఆ • swift package unpin --all #औফॴ༗తݻఆɼՌࣗಈݻఆ։⬏త။㗞ੜࡨ ޡ
• swift package unpin Foo #औফFooతݻఆɼՌࣗಈݻఆ։⬏త။㗞ੜࡨ ޡ
[SE-0146] ݅ཧثՄࣗగ㗞 • ݅ఆٛதআྃݱ༗త Target ֎ؐՄҎఆٛ ProductɼҝLibrary Executable ၷछ
• ՄҎࢦఆ݅தత Product ҝ૬ґੑ
[SE-0146] ݅ཧثՄࣗగ㗞 let package = Package( name: "MyServer", targets:
[ Target(name: "Utils"), Target(name: "HTTP", dependencies: ["Utils"]), Target(name: "ClientAPI", dependencies: ["HTTP", "Utils"]), Target(name: "ServerAPI", dependencies: ["HTTP"]), Target(name: "ServerDaemon", dependencies: ["ServerAPI"]), ], products: [ .Library(name: "ClientLib", type: .static, targets: ["ClientAPI"]), .Library(name: "ServerLib", type: .dynamic, targets: ["ServerAPI"]), .Executable(name: "myserver", targets: ["ServerDaemon"]), ] )
[SE-0146] ݅ཧثՄࣗగ㗞 let package = Package( name: "MyClient", targets:
[ Target(name: "ClientCLI", dependencies: [.product(name:"ClientAPI", package:"MyServer")]), ], products: [ .Executable(name: "myclient-cli", targets: ["ClientCLI"]), ] )
Community • method dispatching in swift https://www.raizlabs.com/dev/2016/12/swift- method-dispatch/