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 695

17th January 2025

Written by Dave Verwer

Comment

I read this post from Cristian Díaz this week. It’s about The Green Spurt, a project that he and Roxana Nagy are working on, and it reminded me of my piece about shared experiences in visionOS apps that I wrote in 2023.

In my article, I talked about visionOS apps being limited until shared experiences are possible. At the moment, it’s rare to see two Vision Pro devices in the same room, but as the platform grows, the experience will be subpar until shared experiences are ordinary rather than remarkable.

When I wrote my article, I didn’t know that TabletopKit was in development. Apple introduced it at WWDC 2024, and it shipped with visionOS 2.0.

TabletopKit helps you create spatial multiplayer games around a table surface. It uses RealityKit, SharePlay, and integrates with SwiftUI to let you build shared experiences. There’s a good WWDC video where Julia Schell goes through the basics, which you should also watch. It doesn’t solve all the issues I wondered about in my article, like whether UI in a shared experience should be personal or shared, but it’s a start.

Cristian and Roxana aren’t building a tabletop game, but have found that they can still use the framework to help them make their escape room experience. You should read their post if you haven’t already for some more details.

As for Apple, I’m glad to see them begin to tackle shared experiences with visionOS. It may be a few years until these experiences are commonplace, but this platform was always going to have a slow start. Frameworks like this will make incredible things possible in the future.

Are you, or someone you know, working on a shared experience app for visionOS? It doesn’t matter if it uses TabletopKit or something home grown. Please reply if you know of any interesting projects I should look into. I’d also love to look at a beta of The Green Spurt if Cristian or Roxana are reading.

Dave Verwer


I’ll keep this short, but thanks for all the feedback on the new design. I’ve increased the font size and also fixed the issue that stopped some of you from seeing the correct font. There are more changes coming as a result of your feedback, but I didn’t get to them all yet. Hang in there!

Add Document Scanning and OCR with One Line of Code

Let users scan documents effortlessly and generate crisp PDFs with the Genius Scan SDK. Enjoy local processing for performance and privacy: real-time detection, perspective correction, image enhancement, OCR, and data extraction—no more blurry documents! Get started now.

News

Upcoming Changes to the Receipt Signing Intermediate Certificate

The first phase of a multi-phase process to upgrade the App Store intermediate certificate starts next week:

Starting January 24, 2025, if your app performs on-device receipt validation and doesn’t support the SHA-256 algorithm, your app will fail to validate the receipt. If your app prevents customers from accessing the app or premium content when receipt validation fails, your customers may lose access to their content.

If your app performs on-device receipt validation you need to pay attention to this.


Announcing: PyObjC 11

I must admit I hadn’t heard of PyObjC for a while until I saw this announcement from Ronald Oussoren. It’s likely not something you want to pick up today if you’re not already using it, but I’m genuinely happy to see it still being maintained and that it supports the latest macOS SDK.

Code

Compose multiplatform is real!

I was hooked from the first sentence of Sidharth Juyal’s latest post:

So yes after getting my hands dirty with Kotlin multiplatform the obvious next step would be to try Compose multiplatform. Which I did. And yes it’s a game changer.

The code from his experiment is available if you’re also curious about using Kotlin and Jetpack Compose to write an iOS app.


Exploring Tab View Styles in SwiftUI

The new SwiftUI TabView is extremely versatile in adapting its UI to the platform you’re developing for. It can be hard to know what you’re going to get ahead of time, so I liked this post from Matteo Altobello that takes us through what it can do on iOS and iPadOS.


Bringing App Intents to your SwiftUI App

App Intents have risen in importance over the last few years, being necessary for Siri and Shortcuts integration. They’re about to get more important, too, as they will be how Apple Intelligence decides what to do with your app based on user requests. If you’ve not embraced them yet, you could do a lot worse than this introductory article from Tiago Henriques.

Videos

Swift Argument Parser with Guilherme Rambo

Join Natan Rolnik and Gui Rambo as they discuss Swift Argument Parser. I love the argument parser, but PathKit, which they also showcase, was new to me.

Jobs

Staff iOS Engineer @ Outsmart College, Inc. – Team up with former Duolingo execs to tackle long-standing challenges in higher education! Outsmart is looking for a self-organized Staff iOS Engineer with a strong background in UIKit and SwiftUI development. TCA, ML/AI experience nice to have. Startup experience highly desired. – On-site (United States in CA or NY) with some remote work (within US timezones)

And finally...

Adding one more platform to the list of places you can run DOOM. 😱