2. 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
3. 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
4. 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
5. 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”
7. 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
8. 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 )
9. 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 ;
}
11. 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 )
12. 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 )
13. 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 )
14. 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 )
15. 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 )
16. 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 ) ” )
17. 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 ) ” )
18. 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
19. 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 )
}
20. 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 ” )
}
21. 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 ” )
}
22. 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 ” )
23. 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 ” ) )
24. 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 ( ) )
25. 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 )
}
26. 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 ) ? ” )
}
}
}
}