SwiftLee Weekly - Issue 282


This week's SwiftLee Weekly covers:

  • A threading risk for Combine & Swift Concurrency
  • Flux pattern in Swift
  • A crash debugging experience

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

Combine and Swift Concurrency: A threading risk

Migrating to Swift Concurrency brings all kinds of insights. Last week, I found an unexpected crash in RocketSim, caused by a Combine pipeline. It resulted in some crucial insights for those using Combine with Swift Concurrency.

SPONSORED

Fastlane alternative - Codemagic CLI tools

Are you tired of Ruby and Fastlane installation issues? There's got to be a better way! Discover Codemagic open source CLI tools. It is not a drop-in replacement for all of what Fastlane does (screenshots for example), but we use it at Codemagic to build and publish iOS and Android apps, also versioning and device provisioning. View on GitHub.

CURATED FROM THE COMMUNITY

A Peek into My Debugging Process (With Real Examples)

You find a crash—how do you solve it? Pol Piella shares its journey, and it’s very close to how I would tackle issues in my apps.
polpiella.dev

Flux pattern in Swift

For those looking to get inspired by architectural patterns: meet Flux—an approach to a unidirectional data flow.
swiftandpizza.wpcomstaging.com

Uncertain⟨T⟩

What if uncertainty were encoded directly into the type system?
nshipster.com

Creating amazing loading animations with SF Symbols.

Before you start writing custom animations—consider SF Symbols. Especially if you’re able to target iOS 17+.
danielsaidi.com

Deciding between ‘let’ and ‘var’ for Swift struct properties

You’d say it’s hard to write an article just on ‘let’ and ‘var’. It’s something we use so often, you would say there’s nothing new to learn. I loved the creativity behind the @Readonly property wrapper!
swiftbysundell.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.

It's holiday season, no updates this week!

WHAT I'M WORKING ON

Core Data and Swift Concurrency

I've been giving conference talks for many years now and during COVID times I had one special talk given at NSSpain: Best Practices in Core Data. It was a pre-recorded video, since in-person conferences were not allowed.

This week, I've had a flashback. Since I'm diving into Core Data & Swift Concurrency, I had to go back to my Core Data Best Practices GitHub repository. So many learnings from the past that resurfaced!

I always have been enjoying Core Data (Yes, I'm probably an odd one out here). While working on the Core Data module for my Swift Concurrency Course, I went on a classic journey of writing complex solutions.

Why classic?

Well, I found out after two hours of writing custom actor executors using a managed object context that it's actually not really needed to make Core Data work with Swift Concurrency. I believe it's a true skill to realize and accept that the code you wrote can basically be thrown away.

I did not, I wrote down all my learnings and shared all the code in the lesson since I believe it's actually a useful insight for my students. The actor executor works great, I just think it overcomplicates things. Keeping code readable without hidden implementation details (like a custom executor) would always be my preference.

FYI: The Core Data course module will be released this Thursday, together with several Swift 6.2-related concurrency lessons. You can get the course here.

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: Snapshot testing and CI A hidden Xcode 26 AI prompt 10 + 1 tips on using Claude Code Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST Threads vs. Tasks in Swift Concurrency Switching to Swift Concurrency if you've worked for years with GCD might make you struggle getting rid of the 'threading-mindset'. Tasks still result in work being done on different threads, but we don't directly manage them anymore. This article is an essential piece of learning...

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

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