Swift In Depth

This course introduces Apple's Swift programming language in considerable technical depth, focusing on those parts of the language that you will find new or unfamiliar. Swift is Apple's preferred programming language, and is a vastly better alternative to Objective-C. Learning it is an essential first step to working effectively on the Apple platform. This course is geared to working programmers—prior experience with an OO language is required. You don't need to know anything about the Apple ecosystem, however: this is a language course, not an iOS or OSX programming course. This course covers the most recent version of Swift (2.0).

If you're an experienced Objective-C programmer, there's a lot in Swift that will be new to you. If you don't know Objective C, you'll be much better off learning Swift than Objective C—your code will be more flexible and maintainable. All of the Apple documentation covers both languages.

The language can be tricky. The functional-programming and generic-programming parts of Swift are new to many programmers. There are many built in features that can render your code unmaintainable if used improperly. The language's syntax is far from intuitive in many places.

It's an enormous help to learn this language in a hands-on classroom environment, where you can get immediate answers to your questions as you're programming, and immediately put what you learn to use. Working on your own, it could take weeks to learn what you'll learn in two days of class.

As is the case with all of Allen's classes, this class goes way beyond syntax (which you can pick up from a book). We spend considerable time talking about how the language should be used. That's particularly the case with the OO and functional-programming aspects of Swift, which have to be used idiomatically to be effective.

The focus is on the language itself, not on Cocoa or UIKit. In general, students already have a background in an OO language (C#, Java, C++, Objective-C, etc.), but that's not required for the three-day format.

One, two, or more days

We offer this course in three formats:
  • The public session is a two-day, hands-on, class. Prior knowledge of an OO language (C++, Java, C#, Objective C, etc.) is assumed. You'll be expected to bring a laptop already loaded with the most recent version of Apple's XCode development environment (download from the app store). This format is also our most popular for in-house presentation. Find a detailed outline here. Cost varies with the number of students and class length, and we offer several discounts. Contact us for a quote.
  • A one-day lecture-only format, without the hands-on component, is also available. Allen presents this version at conferences, and it's ideal if you're at the evaluation stage.
  • Three-day (or longer) versions, for in-house presentation only, don't assume prior knowledge of an OO language. The course length depends on the knowledge of the participants. Contact us to discuss your needs.

The Pluralsight Option

Watch the lecture parts of this class on Pluralsight and then bring in Allen for a day of hands-on lab. Once you've scheduled the lab session, We'll happily answer (by email) any language-related questions that come up while watching the video lectures.