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 Weekly 12/13
Search
Johnlin
December 13, 2016
Programming
100
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
300
Unearth Ruby builtin Gems 發掘 Ruby 的內建 Gems
johnlinvc
0
390
Ruby 型別檢查工具簡介
johnlinvc
0
620
Swift Actor 實作探索
johnlinvc
0
200
用 mruby 來寫跨平台工具
johnlinvc
0
120
Actor model 簡介
johnlinvc
0
240
一起玩 Helm 3
johnlinvc
1
160
為什麼 App 卡卡的
johnlinvc
2
1.3k
如何使用 byebug 來除錯 Ruby 程式
johnlinvc
0
260
Other Decks in Programming
See All in Programming
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
650
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
460
【やさしく解説 設計編 #0】DDDのコード、読めるのに分からない人へ
panda728
PRO
2
270
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
Claude Team Plan導入・ガイド
tk3fftk
0
210
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
0
210
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
260
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
130
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
150
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
220
才能?センス?知らん、 続けたもん勝ちだ。-- 結婚・出産・癌を越えてなお、私がプロダクトを創り続ける理由
16bitidol
2
860
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
120
Featured
See All Featured
Writing Fast Ruby
sferik
630
63k
Google's AI Overviews - The New Search
badams
0
1.1k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
290
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.3k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
450
Abbi's Birthday
coloredviolet
3
8.7k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
630
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/