SwiftLee Weekly - Issue 272


This week's SwiftLee Weekly covers:

  • Default Isolation in Swift 6.2
  • The .ignoredByLayout() modifier in SwiftUI
  • Optimizing Mathematical Computations in Swift

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

Institutional Purchases: Understanding and Detecting

Recently, I discovered a spike in total downloads of 25K installs. Yet, I did not see an unusual spike in trials or purchases. I decided to dive in and found out it was caused by something called Institutional Purchases.

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 Codemagci to build and publish iOS and Android apps, also versioning and device provisioning. View on GitHub.

WWDC

RocketSim Meetup at CommunityKit

WWDC is happening soon! CommunityKit is a fantastic initiative by a group of friends from the Swift Community. They've opened up the doors for several events to take place in their venue near Apple Park for several events, and I'm happy to announce that I'll be hosting a RocketSim Meetup!

Are you around during WWDC and interested in RocketSim?
Register for the event

CURATED FROM THE COMMUNITY

Default isolation with Swift 6.2

Swift Concurrency is changing, and a significant change in Swift 6.2 will be the option to configure the default isolation.
massicotte.org

Demystifying SwiftUI’s .ignoredByLayout() — How to Apply Geometry Effects Without Breaking Your Layout

I wasn't aware of this modifier, but after reading this article and watching the videos, I'm pretty sure there will soon be a day that I'm happy to have read this article!
fatbobman.com

Optimized mathematical computations in Swift

Using sum(…) works fine in most cases, but what if you have thousands of values to sum? Luckily, there’s a great alternative that doesn’t need a lot of code rewrites.
swiftwithmajid.com

SwiftUI Picker With Optional Selection

I’ve been struggling to make this work quite a few times for RocketSim and had no clue there was an official way to provide an optional selection inside a SwiftUI picker. This is a must-read!
useyourloaf.com

Testing Remote Push Notifications with iOS Simulators

There are several ways to test push notifications, all with their benefits. This article demonstrates three different ways of testing inside Xcode’s Simulator.
tiagohenriques.dev

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

Constant Binding in SwiftUI

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

twitter profile avatar
Antoine v.d. SwiftLee 
Twitter Logo
@twannl
5:54 PM • May 19, 2025
3
Retweets
26
Likes

QUESTION OF THE WEEK

Is there a Combine alternative using Swift Concurrency?

Combine has not received many updates over the past years and it seems that Apple is slowly moving away from it too with the introduction of @Observable. Yet, there has not been an obvious replacement to observe values as we know from Combine.

There are ways to use AsyncStream to create a similar pipeline, but it comes with limitations like having only a single subscriber.

Apple's open-sourced Async Algorithms framework comes with methods you'll recognize from Combine pipelines, but it's the AsyncExtensions package that will give you classes like AsyncPassthroughSubject which will be closer to what you use in Combine.

I also want to highlight Swift Evolution Proposal SE-475: Transactional Observation of Values which is currently in Active Review. It's not a Combine replacement, but it will be a useful tool in case it gets implemented into a future version of Swift.

Finally, I've not found myself using Combine pipelines a lot lately. Debouncing and throtthling can be done via Swift Concurrency (learn about it here) and observing values is something I do using SwiftUI bindings. Whether these use Combine under the hood or not: I'll let Apple decide and make my code future proof.

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

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: Build apps without Xcode or xcodebuild Camera support for Xcode's Simulator An App Store Connect feature you need to enable Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST Billing Grace Period Explained: How It Works and Why It Matters During a workshop with Apple last week, I discovered several optimizations for my apps. One of them is a feature that's disabled by default, but that can reduce churn and retain more revenue: Billing Grace Period....

This week's SwiftLee Weekly covers: Testing SwiftUI views What's new in Swift 6.2? Using Model Context Protocol on iOS Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST Universal Links implementation on iOS Do you know the difference between deeplinks and universal links? I can at least tell you that Universal Links offers a much better user experience. This week's article explains both differences and how you can implement them for your apps. SPONSORED Is Your Mobile CI/CD Pipeline...

This week's SwiftLee Weekly covers: 3 Indie Marketing Tips Using Task Local values for dependencies Will WWDC have a big impact? Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST Testing push notifications on the iOS simulator Many apps support push notifications, but Xcode doesn't provide an easy way to test them in the Simulator. Your options are limited, and many developers reach out to their physical device combined with some kind of testing server. Luckily, there's a native Mac...