Subscribe for weekly commentary and coverage of Swift and Apple platform development. Written by Dave Verwer and published every Friday. Free.

Picture of Dave Verwer

Issue 700

21st February 2025

Written by Dave Verwer

Comment

How did we reach Issue 700 of this newsletter? 😱 For almost 14 years, writing a few words, gathering news, and promoting community blog posts has been part of my life. It makes me very happy that you still want to read it. Thank you, whether you’ve been here since the first issue or joined more recently.

Yet I feel a little weary as I sit down to write this opening comment. Part of it is caused by doing this for almost 14 years, and I can certainly see an end to this newsletter in a way that would have been difficult to imagine a few years ago. But the other part is specific to this week, because this week’s big news in the community is around a controversy I dislike talking publicly about.

Driven by Apple’s return to advertising on Twitter/X, Matt Massicotte wrote a blog post, “Leverage”, where he tries to find something to use as leverage to protest against their use of the platform:

Apple relies heavily on feedback from third-party developers to find bugs in new APIs and OSes. Because of their development cycle, this is especially critical during a beta period.

So I’m just no longer going to use Feedback Assistant. I will not use beta OSes. I will not share crash reports for Apple software. Because of Swift’s continued use of X, I will no longer participate in the Swift forums or evolution process. I will also actively discourage others from doing these things.

He received plenty of support in reply to his announcement, and there are more blog posts around the community supporting and discussing it. Unfortunately, petitions and protests are rarely good catalysts for direct change within large publicly traded corporations.

But then I read Christian Tietze’s post:

So why bother?

Because bothering is all we have.

Because acting in accordance with one’s values on all personal fronts is the only way to actually manifest any pressure and change. This includes protests and boycotts and writing open letters. It also includes going to demonstrations, writing to elected officials, all of that. The task for you and me is not to “change policies”, because we can’t, but to make ourselves heard so that those who can, will.

My instinct with controversies like this is always to stay quiet and not express a strong opinion. It’s cowardly, I know. But I admire everyone who is making this stand for trying to do something.

Dave Verwer

Make sense of iOS user activity with OpenTelemetry

OpenTelemetry helps you standardize the telemetry that’s collected and transmitted across different app boundaries, without needing to customize the format of the information being transmitted each time. Learn how to use the OTel-Swift SDK to trace app activity from disparate parts of an iOS codebase. Check out the guide from Embrace.

News

Martin Pilkington

I was devastated to hear that Martin Pilkington passed away last week. He was more than just a member of this community to me; I was lucky enough to call him a friend, and I’ll miss him terribly. Whether it was discussing the latest Swift language updates, chatting on a call, or playing D&D or another game with friends, he was always generous, warm-hearted, and had nothing but kind words. He will be missed by many, but very much by me. ❤️


Dark mode for iOS Dev Weekly

There’s also some “newsletter news” this week, especially if you like dark mode. As you will have noticed if you’re reading on the web, the iOS Dev Weekly website now supports a dark theme. If you’re reading in an email client, I also tweaked the email template to look better in email clients that force a dark mode. Unfortunately, making a true dark mode email is looking like it’s beyond my abilities, but hopefully the web version should give you what you need.

Next up is bringing back the full text RSS feed. I know people miss it, and it’s next on my list!

Tools

Pallet

Pedro Almeida with a new and free utility app for manipulating Package.swift files, and it’s a great reminder that Xcode has no built-in GUI for this at all. There’s adequate warning before saving, but be aware that it completely overwrites your Package.swift with its own version when you save.

Code

Improving the approachability of Swift data-race safety

I don’t usually write about features that are not in shipping or beta versions of Swift, but I want to mention Holly Borla’s recent post where she details three upcoming/proposed improvements to Swift 6 language mode. If you stuck with Swift 5 language mode so far, this should be a nice confirmation that you made a good choice. Waiting for these improvements, and potentially more like them, will pay dividends.


SharingGRDB: A SwiftData Alternative

This is interesting. Brandon Williams and Stephen Celis with a new library, which is an integration of their Sharing library and Gwendal Roué’s GRDB.swift SQLite library. It works great with SwiftUI and they propose it as a potential replacement for SwiftData with access to SQLite features and SQL queries directly.

It’s worth noting that Gwendal also created GRDBQuery, which also provides an interface from SwiftUI to GRDB.


The Mac Menubar and SwiftUI

I’m a big fan of NotificationCentre so I was happy to see Sarah Reichelt use it to hook up menu items in a Mac app. There are great tips for using notifications better in general in the post, so it’s worth a read even if you’re not hooking up menu items.

Books

SwiftUI Fundamentals: a deeper look into the framework

When writing about the internals of SwiftUI, it helps to be able to say “Having contributed to SwiftUI’s development as part of the team at Apple”, and that’s exactly what Natalia Panferova can say. She’s written a new book that is both a guide on how to build apps with SwiftUI, but that also includes a look under the hood.

For full disclosure, Natalia sent me a review copy of this book.

Jobs

iOS framework developer @ Nutrient (formerly PSPDFKit) – Design APIs that will affect hundreds of apps, and create UIs used by millions of users. Collaborate globally in a small team working on the leading document SDK for iOS, macOS and visionOS. Make the most of a flexible schedule, and attend annual retreats at exciting places around the world. – Remote (Anywhere)

iOS Engineer @ Bevel – We’re building at the forefront of consumer health. We are a small team that deeply cares about our craft. You’ll get a chance to work on something that improves the health of tens of thousands of people! – On-site (United States in NY)

Senior iOS Engineer @ Distilled – We are seeking to recruit a Senior iOS Engineer to work on some of Ireland’s most popular mobile applications, Daft.ie. DoneDeal.ie & Adverts.ie – Remote (within European timezones) or on-site (Ireland)

And finally...

I heard you needed some help with the Apple Education Store.