What is approachable concurrency?

Asked on 06/11/2025

1 search

Approachable concurrency is a set of features in Swift designed to make it easier for developers to work with concurrency in their applications. It includes language changes and build settings that simplify the introduction of concurrency, especially for projects that primarily interact with the user interface. The goal is to make single-threaded apps easier to write and provide a more straightforward path to introducing concurrency when needed.

The "Approachable Concurrency" setting in Xcode enables a suite of features that help developers manage concurrency more effectively. For instance, it allows code to run on the main actor by default, reducing the risk of data races and making it easier to offload specific tasks to the background when performance improvements are necessary. These features are opt-in and can be enabled under the Swift Compiler Concurrency section of Xcode Build Settings or in a Swift package manifest file using the Swift Settings API.

For more detailed information, you can refer to the session Embracing Swift concurrency (26:37) and What’s new in Swift (36:51).

Embracing Swift concurrency

Embracing Swift concurrency

Join us to learn the core Swift concurrency concepts. Concurrency helps you improve app responsiveness and performance, and Swift is designed to make asynchronous and concurrent code easier to write correctly. We’ll cover the steps you need to take an app through from single-threaded to concurrent. We’ll also help you determine how and when to make the best use of Swift concurrency features – whether it’s making your code more asynchronous, moving it to the background, or sharing data across concurrent tasks.

What’s new in Swift

What’s new in Swift

Join us for an update on Swift. We’ll talk about workflow improvements that make you more productive, and new and modernized library APIs for fundamental programming tasks. We’ll show examples of Swift adoption throughout more layers of the software stack. Finally, we’ll explore new language features for both improving approachability of concurrency, and achieving peak performance when you need it.

Code-along: Elevate an app with Swift concurrency

Code-along: Elevate an app with Swift concurrency

Learn how to optimize your app’s user experience with Swift concurrency as we update an existing sample app. We’ll start with a main-actor app, then gradually introduce asynchronous code as we need to. We’ll use tasks to optimize code running on the main actor, and discover how to parallelize code by offloading work to the background. We’ll explore what data-race safety provides, and work through interpreting and fixing data-race safety errors. Finally, we’ll show how you can make the most out of structured concurrency in the context of an app.