SwiftLee Weekly - Issue 289


This week's SwiftLee Weekly covers:

  • App Store Optimization - Screenshots
  • Observation in Swift deep dive
  • Memory Integrity Enforcement

Enjoy this week's SwiftLee Weekly!

THIS WEEK'S BLOG POST

Introducing Diagnostics: Improved Debugging and User Support

If you've been reporting issues to me for RocketSim, you might have noticed the HTML attachment to your emails. Today, I'm telling you all about these reports and how they can streamline your app's support channel. This could be a way to reduce the number of times support reaches out to you as a developer ;-)

SPONSORED

Paywalls Made Easy

Build and test paywalls with ease using RevenueCat's new native, remotely configurable paywall templates. Learn more here.

CURATED FROM THE COMMUNITY

How to disable Liquid Glass

Let me start by saying that I think you should properly support Liquid Glass in your apps. However, if the timing is not right, you can opt out and buy yourself some time.
swiftwithvincent.com

Memory Integrity Enforcement: A complete vision for memory safety in Apple devices

In a week with new Apple Devices, it’s easy to overlook news like this. It’s impressive how far security on Apple silicon hardware can go!
security.apple.com

We Need to Talk About Observation

Observation remains a hot topic. What if Combine actually gets deprecated at some point? It’s clear to me that ObservableObject isn’t the future, but are the latest observation APIs good enough to replace it?
jaredsinclair.com

Debug crashes in iOS using MetricKit

MetricKit has existed for years now, and I even added it into Diagnostics (this week’s SwiftLee article). Yet, there aren’t many resources that go into more detail, so I recommend reading this article!
ohmyswift.com

Understanding Live Activities: visual micro-storytelling

With Live Activities now available on macOS Tahoe, it’s a great time to explore best practices for designing and building them into your apps.
createwithswift.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.

WHAT I'M WORKING ON

App Store Optimization - Screenshots

After a busy post-holiday week, full of meetings (yes, even as an indie you have meetings, ha!), I'm finally back into work-mode. It was a fun week (even spoke with the Dutch radio on the new devices Apple announced), but structure is the key to success.

With OS launch day this week, I focused heavily on improving RocketSim's App Store presence. As a Mac-only app, a few different aspects apply, but these are general tips for other stores as well.

On Mac, your first screenshot is seen the most. It shows up in the search results, so it truly has to stand out. The second and third screenshots will show up when one visits the product detail page. Equally important!

This is how I started:

Not bad, you could say. Screenshots were already updated for macOS Tahoe, since I wanted to ensure my app went live before launch day. However:

  • Nothing really stands out
  • Copy is hard to read
  • Images don't feel part of a consistent design

There wasn't a story behind it either. Well, there was—I was short on time.

It was time to go back to the drawing board, so I came up with a story for the screenshots:

  • Screenshot 1: Build trust & authority
  • Screenshot 2: Core Benefit (Aha moment)
  • Screenshot 3: Breadth & add more trust

Altogether, this resulted in the following first three screenshots:

Much more consistency, clear copy, and a compelling story that should explain more iOS developers how much impact my developer tool can have.

I've also updated the remaining 7 screenshots, which I invite you to check out in the Mac App Store as the build is already live.

This section starts to become an article and you're right: this is worth an article. I'm actually measuring performance in an interesting manner, which I'll explain next week. Stay tuned!

EARN ROCKETSIM LIFETIME

Share and Earn RocketSim Lifetime & free Swift Concurrency Course access

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:

Several subscribers have already helped me reach more developers and gained free access to RocketSim Pro and my Swift Concurrency Course — will you be next?

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: Xcode Build Performance Analysis Swift for Android WWDC APIs timeline But also: an early exclusive Black Friday discount for you as a SwiftLee Weekly subscriber. Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST Build performance analysis for speeding up Xcode builds Build performance—is it still a thing to look at nowadays? Yes, Xcode build times improve every year at WWDC, but my experience is that builds still become slower over time. Especially...

This week's SwiftLee Weekly covers: Glass Views & Animations Singletons & Swift Concurrency Structured experiments Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST SwiftUI Architecture: Structure Views for Reusability and Clarity I often find myself restructuring views after time happened and ContentView became too large. The techniques I've learned over the years are explained in this week's blog post. For those that are more visually oriented, I've also published a video for this...

This week's SwiftLee Weekly covers: My AI Agents journey The importance of Swift Migration Tooling Custom ViewModifiers are useless Enjoy this week's SwiftLee Weekly! THIS WEEK'S BLOG POST Why Swift Migration Tooling Matters Manually migrating to Swift's upcoming features is a bad idea. In fact, it can suddenly result in your code running more on the main thread, blocking the UI, and decreasing user experience. I'm using this typical example in a detailed post on how you can benefit from...