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


Language Fundamentals

Functions

Variables and Constants

Collections

Types and Instances

Classes

Enumerations

Structs

Protocols

Intermediate Concepts

Flexible Functions

Sequences

When Things Go Wrong

Higher-Order Functions

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

iOS App Fundamentals

Meet Xcode

A simple UI

Outlets and Actions

Communication

Custom UI (Optional)

Multiple Scenes

One App with Two Scenes

Manual Transitions

Segues

Enhance the UI

Modules

Delegates

Table View Based Apps (Optional)

Separating Concerns

Table Views

Nav and Tab Controllers

Core Data

JSON

Custom Cells

Passing Info

Collection Views