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
An introduction to iOS development
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Eugene Oskin
January 20, 2018
Programming
0
43
An introduction to iOS development
Eugene Oskin
January 20, 2018
Tweet
Share
More Decks by Eugene Oskin
See All by Eugene Oskin
REST API. Django, Ruby on Rails, Play! Framework
evgeneoskin
0
92
Introduction to gRPC
evgeneoskin
0
98
GrailInventory – Advanced Backend Development
evgeneoskin
0
38
Bracing Calculator
evgeneoskin
1
69
emotional intelligence, part 2
evgeneoskin
0
40
Office temperature
evgeneoskin
0
35
Parse platform
evgeneoskin
0
100
Hubot
evgeneoskin
0
52
An introduction to React development
evgeneoskin
0
39
Other Decks in Programming
See All in Programming
AtCoder Conference 2025
shindannin
0
1.1k
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
290
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
650
高速開発のためのコード整理術
sutetotanuki
1
400
Claude Codeと2つの巻き戻し戦略 / Two Rewind Strategies with Claude Code
fruitriin
0
130
並行開発のためのコードレビュー
miyukiw
0
260
Package Management Learnings from Homebrew
mikemcquaid
0
230
24時間止められないシステムを守る-医療ITにおけるランサムウェア対策の実際
koukimiura
1
100
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
要求定義・仕様記述・設計・検証の手引き - 理論から学ぶ明確で統一された成果物定義
orgachem
PRO
1
150
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
220
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
83
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
150
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
330
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
Scaling GitHub
holman
464
140k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.7k
Writing Fast Ruby
sferik
630
62k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Transcript
An introduction to iOS development
Why do you need it?
The beginning
Glossary • Storyboard • Controller (ViewController) • Action (IBAction) •
View (UIView) • Table • *Delegate
XCode
None
None
None
Add Outlet / Action (ctrl+drag)
Use Tabs, Luke!
Use Tabs, Luke!
XCode shortcuts • ⇧⌘O to Quick open • ⇧⌘F to
Find in your Project
XCode shortcuts • ⌃I Re-indent • Esc+Esc to Autocomplete •
Alt+click open quick help
XCode shortcuts • ⌘{ to jump to the left tab
• ⌘} to jump to the right tab • ⌘R Rebuild • ⌘T Run tests
None
MVC architecture
None
None
Controller Hierarchy
None
Swift
Optional var myString: String? myString = "Hello, Swift!" if let
yourString = myString { println("Your string has - \(yourString)") } else { println("Your string does not have a value") }
A closure as the last argument // Definition public func
responseJSON( completion: (Response<Any>) -> Void) -> Self // Usage let request = Alamofire.request("https://httpbin.org/") request.responseJSON { response in print("Complete") }
Use [weak self] in closure let request = Alamofire.request("https://httpbin.org/") request.responseJSON
{ [weak self] response in self?.showDialog() }
Other Instruments
SwiftLint
Playground
TestDrive $ testdrive Alamofire
Dependency managers • CocoaPods • Carthage # Xcode 8 +
9 $ sudo gem install cocoapods $ pod init $ pod install
Bring your Color Scheme and Font!
Ask for help
Your toolkit • Swift • XCode • Storyboards • Clear
derived data
None