Starting at € 700

Swift Concurrency with John Sundell

Overview

Join John Sundell, creator of Swift by Sundell, for a one-day workshop all about Swift’s built-in concurrency system. During the training session, you’ll get a comprehensive walkthrough of how to best utilize Swift concurrency within an iOS app — including using async/await, actors, managing tasks, working with async sequences, and more.

We’ll explore a number of different use cases, including networking, data transformations, multi-threading, thread safety, and observation management. You’ll also get familiar with the tools you’ll need to migrate from Swift 5 to 6, including how to resolve actor isolation errors, working with Sendable types and functions, how to refactor existing code to be fully compliant with Swift 6, and how to manage legacy and external code.

If you want to be able to fully utilize Swift concurrency, and future-proof your code base with Swift 6, then this workshop is for you.

Curriculum
1. Introduction to Swift Concurrency
How does async/await work?
How threading works when using Swift concurrency
Running async tasks and handling errors
2. Networking with async/await
Using URLSession with async/await to make network calls
Mixing async code with synchronous operations, such as JSON decoding
Utilizing caching and preventing race conditions
3. Structured concurrency
Using “async let” to run multiple, structured operations in parallel
Utilizing actors to protect against data races
4. Async sequences
Consuming and constructing async sequences
How async sequences relate to Combine and reactive programming in general
5. Migrating to Swift 6
Resolving common concurrency and actor isolation errors in Swift 6
How the Sendable protocol works, and how to conform to it
When and how to use the MainActor
6. Making existing code async/await compatible
How to use async/await with existing, closure-based APIs
How to migrate delegate-based APIs to async/await
7. UI integration
Integrating async/await with UIKit
Integrating async/await with SwiftUI
8. Unit testing
How to unit test async/await-based code
How to unit test actors

Upcoming Sessions

November 8, 2024
Book Now
Preparing

The training takes place entirely in English, so a sufficient spoken understanding of English is mandatory.

Logistics
  • Every session is held synchronously, live, including remote sessions. This training does not rely on pre-recorded videos.
  • Comprehensive course material is provided, serving as a common thread throughout the training. This typically includes numerous slides and starter codebases or repositories for every exercise and lab.
  • Trainees can ask questions at any time. Sessions alternate between theory and hands-on labs, in short intervals ranging from 5 minutes to 1 hour.
  • Hands-on periods involve real-world use-cases, which can be bootstrapped through starter codebases, Git repositories, or online assignment labs. These periods may be completed individually or in sub-groups that change between sessions to encourage pair programming and collaboration.
  • Remote sessions are conducted via a Zoom recurring meeting, accessible through a provided link using both the installed app and the web-based, no-install client. Features commonly used include video thumbnails, screensharing, chat, breakout rooms, and potentially quizzes, annotations, and whiteboards.

Upcoming Sessions

November 8, 2024
Book Now

Need an In-House / Custom Training?

If you’d like to get a version of this tailored to your needs, in our office or remotely, let us know what your needs are.