SwiftLee Weekly - Issue 279


This week's SwiftLee Weekly covers:

  • Vibe coding in Xcode 26
  • Extensible enums in Swift
  • Designing UI with Liquid Glass

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

Swift Concurrency & Swift 6 Course (Launch offer)

After starting in March, I'm happy to announce the first completion of all 11 modules in my Swift Concurrency Course! You now have access to:

  • 58 lessons
  • 10 assessments
  • 11 modules

The final module has been great fun—it's been a result of migrating several packages to Swift 6 & Swift Concurrency. All my learnings are boiled down into individual lessons, covering:

  • Swift's official migration tooling
  • Migration habits
  • From Combine/RxSwift to Swift Concurrency

You can read more about the course in this week's article. This is also your opportunity to benefit from a reduced price launch offer:

SPONSORED

Paywalls Made Easy – Superwall

Huge apps like PhotoRoom, Mojo & Citizen use Superwall to build paywalls, run price tests and more — all without shipping app updates. Learn how.

CURATED FROM THE COMMUNITY

Vibe coding in Xcode 26: is it good?

Vibe coding is hot, but how does it work in Xcode 26? Vincent Pradeilles decided to give it a try and shares his thoughts.
swiftwithvincent.com

The Anatomy of a LiquidGlass Button in iOS 26

How do you convert a regular button into a LiquidGlass button? You might have seen the APIs for it by now, but do you also know how to make a circle button?
natashatherobot.com

Schedule a countdown timer with AlarmKit

AlarmKit is one of the new frameworks announced at WWDC 2025. Natalia Panferova shares how it works and how you can implement it in your apps.
nilcoalescing.com

Finding my Way

Many apps (if not all) require a redesign for the new OS versions. David Smith takes you through redesigning one of the core screens of his app.
david-smith.org

Designing custom UI with Liquid Glass on iOS 26

If you’ve built custom UI components, you might have started to worry after seeing Liquid Glass popping up everywhere. However, Donny Wals shows that there’s hope after applying Liquid Glass to one of his custom UI elements.
donnywals.com

SWIFT EVOLUTION

An overview of last week's Swift Proposal state changes. Check them out when they're in review, as it's your opportunity to influence the direction of Swift's future.

WHAT I'm WORKING ON

Performance improvements and package restructuring

After completing the first major version of my concurrency course, I started to fully focus on the future of RocketSim. We are planning to make RocketSim's features more accessible by command line tools, AI tools, shortcuts, and more.

Up until now, it was only RocketSim's User Interface that interacted with RocketSim actions. The project is currently not set up for more flexibility.

On top of that, we're actively migrating to Swift 6 and strict concurrency. Altogether, it's been time to take a step back and redesign the current structure of packages.

Over time, it's easy to add more and more responsibilities to existing packages. We have a so-called RocketSimCore package, which is an easy destination for anything. In my experience, packages with more responsibilities are less performant and have a lower test coverage.

I can explain the latter differently—by moving code into specific packages, we create new isolation and an opportunity for better test coverage and performance improvements.

One example for RocketSim is the logic for monitoring new Simulator builds. This is all contained with RocketSimCore right now, but it makes more sense to create a RocketSimRecentBuildMonitoring package. Within that isolation, I've already applied several performance improvements after writing a bunch of tests.

Extra benefit?

The new package allows for rewriting to Swift Testing and creates a focused environment for the Swift Concurrency migration.

EARN ROCKETSIM LIFETIME

Share and Earn RocketSim Lifetime & a 1-on-1 coaching session

Apple has recognized RocketSim as an Essential Developer Tool in the Mac App Store, and now you can get lifetime Pro access by sharing your unique referral link!

How to get started:

[RH_REFLINK GOES HERE]

Rewards:

  • Earn your first reward after just 3 sign-ups!
  • Check your progress anytime using your referral dashboard.
  • The grand prize? A personalized 1-on-1 career coaching session!

Several subscribers have already claimed their rewards—will you be next?

Thank you so much for your support, and until next Tuesday,

Antoine

SwiftLee Weekly by Antoine van der Lee

A new SwiftLee article, code snippet, Swift Evolution updates, 5 top community articles, and a weekly answer to a question from the community to level up your Swift skills.

Read more from SwiftLee Weekly by Antoine van der Lee

This week's SwiftLee Weekly covers: Swift 6.2' new String Interpolation feature When should you use an actor? A better way of matching strings in tests You've might noticed I'm sending this out later than normally, and that's for a reason! It's Apple event day. Here are the most important links for this week: Xcode 26 RC 1 (Apple Silicon) Xcode 26 RC 1 And the most important date: September 15th is OS launch day! If you want your app's update to be available on day 1 of iOS, macOS, iPadOS,...

This week's SwiftLee Weekly covers: Dealing with Xcode migrations Debugging Swift Concurrency Controlling warnings in Swift Packages Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST @ViewBuilder usage explained with code examples It's one of the most used result builders in SwiftUI: @ViewBuilder. Even if you're new to this attribute—you're already using it if you're writing SwiftUI code. Unde SPONSORED Fastlane alternative - Codemagic CLI tools Are you tired of Ruby and Fastlane...

This week's SwiftLee Weekly covers: Raw Identifiers in Swift Using a WebView in SwiftUI Using App Intents correctly Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST Swift Computed Property: Code Examples While this is a basic in Swift, there are some nice additions since recently. For example, you can now use async and typed throws in the getter of a Swift computed property. SPONSORED Full iOS coverage. Fast If your test suite is missing critical flows or isn’t up to date, you’re at...