Snapp Mobile iOS Newsletter

Issue 43 • June 6, 2025

Hi folks,

WWDC 2025 is just around the corner. By this time next week, we’ll know what Apple has been working on throughout the year. To start with the changes Swift.org went through a redesign and there is a blog post describing the approach and outlining more upcoming changes.

As we’re in a WWDC mood and heavily influenced by the redesign mentioned above, this edition of the newsletter is very much Swift-centered.

Enjoy!

Swift

Introducing the Benchmark Package: Complementing Unit Tests with Performance Checks

The Benchmarks package has been around for some time, but it’s a good reminder to read on the way it got introduced. It’s in these few sentences that you gain the most insight:

Swift aims for performance that rivals C-based languages, emphasizing predictable and consistent execution. Achieving this involves optimizing the use of constrained resources like CPU, memory, and network bandwidth, which significantly influence application workloads across server-side, desktop, and mobile environments.

@_exported import in Swift

This somewhat strange annotation is quite helpful, as it’s a powerful tool for making your code more modular and DRY. It’s quite useful in frameworks that wrap or depend heavily on other libraries, modules that combine several smaller modules into one; internal SDKs where you want to simplify your public API; or simply to avoid repeated imports across multiple files.

Swift at Apple: Migrating the Password Monitoring service from Java

Articles like this one are much needed for the Swift ecosystem, but this claim from Apple is worth noting:

Swift is heavily used in production for building cloud services at Apple, with incredible results. Last year, the Password Monitoring service was rewritten in Swift, handling multiple billions of requests per day from devices all over the world. In comparison with the previous Java service, the updated backend delivers a 40% increase in performance, along with improved scalability, security, and availability.

Swift Performance Tip: Efficiently Caching Colors in your Code

Jacob Bartlett with a tip on on caching the colors initialized from hex strings in Swift. It’s a real performance win!

Hacking

Emulating an iPhone in QEMU

Part One in a mini-series of articles on running iOS on QEMU. It’s more of a diary of the challenges involved in the process. In a way it’s also a peek into the lengths at which Apple went with securing their systems. The post ends just as it gets interesting — the authors managed to get the PreBoard process running.

Emulating an iPhone in QEMU (Part 2)

With PreBoard now running, the challenge to get SpringBoard in the same state is just the beginning. Although the series does not give technical details on what the patches actually are, it exposes the building blocks of iOS as they are being dealt with one by one.

Video

New in Swift 6.2

Swift 6.2 is the next iteration of the language, planned to go live with the next major Xcode update. This video goes through some of the language evolution proposals that made it to the distribution in a very helpful overview.

Repositories

Swift Playdate Examples

Playdate is a tiny handheld gaming console featuring a Cortex M7 processor and a 400 by 240 1-bit display. Its SDK allows for building games in both C and Lua and is equipped with a simulator. And although Lua is easier to develop in, it’s not as performant as C. Here’s where Embedded Swift comes into the picture - it solves the performance problem, while also providing memory safety guarantees. This repository contains some examples that showcase the capabilities of this approach.