Thinking in Swift 3

Understanding the Patterns of Programming in Swift (One day)

Who it's for


This course is for programmers who know the fundamentals of the Swift Programming Language but haven't mastered the paradigms.

What you'll learn


This fast-paced workshop shows you how to take advantage of Swift features to write more robust code that is easier to reason about. Swift has been changing quickly over the past year. In this workshop you'll learn to embrace the latest Swift 3 conventions.

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.

We assume that you are an experienced programmer who has spent some time looking at Swift but you aren't yet an expert in Swift. You understand most of the hows and whats of working with Swift and are looking for the whys and wheres. This course is often part of a sequence that includes A Swift Kickstart

What you need


You need a Mac running El Capitan or Sierra with the latest version of Xcode 8 installed.

Booking Info


For information about booking this class for your group, company, or public event, contact booking@editorscut.com.

Syllabus


Flexible Functions

Var parameters

Inout parameters

Closures

Generics

Extensions

Mutating methods

Optionals and if let

Protocol Extensions

Using Methods instead of Free Functions

Static Variables and Methods

Associated Types

RawRepresentable Types

while let

Inheriting implementation in value types

Iterating Collections

IteratorProtocol

Sequence

Sorting

Zipping Sequences

Subscripts

Distributions

Collections

When Things Go Wrong

Asserts

ErrorProtocol Structs

ErrorProtocol Enums

Throws

Try/Catch

Defer

Guard Let

Rethrow

Combining Methods

Chaining Functions

Currying

Custom operators

Protocol Extensions

Immutable Model

Mutable options

Generic Types

Generic Extensions

Functional Techniques

Map

Filter

Reduce

FlatMap

Functors and Monads