Skip to main content

Where is Swift concurrency supported?

About 2 minSwiftArticle(s)bloghackingwithswift.comcrashcourseswiftxcodeappstore

Where is Swift concurrency supported? 관련

Swift Concurrency by Example

Back to Home

Where is Swift concurrency supported? | Swift Concurrency by Example

Where is Swift concurrency supported?

Updated for Xcode 15

When it was originally announced, Swift concurrency required at least iOS 15, macOS 12, watchOS 8, tvOS 15, or on other platforms at least Swift 5.5.

However, if you’re building your code using Xcode 13.2 or later you can back deploy to older versions of each of those operating systems: iOS 13, macOS 10.15, watchOS 6, and tvOS 13 are all supported. This offers the full range of Swift functionality, including actors, async/await, the task APIs, and more.

Important

This backwards compatibility applies only to Swift language features, not to any APIs built using those language features. This means you can write your own code to use async/await, actors, and so on, but you won’t automatically gain access to the new Foundation APIs using those – things like the new URLSession APIs that use async/await still require iOS 15.

If you are keen to use the newer APIs in your project while also preserving backwards compatibility for older OS releases, your best bet is to add a runtime version check for iOS 15 then wrap the older APIs with continuations. This kind of hybrid solution allows you to keep using async/await elsewhere in your project – you get all the benefits of concurrency for the vast majority of your code, while keeping your backwards deployment shims neatly organized in one place so they can be removed in a year or two.

Similar solutions…
Concurrency vs parallelism | Swift Concurrency by Example

Concurrency vs parallelism
How to fix the error “async call in a function that does not support concurrency” | Swift Concurrency by Example

How to fix the error “async call in a function that does not support concurrency”
How to use continuations to convert completion handlers into async functions | Swift Concurrency by Example

How to use continuations to convert completion handlers into async functions
What are tasks and task groups? | Swift Concurrency by Example

What are tasks and task groups?
What is an asynchronous function? | Swift Concurrency by Example

What is an asynchronous function?

이찬희 (MarkiiimarK)
Never Stop Learning.