Upload
justin-reese
View
12.873
Download
0
Embed Size (px)
DESCRIPTION
Introduction to Apple's Swift programming language
Citation preview
I N T RO TO S W I F TC O D E & S U P P LY
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
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
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
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 GI N T R O T O S W I F T
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
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 )
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 ; }
B A S I C SI N T R O T O S W I F T
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 )
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 )
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 )
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 )
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 )
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 ) ” )
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 ) ” )
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
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 ) }
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 ” ) }
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 ” ) }
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 ” )
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 ” ) )
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 ( ) )
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 ) }
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 ) ? ” ) } } } }
@justinxreese