The future of concurrency in Swift

By Denis Poifol

Elevator Pitch

Async/Await is a very anticipated feature of the language, it will bring change to how concurrency is written in Swift. I aim to present, based on concrete examples, how it is going to affect our codebases.

Description

Swift is an open source language and is currently adopting many structuring changes for concurrency. Among these changes is the new async/await syntax. We will look into the motivation for this feature of the language and how it could impact our codebases. The idea here is to cover most use cases of the feature from the “basic” rules the compilers infringe on us when using async and await keywords, to the addition to the standard library that could help us leverage this new feature in more complex use cases. The angle here is to focus on what will change for swift developers and refrain from looking too closely to the implementation details of this language feature.

Notes

The talk will be structured around examples of an actual project where we try to migrate from completion handlers to async/await. I want to give a better understanding of how async/await will be used by presenting what changed with the main PR : https://github.com/apple/swift-evolution/blob/main/proposals/0296-async-await.md But depending on how things evolve on the swift forums and the time limitations of the session, I would like to get into more advanced use cases proposed by Tony Parker here : https://forums.swift.org/t/concurrency-asyncsequence/42417