Swifty iOS 10

Idiomatic iOS 10 Development with Swift 3 (Two days)

Who it's for


This two day introductory course is for experienced developers who know Swift but are new to modern Swift-based iOS app development.

What you'll learn


The introduction of iOS 10 and Swift 3 make this the perfect time to begin developing your iOS app. This two day class will introduce you to the concepts and workflow of creating modern Swift based iOS apps for the iPhone and iPad.

We begin day one with single-view applications. This lets us focus on what is different when writing code in Swift. You learn to communicate among elements of the GUI, source code, and model. We take advantage of advances in Xcode to position elements and support localization and accessibility. We end the first day with an exploration of multi-view applications and how to send information back and forth between views presented manually and those presented using storyboard segues. We separate the code into separate modules.

During the second day you will build more complicated applications with multiple scenes. We'll support table views and collection views that are presented using Navigation and Tab Bar Controllers. We look briefly at using Core Data, JSON, and asynchronous network requests.

One of the strengths of Swift is that it can borrow the best from a multitude of paradigms. Swift stresses protocol oriented programming. We'll look at how to successfully use it and weave it together with OO and functional code into a readable and flexible architecture.

What you need


You need a Mac running El Capitan or Sierra with the latest version of Xcode 8 installed. You'll work with Xcode projects and the iOS Simulator throughout the course.

Booking Info


For information about booking a course for your group, company, or public event or more details on course content, contact booking@editorscut.com.

Syllabus


iOS App Fundamentals

Meet Xcode

Create a new project

Navigators

Inspectors

Console

iOS Simulator

A simple UI

The Storyboard

Initial Scene

Libraries

Buttons and labels

Attribute Inspector

Constraints, Autolayout, and Stack Views

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

Communication

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

Segues

Connect Segue from first to second scene

Implement prepareForSegue()

Create Unwind Segues

Create custom segue subclasses

Pass information back and forth

Enhance the UI

Gesture Recognizers

Image Views

Asset Catalogue

Animation

Modules

Separate Storyboards

Storyboard References

Add a framework

Present content in a separate module

Communicate information forward and back

Minimize coupling

Delegates

Connect the delegate

Conform to delegate protocol

Closures as an alternative

Table View Based Apps

Separating Concerns

New project using MVVM/MVC

Gestures

Complicating the model

Using the Module for Insert

Simple Persistence with User Defaults

Table Views

Delegate and Data Source

Connecting to the same model with a different view model

Enable Delete and Move

Using the Module for Insert

Assembling apps from pieces

Notifications

Tab Bar Controller

Nav Controllers

Connecting multiple scenes

Network Applications

Core Data

Create the data model

Generated classes

The Core Data Stack

The Context on the Main Queue

Background Contexts

JSON

Asynchronous Network Calls

Handling Response

Parsing JSON

Creating Model object

CRUD and Saving to Core Data

Custom Cells

The Data Source and View Model

Cell access to model instance

Cell knowledge of view

Filling the custom cell

Passing Info

Prepare for segues

Segue dependent set up

Passing selected entity to next Controller

Retrieving information for entity from Core Data

Displaying the results

Collection Views

Collection View Data Source

Custom Cell

Gathering relevant information

Displaying the results