SwiftLee Weekly - Issue 271


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 Secure Enough?

As mobile CI/CD practices become more widespread, security vulnerabilities can be inadvertently introduced at every stage of the process. This blog explores the top 5 security risks and the best practices to mitigate them, backed by insights from 200+ enterprise audits. Read on to strengthen your CI/CD pipeline and stay ahead of emerging threats.

CURATED FROM THE COMMUNITY

Using Model Context Protocol in iOS apps

Using a Model Context Protocol (MCP) might sound new to you, but I expect many apps to do so over the upcoming months. This is an excellent introduction to the topic with helpful code examples.
artemnovichkov.com

Debug crashes in iOS using MetricKit

I love MetricKit and even used it inside Diagnostics to enrich data (see my article). This article describes another helpful way to use MetricKit data for crashes.
ohmyswift.com

What's new in Swift 6.2?

Many proposals have already been accepted into Swift 6.2, and while it’s not even released, this is an excellent write-up on what to expect. I covered the concurrency changes not long ago, and this article covers all other features as well!
hackingwithswift.com

Can You use PreferenceKeys for Testing SwiftUI Views

I curate articles every week, and I don’t often see people explore testing SwiftUI views. Here’s an interesting approach: using preference keys.
swiftyplace.com

Concurrency-Safe Testing in Swift 6.1 with @TaskLocal and Test Scoping

In general, I don’t expect many to use task local values for production code. However, for testing purposes, this is an excellent example that can work well!
mobiledevdiary.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.

SwIFTLEE COURSES

The Essential Swift Concurrency Course for a Seamless Swift 6 Migration

There's no code snippet of the week this time since I'm writing this issue from the caravan during my holiday. Instead, I'd like to give you a quick update on my latest course: The Essential Swift Concurrency Course for a Seamless Swift 6 Migration.

It's still in development, simply because Swift Concurrency is changing rapidly. Expect a lot of changes during WWDC and in Swift 6.2! Yet, it's an opportunity for you to purchase the course with an early-bird discount.

It currently already has:

  • 48 lessons
  • 8 modules
  • Multiple lessons already updated for Swift 6.2

And 3 more modules will follow over the upcoming months. It's a great opportunity for you to get yourself familiar with Swift Concurrency before WWDC.

QUOTE OF THE WEEK

RocketSim Team Insights finally gives us visibility into our build times beyond just gut feeling. We can actually measure the impact of adding SDKs or improving configurations, seeing results reflected in incremental and clean builds. It’s been invaluable for decisions like upgrading hardware—we can point to real data showing how different machines affect build times. The metrics are broken down beautifully, no extra setup or build phase hacks required—it just works quietly in the background. Honestly, it’s something we could never have justified building in-house, but it’s been a total game-changer.
Max Godfrey, iOS Developer at Empower Finance

That's right, we've got a quote of the week this time! Last November, I started a new venture to develop the teams product for RocketSim. Empower Finance has been one of the early adopters and shared the above quote last week.

If you're new to RocketSim for Teams, it allows you to:

  • Monitor your local Xcode build durations for your whole team
  • Find out which MacBook setup results in the fastest Xcode builds
  • Indicate trends in build performance

If I ask you:

  • How much slower did your Xcode builds become over the past month?

And you don't have an answer, it's time to get yourself started with RocketSim for Teams. It's essential to monitor your local build durations to safeguard your team's productivity.

Get your whole team a 14-day trial and discover how valuable our build insights are, just like Empower Finance did. Just fill in your email & team size, and you'll get a license with just as many seats.

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

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