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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Eugene Oskin
January 20, 2018
Programming
55
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
16
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
76
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
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
350
霧の中の代数的エフェクト
funnyycat
1
320
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
480
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
360
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
200
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
120
えっ!!コードを読まずに開発を!?
hananouchi
0
160
自作OSでスライド発表する
uyuki234
1
3.7k
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
4
1.6k
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.8k
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.8k
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
510
A Soul's Torment
seathinner
6
3k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Skip the Path - Find Your Career Trail
mkilby
1
160
From π to Pie charts
rasagy
0
230
The Mindset for Success: Future Career Progression
greggifford
PRO
0
410
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Side Projects
sachag
455
43k
Embracing the Ebb and Flow
colly
88
5.1k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Are puppies a ranking factor?
jonoalderson
1
3.7k
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