SwiftLee Weekly - Issue 325


This week's SwiftLee Weekly covers:

  • Xcode Instruments & Swift Concurrency
  • Accessibility at WWDC'26
  • The MCPs I use for polishing app releases

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

Using Xcode Instruments to optimize Swift Concurrency Code

When I started building apps in 2009, Xcode Instruments was part of my job, and I used it every day. Devices were slower, and apps needed instruments to be usable at all. We’re spoiled with today’s devices, but with AI writing more and more of our code, I believe it’s essential to know how to use Xcode Instruments.
avanderlee.com

video preview

SPONSORED

Is Your iOS App Secure?

Defend against static analysis and counter dynamic analysis with the polymorphic, compiler-based mobile app security from Guardsquare. Learn more.

CURATED FROM THE COMMUNITY

Make It Visible: Accessibility Meetup @ CommunityKit

If you care about accessibility and you’re around San Jose during WWDC, you’ll enjoy this event hosted by Kirkland during CommunityKit. Registration is now open, seats might be limited!
luma.com

A Recipe to Custom Instructions for GitHub Copilot

I wish I learned this earlier: custom CoPilot instructions have been a great impact on my open-source repositories. Tiago Henriques explains how it works.
ioscoffeebreak.com

Making a SwiftUI sheet automatically size to fit its content

I often find myself using default sheet sizes, whereas a custom size looks much more solid with less whitespace. I’m bookmarking this technique by Daniel Saidi!
danielsaidi.com

Create and Style App Shortcuts in iOS Using AppShortcutsProvider

App Shortcuts, App Intents, I expect these to become much more powerful after #WWDC26. Shankar Madeshvaran explains how you can create and style them today.
shankarmadeshvaran.medium.com

Modern SwiftUI APIs for programmatic scrolling

How about refreshing your knowledge of the SwiftUI scrolling API just before #WWDC26? Natalia Panferova’s article contains solid screenshots and code examples for an easy-to-digest explanation.
nilcoalescing.com

Xcode should be decoupled from Swift versions

If there’s one wish I have for #WWDC26, it’s faster releases for Xcode. Decoupling it from Swift versions would be required for this, and Max Seelemann recommends it as a step forward for Apple.
macguru.dev

Deprecating your own convenience API

With new iOS 27 APIs around the corner, you’ll benefit soon from this deprecation technique from Majid Jabrayilov. Instead of rewriting all your code right away, you can mark it as deprecated and allow progressive migration.
swiftwithmajid.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.

There have not been any state changes in the past 7 days. I guess they're preparing for WWDC!

WHAT I'M WORKING ON

Polishing a major release

Whenever I release major updates to my apps, I always give myself the time to polish and improve. I like Learn by Shipping, which allows me to move fast. However, it also brings in risks like instability and improvement potential.

Many platforms that I use for observation allow me to connect to agents. I can use Amplitude's MCP for analytics reviewing, Sentry MCP for stability insights, and Astro's MCP for ASO improvements reviews.

Besides fixing incoming bugs and support email reports, I'd like to ask my agents:

"Use the Amplitude MCP and validate whether our onboarding improvements had a positive impact in 16.0.0 compared to 15.x builds"

This is just an example prompt, but it gives me massive insights. A follow up prompt would be:

"Based on these insights, give me low-hanging fruit, high-impact changes we can do to further improve"

And that's how I'm constantly evolving.

Being able to connect observation platforms to my project's code & release history is a massive step forward that I had to do manually a few months ago. It's basically plan, build, review, compound: a continous loop. Improving 1% every single day will make you so much better in a year from now!

UNTIL NEXT TIME

Continue your Swift development journey

I hope you've enjoyed this week's content. You don't have to wait till next Tuesday for more insights, I share every day on these channels:

Or earn lifetime access to RocketSim & my Swift Concurrency Course by becoming an affiliate of my newsletter.

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

Antoine

SwiftLee Weekly by Antoine van der Lee

Swift Evolution updates, 5 top community articles covering Swift development topics.

Read more from SwiftLee Weekly by Antoine van der Lee

This week's SwiftLee Weekly covers: IFTTT MCP and Reddit for App Promotion safeAreaBar in SwiftUI XcodeMCP and Claude Code Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST Recording a Physical iPhone for App Preview Videos App Preview Videos can have an impact on App Store conversion, but also help in app marketing. Unfortunately, it's not always easy to create these from a physical device, which is something you want if your apps only run on a real iPhone. This week's article shares...

This week's SwiftLee Weekly covers: AI-Powered Xcode Simulator Automation Dynamic Quick Actions on iOS A new Accessibility Competition with prices Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST AI-Powered Xcode Simulator Automation (token-efficient) After weeks of testing, I’m happy to finally officially release RocketSim’s CLI + Agent Skill. This week’s article describes the background story behind how it works and why it’s a better alternative to many open-source...

This week's SwiftLee Weekly covers: Indirect enum cases in Swift Unexpected Task suspension points slowing down your apps 63% fewer tokens used to navigate the Simulator using Agents Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST Unexpected Task suspension points in Swift Concurrency I'm using Swift Concurrency heavily in my apps, but I'm still learning every day. This time, I ran into an unexpected suspension point that seemed innocent, until I executed the related task many times...