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
Eugene Oskin
January 20, 2018
Programming
60
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
An introduction to iOS development
Eugene Oskin
January 20, 2018
More Decks by Eugene Oskin
See All by Eugene Oskin
Local Models for Coding
evgeneoskin
0
18
REST API. Django, Ruby on Rails, Play! Framework
evgeneoskin
0
100
Introduction to gRPC
evgeneoskin
0
110
GrailInventory – Advanced Backend Development
evgeneoskin
0
48
Bracing Calculator
evgeneoskin
1
80
emotional intelligence, part 2
evgeneoskin
0
49
Office temperature
evgeneoskin
0
45
Parse platform
evgeneoskin
0
110
Hubot
evgeneoskin
0
61
Other Decks in Programming
See All in Programming
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
660
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
420
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
140
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
340
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
150
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
130
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
160
RSSとCodexを使ってX投稿自動化してみた
ochtum
0
110
Kiroで創り、AgentCoreで繋ぐ!AWSで実践する「AI-DLC」から「AIエージェント統合」までの最新地図
licux
3
360
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
600
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
130
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.5k
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
470
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
660
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Designing Powerful Visuals for Engaging Learning
tmiket
1
530
The Cost Of JavaScript in 2023
addyosmani
55
10k
Rails Girls Zürich Keynote
gr2m
96
14k
Are puppies a ranking factor?
jonoalderson
2
3.9k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
320
Balancing Empowerment & Direction
lara
6
1.3k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.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