SwiftLee Weekly - Issue 280


This week's SwiftLee Weekly covers:

  • @Animatable in SwiftUI
  • Preparing for the future of App Development
  • 6 Mistakes that slow down development

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

Modern Swift Lock: Mutex & the Synchronization Framework

While actors work great in Swift Concurrency, they're not always the best choice. You might not want to introduce the overhead of async/await in some cases, in which a Mutex with Sendable support can be a way out.

SPONSORED

Transform Your Career with the iOS Lead Essentials — Limited Offer

Unlock over 40 hours of expert training, mentorship, and community support to secure your place among the best devs. Click now for early access to this limited offer and a FREE crash course!

CURATED FROM THE COMMUNITY

Confirmation and Result Interactive Snippets

Start with this post on interactive snippets and follow up with this week’s one. If your app has app intents, you want to build this in. If your app doesn’t have intents, you might want to consider intent-driven development.
swiftjectivec.com

6 Mistakes That Slow Down Mobile Feature Development

With AI tools at hand, it’s easier than ever just to get started coding. However, taking a step back to think things through is often wiser. And yes, you can use AI in that process, too!
mobilesystemdesign.com

Introducing Animatable macro in SwiftUI

The new @Animatable protocol in SwiftUI aims to make animations even more approachable.
swiftwithmajid.com

Reaper - An open-source SDK for finding dead code

After open-sourcing Launch Booster not long ago, we got another open-sourced framework. Even if you’re not looking to delete dead code, it’s going to be fun to look through the internals and see how this works!
blog.sentry.io

What you need to know before migrating to Swift Testing

I’ve migrated quite a few of my projects to Swift Testing already and found this article providing an excellent overview of things I found out the hard way. A must-read!
soumyamahunt.medium.com

Four Months in the Making: SwiftMCP 1.0 is Here

You might not all want to adopt the Model Context Protocol (MCP), but the way this project is set up is already worth a read. I love how they combine documentation and macros to integrate into existing projects more easily.
cocoanetics.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.

CODE SNIPPET OF THE WEEK

Mutex as a solution to non-sendable types

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

WHAT I'M WORKING ON

Preparing for the future of App Development

On a day-to-day basis I'm mostly working on my developer tool RocketSim. It's a project that started in 2019, so the code base starts to have places with outdated code.

I've been mostly working solely on this project, but invited two engineers to the team recently. This suddenly surfaced problems like outdated local packages and no CI integration for running all tests.

The latter is also a downside when you want to work with AI agents. They're great at opening PRs these days, but you want to validate the outcome by running your suite of tests.

In other words, I have to prepare my codebase for the future. I started a dedicated xcode-26 branch and dropped macOS 14 so I can fully adopt latest APIs. This included refactoring old CGWindow APIs to ScreenCaptureKit and migrating XCTest to Swift Testing.

These weeks are less fruitful feeling wise since I'm not doing many releases. Not having something tengible can feel demotivating—the opposite is actually releasing an app update with added value which always feels great. Yet, I do know what I'm working towards. Soon, I'll be able to easier invite other engineers or AI agents to the project and accelerate development due to having a modern codebase.

Sometimes, you have to take one step back to take two steps forward!

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...