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
Startup Swift
Search
Mo Kudeki
March 03, 2017
Technology
2
1.2k
Startup Swift
From Try! Swift Tokyo 2017
Mo Kudeki
March 03, 2017
Tweet
Share
Other Decks in Technology
See All in Technology
モバイル界のMCPを考える
naoto33
0
410
生成AI開発案件におけるClineの業務活用事例とTips
shinya337
0
220
Yamla: Rustでつくるリアルタイム性を追求した機械学習基盤 / Yamla: A Rust-Based Machine Learning Platform Pursuing Real-Time Capabilities
lycorptech_jp
PRO
4
220
Tech-Verse 2025 Keynote
lycorptech_jp
PRO
0
1.7k
United Airlines Customer Service– Call 1-833-341-3142 Now!
airhelp
0
160
Model Mondays S2E03: SLMs & Reasoning
nitya
0
330
AWS Organizations 新機能!マルチパーティ承認の紹介
yhana
1
260
KubeCon + CloudNativeCon Japan 2025 Recap
ren510dev
1
360
怖くない!はじめてのClaude Code
shinya337
0
360
Southwest airlines®️ USA Contact Numbers: Complete 2025 Support Guide
oliversmith12
0
110
Zephyr RTOSを使った開発コンペに参加した件
iotengineer22
1
190
論文紹介:LLMDet (CVPR2025 Highlight)
tattaka
0
300
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
134
9.4k
How GitHub (no longer) Works
holman
314
140k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Being A Developer After 40
akosma
90
590k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Producing Creativity
orderedlist
PRO
346
40k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Adopting Sorbet at Scale
ufuk
77
9.4k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Transcript
STARTUP SWIFT MO @KUDEKI
None
EARLY 2016
None
MVP
EMBRACE BEING A BEGINNER
PARSE + SWIFT
PARSE + SWIFT = FAST (TO WRITE)
CONCISE UNINTIMIDATING
PARSE + SWIFT = FAST (TO WRITE) (AND LOTS OF
COCOAPODS)
READY FOR SALE!
None
100K
2 WEEKS
None
THINGS ARE BROKEN… FOR A WHILE
REQUESTS / MIN
None
None
None
None
let userName = user["firstName"] as! String
if let userName = user.objectForKey("firstName”) { displayNameLabel.text = userName.uppercaseString }
OPTIONALS
GUARD
SWITCH
TYPES
DON’T HAVE TO FIX BUGS THAT DON’T EXIST
EXTENSIONS
EACH NEW FEATURE BETTER THAN THE LAST
SCRAPPING IT
TIME TO MOVE OFF OF PARSE
& SWIPES ON '
NO API SEPARATION
let report = PFObject(className:"Report") report["reporter"] = user report["reporteeUser"] = reportee
report["reportText"] = text report.saveInBackgroundWithBlock { }
SO NOW OUR WHOLE APP BECOMES…
if parse { } else { }
1.⌘C ⌘V WHOLE FILES FacebookGraphRequest.swift ParseFacebookGraphRequest.swift
2.⌘C ⌘V FUNCTIONS func handleResponse() { } func handleResponseParse() {
}
3. PROTOCOLS protocol LocationDisplayModel { // What we need to
display the user's location in a view var neighborhood: String? { get set } var facebookLocation: String? { get set } var currentLocation: String? { get } var showNeighborhood: Bool { get set } . . . func toggleUseNeighborhood() }
3. PROTOCOLS
3. PROTOCOLS class UserLocation : LocationDisplayModel { … class ParseLocation
: LocationDisplayModel { …
TIME INVESTED = WORTH IT
SELF DOCUMENTING
DEPENDENCIES, SWIFT LANGUAGE CHANGES
6 MONTHS
FAST TO LEARN
CATCHES MISTAKES FOR YOU
IMPROVE AS YOU GO
FOCUS ON WHAT’S IMPORTANT