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.
How does async/await work? | |
How threading works when using Swift concurrency | |
Running async tasks and handling errors |
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 |
Using “async let” to run multiple, structured operations in parallel | |
Utilizing actors to protect against data races |
Consuming and constructing async sequences | |
How async sequences relate to Combine and reactive programming in general |
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 |
How to use async/await with existing, closure-based APIs | |
How to migrate delegate-based APIs to async/await |
Integrating async/await with UIKit | |
Integrating async/await with SwiftUI |
How to unit test async/await-based code | |
How to unit test actors |
The training takes place entirely in English, so a sufficient spoken understanding of English is mandatory.
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.