Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introducing Swift to the Touchwonders Team

Introducing Swift to the Touchwonders Team

I gave this presentation during an all-hands meeting in June 2014 at Touchwonders. The goal of the talk was to explain the impact that the introduction of Swift will have to the whole team.

The intended audience is a multi-disciplinary team, consisting of designers, developers and product people that are involved in making great apps.

Some slides were augmented or added to compensate for the lack of audio. If you have any questions or comments, please let me know at @thomvis88 or @touchwonders.

Thomas Visser

June 26, 2014
Tweet

More Decks by Thomas Visser

Other Decks in Technology

Transcript

  1. A Brief History of Programming Languages C 1972 1983 Objective-C

    C++ 1995 2009 Go 2003 Scala 2000 C# Java Ruby
  2. A Brief History of Programming Languages C 1972 1983 Objective-C

    C++ 1995 2009 Go 2003 Scala 2000 C# Java Ruby Windows Phone Android Web iOS
  3. A Brief History of Programming Languages C 1972 1983 Objective-C

    C++ Java Ruby 2009 Go 2003 Scala 2000 C# Swift 2014 1995
  4. A Brief History of Programming Languages C 1972 1983 Objective-C

    C++ Java Ruby 2009 Go 2003 Scala 2000 C# Swift 2014 1995 Windows Phone Android iOS Web iOS
  5. - Generics! - Closures! - Type inference! - Multiple return

    types! - Namespaces! - Mutability syntax Swift Features
  6. class Future<T> { typealias Callback = (future: Future<T>) -> ()

    ! let q = Queue() var result = TaskResult<T>() var callbacks: Array<Callback> = Array<Callback>() let defaultCallbackExecutionContext = QueueExecutionContext() class func succeeded(value: T?) -> Future<T> { let res = Future<T>(); res.result = TaskResult(value: value) return res } class func failed(error: NSError) -> Future<T> { let res = Future<T>(); res.result = TaskResult(error: error) return res } } Looking at Swift
  7. iOS Animations Data Storage Receiving/Sending notifications Location Services Media Player

    Address Book Access Calendar Access Achievements and Leaderboards Interface (> 4.000 new API’s in iOS 8)
  8. App

  9. Switching languages Switching platforms How do I write an app

    in Java/Ruby/Swift? How do I make it great?
  10. Switching languages Switching platforms How do I write an app

    in Java/Ruby/Swift? How do I make it great? Takes a few weeks Takes months-years
  11. Strict & Modern Imagine a future Photoshop where you can

    never give something a color, without defining a swatch first. In this tool, it is equally impossible to create a label with an arbitrary font style. Fonts styles and colors are created and edited in a central place. Changes propagate to all usages of that color or font style. This tool, like Swift, protects you from introducing inconsistency in your design.
  12. let names = ["Steve", "Tim"] for name in names {

    println("Hello \(name)") } NSArray *names = @[@"Steve", @"Tim"];
 for (NSString *name in names) {
 NSLog(@"Hello %@", name);
 } Objective-C Swift Clean