Snapp Mobile iOS Newsletter

Issue 37 • April 24, 2025

Hi folks,

Easter gave us some time to reflect on the Swift community. In this issue, we’ll be looking at some of the changes that Apple has made to the Concurrency framework in Swift 6.2, an unconfirmed (at least officially) incoming change to the UIApplicationDelegate protocol in iOS 19, how to improve the stability of SwiftUI previews, and some tricks we can use to improve the ergonomics of working with Swift Data / Core Data models.

Find that and more in the selection below.

Enjoy!

Swift

@preconcurrency usage in Swift explained

When we enable strict concurrency checks for our existing projects, it’s likely that Xcode will present loads of warnings and/or errors when we compile our projects for the first time. In this post, Donny Wals takes a look at a specific kind of error that relates to code that you didn’t write.

UI/UX

Building Stable Preview Views: How SwiftUI Previews Work

Previews are one of the great features that Apple shipped with SwiftUI almost 6 years ago. They allow us to iterate on the UI without the need to run our apps over and over. However, as the project grows, more and more developers have found that the preview function is not as easy to use as they originally thought. Due to the increasing number of preview crashes and scenarios, some developers have already regarded preview as one of the shortcomings of SwiftUI and have developed a sense of rejection towards it. This article will analyze the implementation mechanism of the preview function, allowing developers to understand the situations where preview is inevitably unable to handle.

Swift 6.2: A first look at how it’s changing Concurrency

Antoine van der Lee wrote another great article on the incoming changes in Swift 6.2 around the Concurrency framework. We have witnessed many people posting about the challenges that they are facing while porting their apps to the new Concurrency model, so it’s good to see Apple making changes to accommodate some of the feedback in that direction.

UIApplication delegate deprecation coming in iOS 19 SDK

Note: this piece of news is unconfirmed, but we think it has some roots. The author stumbled upon a commit in Webkit’s codebase that hints at a deprecation around the UIApplicationDelegate - something that we may get a confirmation on at the incoming WWDC. Still, an interesting find, we think.

The Mac Menubar and SwiftUI

We post about SwiftUI on macOS on a semi-regular basis, as some of the ideas are shared with iPadOS. There’s one important UX element on macOS that is missing on the phones and the iPads - the standard Mac menu bar. And dealing with it is not always trivial - yes, the commands modifier lets us customize the menu bar, either by adding, replacing or removing items and menus. We can even add some presets which give a consistent way to add groups of common items, but the tricky bit is communicating back to the SwiftUI views from the menubar. This article walks us through a solution.

Data

Building Type‑Safe, High‑Performance SwiftData / Core Data Models

Ask anyone who has dealt with SwiftData or Core Data and they will tell you that their underlying storage mechanisms does not fit with the data types that we use in our applications. This article explores how, within the restrictions of persistence layers, we can leverage ingenious type wrappers and conversions to build data models that are simultaneously type-safe, semantically clear, and highly efficient.

Video

try! Swift Tokyo 2025 - Swift WTF: Weirdness, traps, and fixes

Even though we love our programming language of choice for its expressiveness and powerful features, sometimes we get an occasional reminder that implementing features can be tricky. This talk from Swift Tokyo 2025 will show us some places where Swift behaves against our expectations and walks us through the thinking behind it.

Special Effects with SwiftUI Text

Paul Hudson walks us through some advanced techniques for dealing with text in SwiftUI. Techniques vary from practical use of TextRenderer, animatable data and a pinch of Metal. It’s been an eye-opener for us.