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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Mo Kudeki
March 03, 2017
Technology
2
1.3k
Startup Swift
From Try! Swift Tokyo 2017
Mo Kudeki
March 03, 2017
Tweet
Share
Other Decks in Technology
See All in Technology
「全社導入」は結果。1人の熱狂が組織に伝播したmikanのn8n活用
sota_mikami
0
570
BPaaSオペレーション・kubell社内 n8n活用による効率化検証事例紹介
kubell_hr
0
350
Mosaic AI Gatewayでコーディングエージェントを配るための運用Tips / JEDAI 2026 新春 Meetup! AIコーディング特集
genda
0
120
re:Inventで見つけた「運用を捨てる」技術。
ezaki
1
150
JuliaTokaiとしてはこれが最後かもしれない(仮) for NGK2026S
antimon2
0
130
SREの仕事を自動化する際にやっておきたい5つのポイント
jacopen
6
1.1k
KubeCon + CloudNativeCon NA ‘25 Recap, Extensibility: Gateway API / NRI
ladicle
0
160
新規事業 toitta におけるAI 機能評価の話 / AI Feature Evaluation in toitta
pokutuna
0
280
VRTと真面目に向き合う
hiragram
1
500
「AIでできますか?」から「Agentを作ってみました」へ ~「理論上わかる」と「やってみる」の隔たりを埋める方法
applism118
10
7.1k
Azure SQL Databaseでベクター検索を活用しよう
nakasho
0
120
Digitization部 紹介資料
sansan33
PRO
1
6.7k
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
130
GraphQLとの向き合い方2022年版
quramy
50
14k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
710
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
190
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
440
Between Models and Reality
mayunak
1
170
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
85
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
340
Exploring anti-patterns in Rails
aemeredith
2
230
The agentic SEO stack - context over prompts
schlessera
0
600
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