A Swift Kickstart

Introducing the Swift 4.0 Programming Language (One day)


This fast-paced, one day introductory course is for experienced developers who are new to Swift. To book this course for your group, company, or public event see Booking and Availability.

What you'll learn


This best-selling, one-day, intensive class introduces you to the essential aspects of the latest version of the Swift Programming Language.

We begin the day with a simple iOS sample project and quickly move to a hands-on exploration of Swift functions, variables and constants, and collections. You'll be introduced to optionals and other Swift essentials.

During the second part of the class you will investigate Swift types as you create and use instances of Swift classes, structs, and enumerations. You'll experiment with methods, subclasses and properties and learn to harness the power of polymorphism through protocols and protocol extensions. We finish the day with another iOS project that uses much of what you learned to create a simple MVVM project.

What you need


You need a Mac running Sierra or High Sierra with the latest version of Xcode 9 installed. You'll create Swift 4 playgrounds and iOS 11 projects throughout the day.

Syllabus Highlights


Language Fundamentals

Functions

Explore a playground in Xcode 8

Create and call functions

Function overloading in Swift

Default values for parameters

Local and external parameter names

Tuples and variadic parameters

Variables and Constants

Strong type inference in Swift

Let vs. Var

No promotion of numeric types

Where spaces matter

Functions as objects

Optionals and Nil

Collections

Create and modify arrays

Collections are homogeneous

Iterating an array

Value and Reference Types

Create and modify dictionaries

A Quick look at Sets

Types and Instances

Classes

Base classes

Subclasses

Stored and Computed Properties

By-reference semantics

The init method

Convenience methods

More optionals

Overriding methods

Enumerations

Case

Switch

Raw values and more optionals

Methods

Computed properties

As property types

Value Types

Associated values

Structs

Properties

By-value semantics

Default init

Getters and setters

Did set and will set

Mutating methods

Protocols

Collecting commonality

Conforming

Polymorphism

Self

Generics

Protocol extensions

Extension points