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
ADKで始める業務改善 - AIエージェント開発時の考えと設計
harappa80
2
240
GoのInterface内部構造から学ぶ!最高パフォーマンスを出すコード設計
yappli_developers
0
190
安心して変更できるWebフロントエンドの作り方
pirosikick
5
2.8k
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
4
3.3k
顧客に向き合う開発組織へ。リアーキテクチャとフィーチャーチーム化で挑む組織改革
safie
0
2.1k
サーバーレスをどこまで使う? WebRTC対戦ゲームで選んだVPSとの共存設計
kaidouji85
0
180
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
360
Railsのように考える: See through the Master
snoozer05
PRO
4
1.2k
「守り」で活用するオンデバイスLLM 〜写ってはいけないを総力戦で防ぐ〜 / iOSDC Japan 2026
nakamuuu
0
180
.NET WebAssemblyで実現するクライアントサイドAI推論:NuGetからViteまで、2つのエコシステムを繋ぐビルド戦略
yamachu
0
240
Reactの設計論
uhyo
24
14k
EventBridge に「合流」はない ― サーバーレスのワークフローを育てるということ / No Join in EventBridge
yusukeshimizu
2
250
Featured
See All Featured
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
The Curse of the Amulet
leimatthew05
3
15k
The agentic SEO stack - context over prompts
schlessera
0
940
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Skip the Path - Find Your Career Trail
mkilby
1
230
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
A Modern Web Designer's Workflow
chriscoyier
699
190k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
910
Everyday Curiosity
cassininazir
0
320
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