Module 1 - Introducing Swift
- About Swift
 - XCode Overview
 - Projects and Playgrounds
 - Basic Swift Syntax
 
Module 2 - Data Types
- Primitives
 - Integers, Floats, Booleans, Tuples
 - Working with strings
 - Constants and Variables
 - Literals
 - Type Aliases
 - Optionals
 
Module 3 - Basic Syntax
- Math and Logic operations
 - Defining Arrays and Collections
 - Controlling Program Flow with conditionals and loops
 - Enumerations
 - Nested Types
 
Module 4 - Functions and Closures
- Defining a Function
 - Passing parameters
 - Returning single and multiple return values
 - Parameter Naming
 - Variadic, constant, variable and In-Out parameters
 - Closures
 
Module 5 - Classes and Structures
- Value types explained
 - Defining structures
 - Assigning structure instances
 - Reference Types
 - Defining Classes
 - Differences between Value and reference types and when to use
 - Setting up Initializers and de-initializers
 
Module 6 - Properties in detail
- Stored Properties
 - Lazy and Computed properties
 - Working with Property Observers
 - Encapsulation?
 
Module 7 - Methods
- Defining Instance and Type Methods
 - Method naming
 - Mutating Methods
 - Subscripts
 
Module 8 - Using Inheritance and Polymorphism
- Creating Subclasses
 - Overriding Methods, Properties and Observers
 - Initialization of inherited types - Chaining
 - Casting and subtype polymorphism
 
Module 9 - Automatic Reference Counting
- Reference Counting Explained
 - ARC Under the hood
 - Strong and Weak references
 - Unowned references
 - ARC and Closures
 
Module 10 - Protocols and Extensions
- What is a protocol
 - Implementing a protocol
 - Delegation
 - Protocol Inheritance
 - Checking conformance
 - Extending types with Extensions
 
Module 11 - Generics
- Why Generics
 - Generic Functions
 - Generic Types
 - Constraints
 
Module 12 - Bringing it all together
- Creating a simple iPhone app with Swift