5 min read

Issue #81: SwiftUI's Toolbars Grow Up, iPhone Apps Get Resizable, and a Community Skill for Better Tests

Hey everyone! 👋

Two weeks past the keynote and there's still plenty to chew on. This issue: SwiftUI's toolbar API finally gets real overflow and priority logic, Xcode 27's resizable iPhone apps turn out to be a bigger deal than the one-liner in the keynote suggested, and the community has put together a genuinely solid Agent Skill for writing better Swift Testing code. Let's get into it. 🛠️

SwiftUI's Toolbars Get Actual Overflow Logic

Majid published a deep dive into the new toolbar APIs that were only briefly mentioned right after WWDC26, and it turns out there's a lot more here than a one-line callout suggested. The core problem: a toolbar with five or six items looks fine on macOS but gets crushed the moment it hits an iPhone in portrait. SwiftUI now has an actual system for handling that instead of just letting things overflow unpredictably.

visibilityPriority lets you mark which toolbar groups matter most so the system knows what to drop first on smaller screens:

struct ContentView: View {
    var body: some View {
        NavigationStack {
            Text("Hello, World!")
                .navigationTitle("Hello")
                .toolbar {
                    ToolbarItemGroup(placement: .primaryAction) {
                        Button("Action 1") { }
                    }
                    .visibilityPriority(.high)

                    ToolbarItemGroup {
                        Button("Action 2") { }
                        Button("Action 3") { }
                        Button("Action 4") { }
                        Button("Action 5") { }
                    }
                }
        }
    }
}

For items you want permanently tucked away rather than collapsing automatically, there's now a dedicated ToolbarOverflowMenu type:

.toolbar {
    ToolbarItemGroup(placement: .primaryAction) {
        Button("Action 1") { }
    }
    ToolbarOverflowMenu {
        Button("Action 2") { }
        Button("Action 3") { }
        Button("Action 4") { }
        Button("Action 5") { }
    }
}

Two more worth knowing: topBarPinnedTrailing keeps a critical action, like a share button, glued to the trailing edge no matter what else collapses, and toolbarMinimizeBehavior lets tab, bottom, window, and navigation bars shrink as the user scrolls, without writing any of that logic yourself.

Taking control of toolbar items in SwiftUI
I already wrote about Toolbar APIs a few times because it is one of the most important and widely used APIs in SwiftUI. Toolbars play a crucial role, especially with the recent update to the design language where we have a content layer and the UI controls layer above it. This week, we will talk about new APIs allowing us to control toolbar appearance even more.

A breakdown of SwiftUI's new toolbar visibility and overflow APIs, including visibilityPriority, ToolbarOverflowMenu, and toolbarMinimizeBehavior.


iPhone Apps Are Resizable Now, and It's Not Just for iPad

Buried a bit in the WWDC26 SwiftUI sessions: iPhone apps can now be resized on iOS 27, which matters way beyond the obvious iPhone Mirroring case. It also means an iPhone app can run in a resizable window when launched on iPad, similar to how Mac Catalyst apps behave today. A solid community breakdown walks through what actually changes for your layout code: if you're leaning on GeometryReader or fixed frame assumptions anywhere, this is worth testing against now rather than after a support ticket shows up.

The practical upside is that Xcode 27's Live Previews finally got resize handles, so you can drag a preview around and watch your layout break in real time instead of building to a device to find out.

struct ContentView: View {
    var body: some View {
        NavigationStack {
            ContentBody()
        }
        .navigationTitle("Library")
        // Worth auditing: anything that assumes a fixed
        // iPhone-sized frame will need a second look.
    }
}

If your app mixes UIKit and SwiftUI, the "Modernize your UIKit app" session is the one to watch for specifics on screen geometry, size classes, and orientation handling under the new model.

WWDC 2026 - What’s New in SwiftUI - A Developer’s Breakdown
WWDC26 brought a substantial round of updates to SwiftUI — not a ground-up redesign, but a lot of…


A practical walkthrough of SwiftUI's WWDC26 changes, including resizable iPhone apps, reorderable containers, and the new toolbar APIs.


A Community Agent Skill for Swift Testing

Agent Skills keep multiplying since Xcode 27 made them a first class thing, and one of the more useful ones to land recently is built specifically around Swift Testing. It encodes a set of opinionated rules: when to reach for @Suite versus a flat collection of @Test functions, when serialization is actually necessary versus a habit carried over from XCTest, and how to convert duplicate tests into proper parameterized ones instead of leaving them as copy paste.

npx skills add https://github.com/twostraws/swift-testing-agent-skill --skill swift-testing-pro

It also works as a plugin if you're already using a marketplace setup:

/plugin marketplace add twostraws/Swift-Testing-Agent-Skill
/plugin install swift-testing-pro@swift-testing-agent-skill

Worth installing even if you're not deep into agentic workflows yet, since reading through the skill itself doubles as a decent refresher on Swift Testing conventions.

GitHub - twostraws/Swift-Testing-Agent-Skill: Swift Testing agent skill for Claude Code, Codex, and other AI tools.
Swift Testing agent skill for Claude Code, Codex, and other AI tools. - twostraws/Swift-Testing-Agent-Skill

Quick Hits

Apple announced the global App Store ecosystem facilitated over $1.4 trillion in developer billings and sales in 2025, a good number to keep in your back pocket next time someone calls iOS a shrinking platform.

On the regulatory side, Apple rolled out new App Store options in Brazil following an agreement with the country's competition regulator, opening the door to alternative marketplaces and outside payment processing. Meanwhile Texas's SB 2420 age assurance requirements took effect June 4, so if you ship into either region it's worth checking the Declared Age Range and Significant Change APIs.

And for anyone building games, Apple quietly shipped a Steam Asset Converter and Game Porting Toolkit 4 aimed at making it faster to bring existing PC titles over to Apple platforms, plus official Unity plugins for StoreKit and Background Assets.✌️

That's Issue #81! Toolbars finally feel intentional instead of accidental, and resizable iPhone apps are going to surface some layout bugs nobody's tested for yet. See you in a couple weeks. 🚀