27
INTRO TO SWIFT CODE & SUPPLY

Intro to Swift

Embed Size (px)

DESCRIPTION

Introduction to Apple's Swift programming language

Citation preview

Page 1: Intro to Swift

I N T RO TO S W I F TC O D E & S U P P LY

Page 2: Intro to Swift

M EI 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

Page 3: Intro to Swift

A G E N D AI 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

Page 4: Intro to Swift

W H AT ’ S S W I F TI N T R O T O S W I F T

Apple’s new language

- Systems programming

- Expressive

- REPL

- Cocoa/Cocoa Touch backed

Page 5: Intro to Swift

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”

Page 6: Intro to Swift

F O L L O W A L O N GI N T R O T O S W I F T

Page 7: Intro to Swift

F O L L O W A L O N GI N T R O T O S W I F T

l l d b - - r e p l

Page 8: Intro to Swift

B A S I C SI 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 )

Page 9: Intro to Swift

B A S I C SI 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 ; }

Page 10: Intro to Swift

B A S I C SI N T R O T O S W I F T

Page 11: Intro to Swift

B A S I C SI 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 )

Page 12: Intro to Swift

B A S I C SI 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 )

Page 13: Intro to Swift

B A S I C SI 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 )

Page 14: Intro to Swift

B A S I C SI 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 )

Page 15: Intro to Swift

B A S I C SI 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 )

Page 16: Intro to Swift

I N T E R P O L AT I O NI 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 ) ” )

Page 17: Intro to Swift

C O N S TA N T SI 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 ) ” )

Page 18: Intro to Swift

C O L L E C T I O N SI 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

Page 19: Intro to Swift

C O N T R O LI 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 ) }

Page 20: Intro to Swift

C O N T R O LI 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 ” ) }

Page 21: Intro to Swift

C O N T R O LI 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 ” ) }

Page 22: Intro to Swift

F U N C T I O N SI 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 ” )

Page 23: Intro to Swift

F U N C T I O N SI 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 ” ) )

Page 24: Intro to Swift

C L O S U R E SI 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 ( ) )

Page 25: Intro to Swift

C L A S S E SI 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 ) }

Page 26: Intro to Swift

P R O P E R T Y O B S E R V E R SI 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 ) ? ” ) } } } }

Page 27: Intro to Swift

@justinxreese