Introduction to iOS 11 Programming with Swift 4

How to write modern iPhone and iPad apps (Four days)

This four day introductory course is for experienced developers who are new to Swift and modern iOS app development.

If your group has more experience with the language or the platform we can customize a Swift 4 - iOS 11 Bootcamp for you. To book this course for your group, company, or public event see Booking and Availability.

What you'll learn

This course will introduce you to the fundamentals of iOS 11 app development using Swift 4 on Xcode 9.

The first day of the class will get you up to speed with the Swift Programming language. We spend the day in playgrounds, exploring the ins and outs of programming with Swift.

On day two we dig deeper into idiomatic Swift and work with functions as closures, higher-order functions, sequences, and handling errors.

The third and fourth days introduce iOS 11 application development. We begin with single view, create a UI and connect it to code using the latest techniques introduced for iOS 11. 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. We'll also look at table views, navigation controllers, and tab bar controllers. We'll take a quick look at Core Data and web services.

What you need

You need a Mac running Sierra or High Sierra with the latest publicly shipping version of Xcode 9 installed. You'll work with Xcode projects and playgrounds and also the iOS Simulator throughout the course.

Syllabus Highlights

Swift Kickstart

Language Fundamentals


Variables and Constants


Types and Instances





Thinking in Swift

Intermediate Concepts

Flexible Functions


When Things Go Wrong

Higher-Order Functions

map(), filter(), reduce(), flatMap()

Swifty iOS 11

iOS App Fundamentals

Meet Xcode

A simple UI

Outlets and Actions


Custom UI (Optional)

Multiple Scenes

One App with Two Scenes

Manual Transitions


Enhance the UI



Table View Based Apps (Optional)

Separating Concerns

Table Views

Nav and Tab Controllers

Core Data


Custom Cells

Passing Info

Collection Views