WWDC 2020 Wishlist – watchOS

Like previous years, my wishlist is highly influenced by what I’m working on and is not a prediction — just stuff I have needed in the past year.

I Just released a new watchOS app, Sprint-o-Mat that helps me in outdoor running workouts. I had actually started it before WWDC 2019, but completely started over to do it as an independent watch app on SwiftUI.

Here’s what I’d like from watchOS

Allow the user to control location privacy in the watch’s settings app
You can already control HealthKit authorizations on the watch, but changing location authorization makes you use the iPhone. This is impossible to link to, and very hard to explain.

Make some SwiftUI equivalent to WKInterfaceTimer
This view is what makes showing a timer easy and performant. You can update it with elapsed time at a low frequency, but it updates its view in between so that it looks like a running timer.

Unfortunately, you can’t even host WKInterfaceTimer in a SwiftUI View (via interop) because it doesn’t have a default init (and can only be constructed via a Storyboard)

Allow workout apps to keep showing on the display when a workout is running
When you run the built-in Workouts app, the display stays on and shows the UI of the app. For 3rd party workout apps, when you lower your wrist, the display shows the time and a frozen UI under a blurred overlay.

This means that 3rd party workout apps require the pre-always-on wrist movements if you want to see their updated UI.

Add the APIs that the Workouts app uses to send data to the Activity app
The built-in Workouts app appears to have private APIs (or private metadata) that the Activity app uses to enhance the workout display (e.g. custom icons, per-segment data). I’d like to see those, and even new ones, publicly available to any workout app.

Make some canonical way to base font-sizes on display size
There isn’t a good way that I can see to make a single View for 38mm and 44mm watches that look good without hardcoding or hacks.

There are a lot of other issues that I ran into, but the general idea of an independent watch app coupled with SwiftUI and the simplified app architecture more than makes up for it. If Apple just keeps moving this forward in big steps, I’ll be pretty happy.