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.3k
Startup Swift
From Try! Swift Tokyo 2017
Mo Kudeki
March 03, 2017
Tweet
Share
Other Decks in Technology
See All in Technology
持続可能なアクセシビリティ開発
azukiazusa1
6
310
AIエージェントによるエンタープライズ向けスライド検索!
shibuiwilliam
4
670
今すぐGoogle Antigravityを触りましょう
rfdnxbro
0
150
重厚長大企業で、顧客価値をスケールさせるためのプロダクトづくりとプロダクト開発チームづくりの裏側 / Developers X Summit 2025
mongolyy
0
180
ステートレスなLLMでステートフルなAI agentを作る - YAPC::Fukuoka 2025
gfx
8
1.4k
個人から巡るAI疲れと組織としてできること - AI疲れをふっとばせ。エンジニアのAI疲れ治療法 ショートセッション -
kikuchikakeru
4
1.8k
技術広報のOKRで生み出す 開発組織への価値 〜 カンファレンス協賛を通して育む学びの文化 〜 / Creating Value for Development Organisations Through Technical Communications OKRs — Nurturing a Culture of Learning Through Conference Sponsorship —
pauli
5
510
Quarkusで作るInteractive Stream Application
joker1007
0
160
Datadog LLM Observabilityで実現するLLMOps実践事例 / practical-llm-observability-with-datadog
k6s4i53rx
0
110
SRE視点で振り返るメルカリのアーキテクチャ変遷と普遍的な考え
foostan
2
490
巨大モノリスのリプレイス──機能整理とハイブリッドアーキテクチャで挑んだ再構築戦略
zozotech
PRO
0
270
アジャイル社内普及ご近所さんマップを作ろう / Let's create an agile neighborhood map
psj59129
1
140
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
95
14k
The Cult of Friendly URLs
andyhume
79
6.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.8k
Being A Developer After 40
akosma
91
590k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
Practical Orchestrator
shlominoach
190
11k
Six Lessons from altMBA
skipperchong
29
4.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3k
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