SwiftUI Weekly - Issue #229
The curated collection of links about SwiftUI. Delivered every Monday.
Reading
Agentic coding in Xcode
Apple has finally released Xcode 26.3, which now supports agentic coding. In this article, I’ll guide you through configuring Xcode 26.3 and utilizing the latest best practices when using agentic tools for building apps on Apple platforms.
Morphing Sheets Out of Buttons in SwiftUI
WWDC 2025 brought many advancements in the UI with the new Liquid Glass design. Among them, there’s a brand new feature, a transition in particular, that would be easy to overlook in that huge load of novelties. This new built-in transition comes to add a new way to present sheets, as it allows to morph a sheet out of the button that initiates its appearance, instead of sliding up from the bottom edge. In plain words, the button is transformed into a sheet and the opposite, creating a beautiful visual effect.
How to use SwiftUI Coordinators to communicate with UIKit
When building SwiftUI apps, we sometimes still need UIKit. Maybe we’re integrating an older code base or using system controllers that don’t yet have a native SwiftUI equivalent. In those cases, we can wrap UIKit views or view controllers using UIViewControllerRepresentable. But as soon as delegates or callbacks are involved, we need a way to communicate back to SwiftUI. That’s where coordinators come in.
Advanced NavigationStack Patterns in SwiftUI
If you’ve worked on any non-trivial SwiftUI app, you’ve felt it - navigation logic scattered across views, random NavigationLinks fighting each other, and deep linking bolted on as an afterthought. It works until it doesn’t, and then you’re hunting through ten files to figure out why tapping “Settings” opened the wrong screen.
Making SwiftUI Buttons with Equal Widths
It's really common to have two buttons, one above another, and to have those buttons be the same size. However, when I tried to do this by laying out Buttons in a VStack, they wrapped to the smallest width needed to fit the labels. That meant that every button was a different width.
