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
290
Unearth Ruby builtin Gems 發掘 Ruby 的內建 Gems
johnlinvc
0
370
Ruby 型別檢查工具簡介
johnlinvc
0
610
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
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
160
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
Contextとはなにか
chiroruxx
1
300
CSC307 Lecture 17
javiergs
PRO
0
320
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
160
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
130
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
260
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
540
Make SRE Operations Easier with Azure SRE Agent
kkamegawa
0
5.5k
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
140
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.3k
さぁV100、メモリをお食べ・・・
nilpe
0
140
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
How to build a perfect <img>
jonoalderson
1
5.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Odyssey Design
rkendrick25
PRO
2
690
Color Theory Basics | Prateek | Gurzu
gurzu
0
360
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
170
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
22k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.7k
WCS-LA-2024
lcolladotor
0
630
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
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/