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
開発者が自律的に AWS Security Hub findings に 対応する仕組みと AWS re:Invent 2024 登壇体験談 / Developers autonomously report AWS Security Hub findings Corresponding mechanism and AWS re:Invent 2024 presentation experience
kaminashi
0
190
Postmanを使いこなす!2025年ぜひとも押さえておきたいPostmanの10の機能
nagix
2
120
Datadogとともにオブザーバビリティを布教しよう
mego2221
0
130
30分でわかる『アジャイルデータモデリング』
hanon52_
9
2.2k
Tech Blogを書きやすい環境づくり
lycorptech_jp
PRO
0
120
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
22
5.8k
SA Night #2 FinatextのSA思想/SA Night #2 Finatext session
satoshiimai
1
100
技術負債の「予兆検知」と「状況異変」のススメ / Technology Dept
i35_267
1
1k
Moved to https://speakerdeck.com/toshihue/presales-engineer-career-bridging-tech-biz-ja
toshihue
2
550
Data-centric AI入門第6章:Data-centric AIの実践例
x_ttyszk
1
370
PL900試験から学ぶ Power Platform 基礎知識講座
kumikeyy
0
110
Ask! NIKKEIの運用基盤と改善に向けた取り組み / NIKKEI TECH TALK #30
kaitomajima
1
450
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
32
6.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
31
2.1k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Scaling GitHub
holman
459
140k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
KATA
mclloyd
29
14k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Facilitating Awesome Meetings
lara
51
6.2k
GitHub's CSS Performance
jonrohan
1030
460k
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