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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
[2026-10-14](C)Re:ゼロから始める異世界生活〜始まりの終わりと終わりの始まり〜
tosite
0
160
Jetpack Compose Mechanisms
skydoves
3
880
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
210
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
110
オーケストレーション記述言語 Katari
yukikurage
0
200
Groovy as a human and AI friendly programming language
paulk
0
120
個人開発者よ、Honoを使え(おじさんver)
tanahiro2010
2
280
Compiling a real-world CLI tool to native with Static Hermes
tmikov2023
0
130
Domain-Driven Transformation
hschwentner
2
2.3k
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.3k
contenteditable と日本語入力に向き合う
colorful12
0
220
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
430
Featured
See All Featured
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
Chasing Engaging Ingredients in Design
codingconduct
0
370
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
Writing Fast Ruby
sferik
630
63k
Ethics towards AI in product and experience design
skipperchong
2
440
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
490
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Building Applications with DynamoDB
mza
96
7.3k
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
740
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