Slide 1

Slide 1 text

Brooklyn Swift Developers Meetup June 17, 2014 Swift: The Basics

Slide 2

Slide 2 text

WWDC 2014 Brooklyn Swift Developers Meetup

Slide 3

Slide 3 text

“And One More Thing…” Brooklyn Swift Developers Meetup

Slide 4

Slide 4 text

Early Reactions Brooklyn Swift Developers Meetup

Slide 5

Slide 5 text

Early Reactions Brooklyn Swift Developers Meetup

Slide 6

Slide 6 text

Early Reactions Brooklyn Swift Developers Meetup

Slide 7

Slide 7 text

Early Reactions Brooklyn Swift Developers Meetup “HOLY FUCK” - me

Slide 8

Slide 8 text

Early Reactions Brooklyn Swift Developers Meetup “FUCK YEAH” - me 5 min later

Slide 9

Slide 9 text

Early Reactions Brooklyn Swift Developers Meetup

Slide 10

Slide 10 text

Early Reactions Brooklyn Swift Developers Meetup

Slide 11

Slide 11 text

Early Reactions Brooklyn Swift Developers Meetup

Slide 12

Slide 12 text

Early Reactions Brooklyn Swift Developers Meetup

Slide 13

Slide 13 text

Early Reactions Brooklyn Swift Developers Meetup

Slide 14

Slide 14 text

Swift Brooklyn Swift Developers Meetup

Slide 15

Slide 15 text

Swift Brooklyn Swift Developers Meetup Convenience of a Modern Scripting language with the Performance of Objective-C

Slide 16

Slide 16 text

Swift vs. Objective-C Brooklyn Swift Developers Meetup

Slide 17

Slide 17 text

Swift vs. Objective-C Brooklyn Swift Developers Meetup Namespaces • Class names scoped to module (ie. framework) • No more class prefixes

Slide 18

Slide 18 text

Swift vs. Objective-C Brooklyn Swift Developers Meetup Type Safety • Compiler performs type checks to find mismatched types • Allows for type inference var heyStr = “Hey”

Slide 19

Slide 19 text

Swift vs. Objective-C Brooklyn Swift Developers Meetup Closures • Nameless function constructed as another function's argument • Equivalent to Blocks numbers.map({ (number: Int) -> Int in let result = 3 * number return result })

Slide 20

Slide 20 text

Swift vs. Objective-C Brooklyn Swift Developers Meetup Tuples • Group multiple values to single value • Supports multiple types let someTuple = (10, true, “Hello”) // type (Int, Bool, String) let anotherTuple = (arg1: 100, arg2: “Hi”) // anotherTuple.arg1, anotherTuple.arg2

Slide 21

Slide 21 text

Playground Brooklyn Swift Developers Meetup

Slide 22

Slide 22 text

Playground Brooklyn Swift Developers Meetup • Interactive coding environment for testing • Immediate feedback

Slide 23

Slide 23 text

Brooklyn Swift Developers Meetup

Slide 24

Slide 24 text

DEMO Brooklyn Swift Developers Meetup

Slide 25

Slide 25 text

Questions? Brooklyn Swift Developers Meetup

Slide 26

Slide 26 text

Resources Brooklyn Swift Developers Meetup • The Swift Programming Language
 https://itunes.apple.com/us/book/swift-programming-language/ id881256329?mt=11 • WWDC 2014 Videos
 https://developer.apple.com/videos/wwdc/2014 • Ray Wenderlich Tutorials
 http://www.raywenderlich.com/tutorials • Swift Video Tutorials
 http://swiftvideotutorials.com

Slide 27

Slide 27 text

Github: https://github.com/marcdown Twitter: @heymarcbrown Source: https://github.com/marcdown/SwiftPlayground Brooklyn Swift Developers Meetup Thanks!