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
Server-side Swift
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Petr Pavlik
June 20, 2016
Programming
0
100
Server-side Swift
Petr Pavlik
June 20, 2016
Tweet
Share
More Decks by Petr Pavlik
See All by Petr Pavlik
XcodeGen
petrpavlik
0
160
Video Streaming
petrpavlik
0
16
Danger feat. SwiftLint on Linux
petrpavlik
0
560
Other Decks in Programming
See All in Programming
CSC307 Lecture 03
javiergs
PRO
1
490
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
AI & Enginnering
codelynx
0
110
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
450
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
270
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
450
React 19でつくる「気持ちいいUI」- 楽観的UIのすすめ
himorishige
11
7.4k
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
210
Apache Iceberg V3 and migration to V3
tomtanaka
0
160
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.1k
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
730
Featured
See All Featured
AI: The stuff that nobody shows you
jnunemaker
PRO
2
250
Skip the Path - Find Your Career Trail
mkilby
0
56
Odyssey Design
rkendrick25
PRO
1
490
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
210
Thoughts on Productivity
jonyablonski
74
5k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
68
Typedesign – Prime Four
hannesfritz
42
2.9k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
450
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Transcript
Server-side Swift Petr Pavlik wormapp.co @ptrpavlik
Why Swift?
Why Swift? It helps you write safer code
Swift struct User { let id: String = guuid() var
name: String var aboutMe: String? } var user = User(name: "Petr", aboutMe: nil)
Swift var user = User(name: "Petr", aboutMe: nil) print("\(user)") User(id:
"34jk43k43k", name: "Petr", aboutMe: nil)
Swift var user = User(name: "Petr", aboutMe: nil) user.id =
"123" //error
Swift var user = User(name: "Petr", aboutMe: nil) user.aboutMe =
"something creative" //ok let immutableUser = user immutableUser.aboutMe = "!"#" //error
What Is Open Source
What Is Open Source • Swift Compiler
What Is Open Source • Swift Compiler • Foundation Framework
& GCD • Networking, calendar, filesystem, threading, ...
What Is Open Source • Swift Compiler • Foundation Framework
& GCD • Networking, calendar, filesystem, threading, ... • Swift Package Manager • Dependency manager
None
What Is Open Source • Swift Compiler • Foundation Framework
& GCD • Networking, calendar, filesystem, threading, ... • Swift Package Manager • Dependency manager • XCTest • Unit testing
Example App feat. Kitura
Example App $ swift build --init
Example App $ swift build --init !
Example App Example ├── Package.swift ├── Sources │ └── main.swift
└── .swiftenv
Package.swift import PackageDescription let package = Package( name: "example", dependencies:
[ .Package(url: "https://github.com/IBM-Swift/Kitura.git", majorVersion: 0, minor: 17) ])
main.swift import Kitura
main.swift import Kitura let router = Router()
main.swift import Kitura let router = Router() router.get("/") { request,
response, next in response.send("Hello, World!") next() }
main.swift import Kitura let router = Router() router.get("/") { request,
response, next in response.send("Hello, World!") next() } Kitura.addHTTPServer(onPort: 8090, with: router)
main.swift import Kitura let router = Router() router.get("/") { request,
response, next in response.send("Hello, World!") next() } Kitura.addHTTPServer(onPort: 8090, with: router) Kitura.run()
main.swift import Kitura let router = Router() router.get("/") { request,
response, next in response.send("Hello, World!") next() } Kitura.addHTTPServer(onPort: 8090, with: router) Kitura.run() //!
Example App $ swift build
Example App Example ├── Package.swift ├── Sources │ └── main.swift
├── Packages │ └── Kitura-0.16.1 │ └── Kitura-net-0.16.0 │ └── Kitura-Sys-0.16.0 │ └── LoggerAPI-0.8.0 └── .build └── debug └── example
Example App $ .build/debug/example
Example App $ .build/debug/example $ curl http://localhost:8090 Hello, World!
Example App $ swift build -X generates an Xcode project
None
Frameworks • Kitura - !/IBM-Swift/Kitura • Perfect - !/PerfectlySoft/Perfect •
Vapor - !/qutheory/vapor
Deployment • Docker • https://hub.docker.com/r/ibmcom/kitura-ubuntu/ • http://kubernetes.io • Heroku, IBM
Bluemix • Buildpack • Procfile • .swiftenv
Thank you! @ptrpavlik