Photo by Michael Long

Apple Listened: You No Longer Need To Wait For Async

The real question is whether or not they’ll keep listening.

Michael Long
4 min readDec 6, 2021

--

With Xcode 13.2, “you can now use Swift Concurrency in applications that deploy to macOS 10.15, iOS 13, tvOS 13, and watchOS 6 or newer. This support includes async/await, actors, global actors, structured concurrency, and the task APIs.”

That’s a direct quote from the Xcode 13.2 Beta Release Notes.

This is significant because if you’d wanted to use all of those cool new features prior to this, you’d have to limit your application’s minimum supported version to iOS 15. That’s bad. So bad, in fact, I wrote about this issue at some length in a previous article, Why You Can’t Use Async/Await.

But with Xcode 13.2, Apple chose to back port support for these new technologies back to iOS 13 and the other versions on the other platforms mentioned earlier. Apple does this by including portions of the concurrency library with your application, along with some additional support needed to make it all work.

When running on an earlier version of iOS, for example, async/await will create its own global cooperative queue. If using actors, some classes may have some of their functions swizzled, and so on.

--

--

Michael Long

I write about Apple, Swift, and SwiftUI in particular, and technology in general. I'm also a Lead iOS Engineer at InRhythm, a modern digital consulting firm.