July 9th - 12th     London, UK
{dnn}

days

{hnn}

hours

{mnn}

minutes

{snn}

seconds

3 pragmatic iOS and Swift workshops delivered by
a world leading Swift expert

Daniel Steinberg
Daniel Steinberg

During the first day of the class you will be introduced 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.

Second day of a two day class will introduce you to the concepts and workflow of creating modern Swift based iOS apps for the iPhone and iPad.

During this 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.

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 (Time permitting)

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

Intermediate iOS Programming — Make it Swifty

This one day intermediate course applies some of the functional aspects of Swift to iOS development. The day is built around an example where we fetch JSON, parse it, and fill a table view with the parsed data.

This class is for you if you have experience in writing iOS apps and Swift (including taking the two day introductory course).

You need a Mac with the latest version of Xcode 9 installed. You’ll work with Xcode projects during this course.

Building the Model

Create a standard mutating model

Add non-mutating methods for remove, add, move

Make the model generic

Add methods that only work for some types of elements

Turn the model into a sequence


MVVM

Create a table view

Use a View Model as the data source

Connect the view controller to the view model

Support the user interactions


Process the JSON

Make asynchronous network calls

Parse the JSON

Transform the JSON to model objects


Add a second Scene

Use Futures to make a subsequent call

Cache the data

Display the data


Optional Material
(time permitting)

Use custom table cells for display

Add a third detail view

Subclass storyboard segues to clean up code

A Firehose of Functional Programming in Swift

During this one day advanced Swift workshop we will explore when, where, how, and why to apply aspects of functional programming to your Swift code.

We'll begin the day with a look at functions that consume other functions and move on to situations where you might use functions where you would traditionally reach for a class, then take a moment to discuss some of the key ideas of category theory that are useful to you as a programmer. We'll finish the day by looking at three key patterns that you have encountered in the Swift Standard library and can now incorporate into your code: map, flatMap, and apply.

No one is asking you to stop using Objected Oriented Programming, Protocals, or any other techniques you know and love. The purpose of this workshop is to introduce you to the key aspects of Functional Programming to add powerful tools to your Swift programming toolbox.


Topics:

Use functions where you might traditionally reach for a class

Incorporate map, flatMap and apply into your code

Understand key aspects of Functional Programming and add powerful tools to your toolbox

Create higher-order functions using examples that are familiar to iOS developers

Find the balance between map() and flatMap() and how to define them in the case of sequences and optionals

Daniel Steinberg


Daniel Steinberg

Daniel is the author of more than a dozen books including the best selling books A Swift Kickstart and Developing iOS 7 Apps for iPad and iPhone (the official companion book to the popular iTunes U series from Stanford University).

He has written apps for the iPhone and the iPad since the SDKs first appeared and has written programs for the Mac all the way back to System 7.

Daniel presents iPhone, Cocoa, and Swift training and consults through his company Dim Sum Thinking. When he's not coding or talking about coding for the Mac, the iPhone, and the iPad he's probably cooking or hanging out with friends.

Information on his books is available on the Editors Cut website. Details on his training, and speaking is on the Dim Sum Thinking website.

Newsletter Sign Up

No Spam - Only latest news, price and activity updates

Tickets

Get yours while they're still available



HOT
Early Bird
Idiomatic iOS 11 Development with Swift 4
£300

(inc. VAT @20%)

Two day class that will introduce you to the concepts and workflow of creating modern Swift based iOS apps for the iPhone and iPad.
Only a few tickets available. Act fast!

Buy Ticket

HOT
Early Bird
Intermediate iOS Programming — Make it Swifty
£150

(inc. VAT @20%)

One day intermediate course applies some of the functional aspects of Swift to iOS development.
Only a few tickets available. Act fast!

Buy Ticket

HOT
Early Bird
A Firehose of Functional Programming in Swift
£150

(inc. VAT @20%)

One day advanced workshop exploring when, where, how, and why to apply aspects of functional programming to your code.
Only a few tickets available. Act fast!

Buy Ticket

Idiomatic iOS 11 Development with Swift 4
£400

(inc. VAT @20%)

Two day class that will introduce you to the concepts and workflow of creating modern Swift based iOS apps for the iPhone and iPad.

Buy Ticket

Intermediate iOS Programming — Make it Swifty
£200

(inc. VAT @20%)

One day intermediate course applies some of the functional aspects of Swift to iOS development.

Buy Ticket

Idiomatic iOS 11 Development with Swift 4 (2 days) & Intermediate iOS Programming — Make it Swifty
£500

(inc. VAT @20%)

Buy both courses and save £100.

Buy Ticket

A Firehose of Functional Programming in Swift
£200

(inc. VAT @20%)

One day advanced workshop exploring when, where, how, and why to apply aspects of functional programming to your code.

Buy Ticket

TESTIMONIALS

what people say

Don't miss this if you want to learn Swift in London! Daniel is one of the best teachers I've had.
Adrian Kosmaczewski iOS & Android app developer
writer • speaker • coach

Logistics