Free giveaway: Win a ticket for iOSKonf'25. Learn more.
Free: Win a ticket for iOSKonf'25.
Give your simulator superpowers

RocketSim: An Essential Developer Tool
as recommended by Apple

Issue 263
Mar 18, 2025

This week's SwiftLee Weekly covers:

  • SwiftUI Coordinator Pattern
  • Is it time to migrate to Swift 6?
  • Structural Identity in SwiftUI

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

Swift Concurrency Course: Modern Concurrency & Swift 6

I'm beyond excited to introduce you to my very first coding course: The Essential Swift Concurrency Course for a Seamless Swift 6 Migration.

Read all about it in this week's article or check out the course landing page:

swiftconcurrencycourse.com →

SPONSORED

Codemagic makes Apple M2 machines available, even on the free tier!

Codemagic is the first CI/CD to make Apple M2 machines available to everyone (including the free tier!). This is a free upgrade from M1 machines with no price change. Get started today.

THE GOING INDIE PODCAST

The Power of Consistency: a Path to Indie Development - Pol Piella

In this episode of the Going Indie Podcast, I chat with Pol Piella, an indie developer known for his apps like NowPlaying and Helm, and his iOS CI newsletter. We discuss Pol's transition to indie development, balancing multiple projects, and the dynamics of working with a partner.

Pol shares insights on:

  • Splitting revenue with a partner
  • Handling App Store releases
  • The importance of consistency in success

The conversation also delves into Pol's personal journey, including his move from the UK to Spain and how personal events influenced his decision to go indie. Pol emphasizes the importance of building a public profile, taking time off, and setting clear priorities— an episode packed with actionable advice and inspiration for aspiring indie developers.

This episode is sponsored by RevenueCat: Build and grow your subscription business

CURATED FROM THE COMMUNITY

Exploring The LabeledContent View In SwiftUI

I occasionally find myself using an HStack, realizing not much later there are better components to use. The LabeledContent component is one of those that can help you make structured views more easily.
serialcoder.dev

Identifying individual sounds in an audio file

One of those imports I’ve not written before: import SoundAnalysis. It’s one of those frameworks that makes something that seems impossible, pretty doable for any of us!
createwithswift.com

Key Considerations Before Using SwiftData

While SwiftData missed important updates during last WWDC, several open-source frameworks appeared. This article shows an overview of the current state and how you should approach picking the right data solution.
fatbobman.com

Understanding structural identity in SwiftUI

Structural identity is at the core of SwiftUI. Knowing how it works is crucial when developing apps using SwiftUI and this article by Natascha Fadeeva is here to refresh your knowledge.
tanaschita.com

Refactoring my SwiftUI Navigation Layer to follow the Coordinator Pattern

Looking at the click-through rate of all links in SwiftLee Weekly, I can clearly see a winner: articles related to navigation in SwiftUI. Since there isn’t a golden path (will there ever be?) there’s always a debate on what solution to use. Tiago Henriques is here to show you how to use the Coordinator pattern.
tiagohenriques.dev

CODE SNIPPET OF THE WEEK

Finding out the current Task priority

You can find this post on Twitter/X, LinkedIn, or Bluesky.

QUESTION OF THE WEEK

Is it the right time to migrate to Swift 6?
Vien

This is such a timely question since there's a lot of movement in this area as we speak!

While preparing my talk for AppDevCon and Deep Dish Swift, I've been looking through current open proposals and one of the latest vision documents. I've realized I've always expected async/await and Swift Concurrency to be in a final state. In other words, I kind of assumed "this is it and we have to deal with what we have today".

The opposite is true and after reading the above vision document, I came to realize we've simply been using the best-first-version of Swift Concurrency. Decisions were made to increase performance in favor of usability and after developers started adopting, the Swift team came to realize improvements are needed.

What I like is that they're not simply make bold decisions, but they're carefully thinking through several types of end-users. Some developers need advanced concurrency while others are perfectly fine with a single-threaded application.

A question that comes to mind is whether it's the right time to migrate existing projects/packages to Swift 6. The proposals related to the vision document have a potential large impact on the work required for a migration, so you could say: yes, if possible, wait a little bit. However, depending on your project's size, a migration to Swift 6 today is already doable.

Whether or not you decide to migrate today, I highly encourage you to invest in your knowledge and try to prevent extra tech debt. I believe in so-called migration habits and will share them all during my talk. If you're unable to attend either AppDevCon or Deep Dish and still interested to learn more, you can get my course and learn all about them in detail.

Want to have your question answered next week? Ask your question via this form (anonymously) or reply to this email with your question.

{% if subscriber.rh_reflink != blank %}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:

{{subscriber.rh_reflink}}

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?{% endif %}

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

Antoine