Share
Embed
Intro to Swift
Introduction to Apple's Swift programming language for iOS and OSX development. Given at Code & Supply on July 15th, 2014
Justin Reese
July 15, 2014
Transcript
27 slides
-
I N T RO TO S W I F T
C O D E & S U P P LY -
M E I N T R O T O S
W I F T Justin Reese - Code & Supply - Polyglot - iOS baptism by fire - 6 apps. Mostly web views -
A G E N D A I N T R
O T O S W I F T I tell you some C&S stuff I tell you some Swift stuff We discuss as a group - or - We break off into small groups -
W H AT ’ S S W I F T
I N T R O T O S W I F T Apple’s new language - Systems programming - Expressive - REPL - Cocoa/Cocoa Touch backed -
H O W D O I S W I F
T ? I N T R O T O S W I F T Xcode 6 Beta - Now free!! - “The Swift Programming Language” -
F O L L O W A L O N
G I N T R O T O S W I F T -
F O L L O W A L O N
G I N T R O T O S W I F T l l d b - - r e p l -
B A S I C S I N T R
O T O S W I F T l e t g r e e t i n g = “ H e l l o ” v a r n a m e : S t r i n g = “ J u s t i n ” p r i n t l n ( g r e e t i n g + “ ” + n a m e ) -
B A S I C S I N T R
O T O S W I F T # i m p o r t < s t d i o . h > # i m p o r t < F o u n d a t i o n / F o u n d a t i o n . h > i n t m a i n ( v o i d ) { N S S t r i n g * g r e e t i n g = @ " H e l l o " ; N S S t r i n g * n a m e = @ " J u s t i n " ; N S S t r i n g * o u t p u t = [ N S S t r i n g s t r i n g W i t h F o r m a t : @ " % @ % @ " , g r e e t i n g , n a m e ] ; N S L o g ( o u t p u t ) ; r e t u r n 0 ; } -
B A S I C S I N T R
O T O S W I F T -
B A S I C S I N T R
O T O S W I F T l e t g r e e t i n g = “ H e l l o ” v a r n a m e : S t r i n g = “ J u s t i n ” p r i n t l n ( g r e e t i n g + “ ” + n a m e ) -
B A S I C S I N T R
O T O S W I F T l e t g r e e t i n g = “ H e l l o ” v a r n a m e : S t r i n g = “ J u s t i n ” p r i n t l n ( g r e e t i n g + “ ” + n a m e ) -
B A S I C S I N T R
O T O S W I F T l e t g r e e t i n g = “ H e l l o ” v a r n a m e : S t r i n g ? = “ J u s t i n ” p r i n t l n ( g r e e t i n g + “ ” + n a m e ) -
B A S I C S I N T R
O T O S W I F T l e t g r e e t i n g = “ H e l l o ” v a r n a m e : S t r i n g ? = “ J u s t i n ” p r i n t l n ( g r e e t i n g + “ ” + n a m e ) -
B A S I C S I N T R
O T O S W I F T l e t g r e e t i n g = “ H e l l o ” v a r n a m e : S t r i n g ? = “ J u s t i n ” p r i n t l n ( g r e e t i n g + “ ” + n a m e ) -
I N T E R P O L AT I
O N I N T R O T O S W I F T l e t a = 3 , b = 5 p r i n t l n ( “ \ ( a ) t i m e s \ ( b ) i s \ ( a * b ) ” ) -
C O N S TA N T S I N
T R O T O S W I F T l e t a = 3 , b = 5 a = 5 / / C o m p i l e e r r o r p r i n t l n ( “ \ ( a ) t i m e s \ ( b ) i s \ ( a * b ) ” ) -
C O L L E C T I O N
S I N T R O T O S W I F T v a r p e o p l e = [ “ J u s t i n ” , “ R o m e o ” ] / / A u t o m a t i c a l l y t y p e d p e o p l e + = “ B e n ” v a r d i c t i o n a r y [ “ k e y ” : “ v a l u e ” ] v a r p e o p l e : S t r i n g [ ] = [ “ J u s t i n ” , “ R o m e o ” ] / / E x p l i c i t l y t y p e d p e o p l e + = 2 / / E r r o r -
C O N T R O L I N T
R O T O S W I F T f o r n a m e i n n a m e s { p r i n t l n ( “ H e l l o ” + n a m e ) } f o r ( k e y , v a l u e ) i n d i c t i o n a r y { p r i n t l n ( k e y + “ i s ” + v a l u e ) } -
C O N T R O L I N T
R O T O S W I F T i f a t t e n d e e C o u n t > 1 0 { p r i n t l n ( “ c o o l ” ) } e l s e i f a t t e n d e e C o u n t = = 0 { p r i n t l n ( “ W T F ” ) } e l s e p r i n t l n ( “ m e h ” ) } -
C O N T R O L I N T
R O T O S W I F T s w i t c h a t t e n d e e C o u n t { c a s e > 1 0 : p r i n t l n ( “ c o o l ” ) c a s e 0 : p r i n t l n ( “ W T F ” ) d e f a u l t : p r i n t l n ( “ m e h ” ) } -
F U N C T I O N S I
N T R O T O S W I F T f u n c s a y H i ( w h o : S t r i n g = “ W o r l d ” ) { l e t g r e e t i n g = “ H e l l o ” p r i n t l n ( g r e e t i n g + “ ” + w h o ) } s a y H i ( “ C o l i n ” ) -
F U N C T I O N S I
N T R O T O S W I F T f u n c s a y H i ( w h o : S t r i n g = “ W o r l d ” ) - > S t r i n g { l e t g r e e t i n g = “ H e l l o ” r e t u r n g r e e t i n g + “ ” + w h o } p r i n t l n ( s a y H i ( “ C o l i n ” ) ) -
C L O S U R E S I N
T R O T O S W I F T l e t g r e e t i n g = { r e t u r n “ H e l l o ” + “ W o r l d ” } p r i n t l n ( g r e e t i n g ( ) ) -
C L A S S E S I N T
R O T O S W I F T c l a s s P e r s o n { v a r h o b b i e s = [ “ s o c i a l i z i n g ” ] } c l a s s P r o g r a m m e r : P e r s o n { i n i t ( ) { s u p e r . i n i t ( ) h o b b i e s = [ “ s t a r i n g a t b l a c k s c r e e n s ” ] } } l e t j u s t i n = P r o g r a m m e r ( ) f o r h o b b y i n j u s t i n . h o b b i e s { p r i n t l n ( h o b b y ) } -
P R O P E R T Y O B
S E R V E R S I N T R O T O S W I F T c l a s s P e r s o n { v a r h o b b i e s : A r r a y { w i l l S e t { p r i n t l n ( “ A d d i n g \ ( n e w V a l u e ) , e h ? ” ) } d i d S e t { f o r o l d H o b b y i n o l d V a l u e { p r i n t l n ( “ r e m o v e \ ( o l d H o b b y ) ? ” ) } } } }