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
Swift Intro
Search
Max Goedjen
December 02, 2014
Programming
0
69
Swift Intro
Max Goedjen
December 02, 2014
Tweet
Share
Other Decks in Programming
See All in Programming
今から始めるClaude Code超入門
448jp
7
8.5k
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
690
Apache Iceberg V3 and migration to V3
tomtanaka
0
150
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
CSC307 Lecture 02
javiergs
PRO
1
770
Package Management Learnings from Homebrew
mikemcquaid
0
210
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
450
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2k
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
170
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
16
6k
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
980
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
180
Featured
See All Featured
Paper Plane
katiecoart
PRO
0
46k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
88
Being A Developer After 40
akosma
91
590k
Raft: Consensus for Rubyists
vanstee
141
7.3k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
320
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
730
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
250
Un-Boring Meetings
codingconduct
0
200
Designing for Timeless Needs
cassininazir
0
130
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
160
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
Transcript
SWIFT
iOS & Mac
Why?
Modern Safe Interoperable
Modern
Modern [ ]
Objective-C [someObject doSomething]; Swift someObject.doSomething()
Modern Blocks & Closures
Objective-C - (void)doSomethingWithCompletion:(void (^)(NSError *))completion; Swift func doSomethingWithCompletion(completion: (NSError) ->
(Void))
Modern Primitives & Literals
Objective-C NSArray *numbers = @[@1, @2, @3]; // NSArray *numbers
= [NSArray arrayWithObjects: // [NSNumber numberWithInt:1], // [NSNumber numberWithInt:2], // [NSNumber numberWithInt:3] // ]; Swift let numbers = [1, 2, 3]
Modern Custom Operators
Custom Operators { /* do some task */ } ~>
{ /* update some UI */}
Safety
Safety Static Typing
Safety Nil Safety
Objective-C SomeObject *someObject = nil; [someObject performCriticalTask]; Swift let someObject:
SomeObject = nil someObject.performCriticalTask() // Compiler error
Objective-C SomeObject *object = nil; NSArray *objectList = @[object]; //
Crash Swift let object: SomeObject? let objectList = [object] // :)
Safety Immutability
Objective-C NSArray & NSMutableArray Swift let & var
Common iOS Tasks Delegation
Objective C if ([self.delegate respondsToSelector:@selector(someDelegateMessage:)]) { [self.delegate someDelegateMessage:self]; } Swift
delegate?.someDelegateMessage?(self)
Interoperability
Swift All The Things? Not So Fast
None
Xcode !
None
Tooling
Tooling REPL
Tooling Playgrounds
Playgrounds
Further Reference Learn Design AND Code!!! GitHub Swift Book Swift
Blog objc.io Airspeed Velocity