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
Startup Swift
Search
Mo Kudeki
March 03, 2017
Technology
1.4k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Startup Swift
From Try! Swift Tokyo 2017
Mo Kudeki
March 03, 2017
Other Decks in Technology
See All in Technology
フロントエンドカンファレンス関西2026 - 速すぎるUIに、待ち時間を
teamlab
PRO
0
130
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
170
オントロジーって 結局なにもの? AI エージェントに「意味」を渡す知識設計の話
greenmidori
0
180
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
100
その Valkey 使いこなしていますか?
onk
PRO
5
1.5k
パスキーの自動テストはどこまでいけるのか
teamlab
PRO
0
200
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
580
WasmをRustにする
sansantech
PRO
0
250
子育てエンジニアの可処分時間が減っても成長を諦めない戦い方
sudoakiy
6
4.6k
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.4k
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
920
AI × アーキテクト 第1・2章|生成AIの課題とアーキテクトの素養
daidaidai
0
170
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
270
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Designing Powerful Visuals for Engaging Learning
tmiket
1
610
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
570
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
Site-Speed That Sticks
csswizardry
13
1.6k
Ruling the World: When Life Gets Gamed
codingconduct
0
400
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
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