Daniel Steinberg's - Swift iOS Bootcamp

Topics covered at SWIFT-IOS-BC-01-03

Dates coming soon

It’s a perfect time to take your iOS development skills to a whole new level by making the move to Swift. You aren’t just learning a new language, you are also learning new techniques and design patterns and embracing a new way to organise and architect your iOS applications.

Are you ready to take your iOS development skills to a whole new level and make the move to Swift?

Join Daniel Steinberg for this intensive 3-day Swift iOS Bootcamp and learn how to think, architect and program in swift using functional, object-oriented, and protocol-oriented paradigms. Upon completion, you will understand the best practices for building modern iOS apps in Swift.

Learn how to:

This fast paced bootcamp will introduce you to the fundamentals of iOS 10 app development using Swift 3 on Xcode 8.

The first portion of the class will get you up to speed with the Swift Programming language. We take advantage of Xcode playgrounds, exploring the ins and outs of programming with Swift.

During the second component of the class we dig deeper into idiomatic Swift and work with functions as closures, higher-order functions, sequences, and handling errors

The remainder of the course introduces iOS 10 application development. We begin with single view, create a UI and connect it to code using the latest techniques introduced for iOS 10. We work with MVC and MVVM and then move on to apps with multiple scenes. You will learn a variety of methods of presenting and dismissing scenes while communicating information between the view controllers.

About the Author

Daniel Steinberg

Daniel Steinberg has spent the last three decades working as a professional Swift developer. OK, he hasn't. But he's really enjoying the Swift Programming Language.

Swift Kickstart

A Simple iOS Project

Hello, World! (it's kind of the law)

  • Quick introduction to Xcode 8
  • A moment with GUI creation in Interface Builder
  • Swift Properties and Methods
  • Connecting Outlets and Actions in Swift
  • The iOS lifecycle
  • Meet the iOS Simulator

Language Fundamentals


  • 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


  • 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


  • Base classes
  • Subclasses
  • Stored and Computed Properties
  • By-reference semantics
  • The init method
  • Convenience methods
  • More optionals
  • Overriding methods


  • Case
  • Switch
  • Raw values and more optionals
  • Methods
  • Computed properties
  • As property types
  • Value Types
  • Associated values


  • Properties
  • By-value semantics
  • Default init
  • Getters and setters
  • Did set and will set
  • Mutating methods


  • Collecting commonality
  • Conforming
  • Polymorphism
  • Self
  • Generics
  • Protocol extensions
  • Extension points

Thinking in Swift

Flexible Functions

  • Understanding Parameters
  • Inout parameters
  • Closures
  • Generics
  • Extensions
  • Mutable Model
  • Non-Mutable Model

When Things Go Wrong

  • Asserts
  • ErrorProtocol Structs
  • ErrorProtocol Enums
  • Throws
  • Try/Catch
  • Defer
  • Guard Let
  • Rethrow

Higher-Order Functions

  • Returning a Function
  • Returning a Closure
  • Consuming a Closure
  • Mapping Arrays

Classic Examples

  • Map
  • Filter
  • Reduce
  • FlatMap
  • Functors and Monads

iOS App Fundamentals

Outlets and Actions

  • Create and configure an outlet and outlet collection
  • Use the outlet and outlet collection
  • Create and configure multiple actions
  • Connection Inspector
  • Implement the actions


  • Model View Controller
  • Understanding View Controllers
  • Breaking up View Controllers
  • MVVM
  • Notifications
  • Passing closures
  • Simple Models

Custom UI

  • View Subclasses
  • Targeting multiple devices
  • Device specific layouts
  • Localizing the Storyboard
  • Localizing Strings
  • Creating and using designables
  • Inspectable properties

Multiple Scenes

One App with Two Scenes

  • Add view controller to storyboard
  • Configure the second scene
  • Create a button to trigger the segue
  • Create and configure a segue

Manual Transitions

  • Custom view controller subclass
  • Provide a public property
  • Implement action to present second scene
  • Create behavior to dismiss second scene
  • Forward information
  • Use the information


  • Connect Segue from first to second scene
  • Implement prepareForSegue()
  • Create Unwind Segues
  • Create custom segue subclasses
  • Pass information back and forth


  • Separate Storyboards
  • Storyboard References
  • Add a framework
  • Present content in a separate module
  • Communicate information forward and back
  • Minimize coupling


  • Connect the delegate
  • Conform to delegate protocol
  • Closures as an alternative


If you are an experienced developer who is new to Swift and ready to learn; this class is for you!


To benefit most from this Swift iOS course, you should be an experienced developer who is new to Swift, but are comfortable in an object-oriented language.

Bring your own hardware

You will need a Mac running the latest public version of Xcode (currently Xcode 8.x).