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 on Linux
Search
Ben Scheirman
October 13, 2016
Programming
930
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swift on Linux
Presented at CocoaConf Austin 2016 and Pragmaconf '16 in Verona, Italy
Ben Scheirman
October 13, 2016
More Decks by Ben Scheirman
See All by Ben Scheirman
A Promise for a Better Future
subdigital
0
210
Bézier Curves
subdigital
1
5.8k
Buckets of Code
subdigital
0
2.1k
Building 5 Calls for iOS
subdigital
0
170
tvOS Workshop
subdigital
1
200
Swift Solutions
subdigital
2
510
iOS 8 Networking
subdigital
4
990
iOS 8 App Extensions
subdigital
1
410
Effective Networking with iOS 8 and Swift
subdigital
4
1.7k
Other Decks in Programming
See All in Programming
APNsからLive Activityを開始する話
yumnumm
0
180
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.1k
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
220
sbt 2.0: takeoff
eed3si9n
0
170
Atomic Design, Enforced: Scaling Mobile Design Systems (next.app devCon / droidCon Berlin 2026)
steliosf
PRO
0
190
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
150
Seven New Principles of Software Engineering
yegor256
0
360
R8 の設定見直しでアプリサイズ削減
andpad
0
230
プロジェクトコードをキレイキレイしよう!暗黙的な参照を読み解く静的解析
ostk0069
0
130
Vapor Mode でアクセシビリティは 壊れないか検証した話
fuqda
1
200
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.3k
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5k
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
371
20k
Accessibility Awareness
sabderemane
1
260
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Ethics towards AI in product and experience design
skipperchong
2
440
How to Ace a Technical Interview
jacobian
280
24k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.8k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
590
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
300
Transcript
Swift on Linux
Hi, I’m Ben @subdigital
None
None
Written in Swift
Running on $5/mo Linux VPS
(my little secret)
Swift 1.0 Sept 2014 Swift 2.0 Swift Open Sourced Swift
3.0! Sept 2015 Dec 2015 Sept 2016
… but what does that mean? + github.com/apple
1. Swift Language, Compiler, & Debugger (with full commit history!)
None
None
None
2. Swift Core Libraries
*not on Linux (yet) github.com/apple/swift-corelibs-foundation github.com/apple/swift-corelibs-xctest github.com/apple/swift-corelibs-libdispatch Foundation XCTest libDispatch*
3. Swift Package Manager github.com/apple/swift-package-manager
• Defines how modules are built • Resolves Dependencies •
Convention over Configuration
// Package.swift import PackageDescription let package = Package( name: “Foo”,
dependencies: [] )
None
4. Swift Evolution github.com/apple/swift-evolution
None
let’s play
vagrantup.com
git.io/vwJ4g
“Trusty Tahr” trusty(14.04) 64-bit
None
None
$ sudo apt-get install -y \ git \ clang \
libicu-dev
$ Demo
github.com/subdigital/ nsdateformatter
What Else?
?
Wrap your favorite C library!
Create a modulemap: module CCurl [system] { header "/usr/include/curl/curl.h" link
"curl" export * }
Add a git tag…. $ git add . $ git
commit -m “Initial commit” [master (root-commit) fa72d04] initial commit 1 file changed, 1 insertion(+) $ git tag 0.0.1
Reference from your Package.swift .Package(url: “../CCurl”, majorVersion: 0)
Doing active development? Don’t forget to update the tag…. every
time…
None
Thanks! @subdigital nsscreencast.com