Learn  /  What's new

What's new in Swift 6.2: approachable concurrency and safer, faster code

Released in September 2025, Swift 6.2 made strict concurrency far easier to live with. Here is what changed.

What's new7 min readUpdated 30 September 2026
SwiftiOSWhat's new
All guides and cheat sheets

Swift 6 introduced compile-time data-race safety, which was a big step forward but also produced a wave of confusing warnings in existing apps. Swift 6.2, released alongside Xcode 26 in September 2025, focused on making that safety approachable, while adding new tools for high-performance code.

  1. Swift 6

    Compile-time data-race safety.

  2. Swift 6.2Now

    Approachable concurrency, with Xcode 26.

  3. Swift 6.4

    Simpler syntax, async defer, Subprocess 1.0.

Approachable concurrency

Most app code runs on the main thread, and most apps do not need to think about concurrency until they choose to. Swift 6.2 leans into that reality.

Main actor by default (SE-0466)
A new build setting lets a module infer @MainActor isolation by default. For typical app targets this removes a large share of concurrency warnings, because code is single-threaded unless you opt into more.
Async functions stay where they are called (SE-0461)
With the approachable concurrency settings enabled, a non-isolated async function runs on the caller's actor instead of hopping to a background thread.
@concurrent
When you genuinely want work off the current actor, you say so.
Swift
struct ImageProcessor {
    @concurrent
    func thumbnail(from data: Data) async -> Data {
        // Expensive work that should run off the main actor
        resize(data, to: 200)
    }
}

InlineArray and Span

Two new standard library types target performance-sensitive code.

InlineArray

SE-0453
What
a fixed-size array stored inline
  • No heap allocation

Useful for small, known-size buffers.

Span

SE-0447
What
fast, bounds-checked access to contiguous memory
  • A safe alternative to unsafe pointers

Useful for parsing and performance-sensitive loops.

Swift
var rgb: InlineArray<3, UInt8> = [255, 128, 0]
rgb[1] = 64

Raw identifiers for readable tests

Identifiers can now contain spaces and other characters when wrapped in backticks (SE-0451). It is particularly nice for test names with Swift Testing.

Swift
import Testing

@Test func `order total includes all items`() {
    let order = Order(items: [.init(price: 2.5, qty: 2), .init(price: 3, qty: 1)])
    #expect(order.total == 8)
}

Swift Testing improvements

Swift Testing, the modern replacement for XCTest-style assertions, gained exit tests, which verify that code terminates as expected under certain conditions, and attachments, which let you save extra files or data alongside test results for easier debugging.

Beyond Apple platforms

Swift 6.2 added official support for building to WebAssembly, extending Swift into browsers and other Wasm runtimes, and the official Swift extension for VS Code continued to mature, making Swift a practical option for server and cross-platform work outside Xcode.

What to do in your projects

  1. 1

    Try the new defaults in a branch

    Enable approachable concurrency and default main-actor isolation, rebuild, and review the remaining warnings.

  2. 2

    Mark expensive work with @concurrent

    Rather than relying on implicit background execution.

  3. 3

    Adopt Swift Testing

    For all new tests.

Check your understanding

1/2With approachable concurrency enabled, where does a non-isolated async function run?

2/2How do you explicitly run work off the current actor?

New to Swift, or need a refresher? Start with the Swift cheat sheet and the Codable and async/await guide.

Swift has moved on since: see What's new in Swift 6.4, released in September 2026.

Build settings and defaults can differ between Xcode templates and Swift package manifests. Check the Swift.org release notes for the exact settings your project uses.

Alessandro Ecclesie AgazziWritten by Alessandro Ecclesie Agazzi, analytics engineer in London. Updated 30 September 2026. About me

Found this useful?

New guides and "what's new" explainers on data and AI land here regularly. Follow along on LinkedIn, or share this one with a colleague.