Atelier Clockwork

WWDC24 Week 4

I'm just a bit pas halfway through all of the videos, and still finding some really interesting stuff as I go through everything. I think the session I'd recommend to most people so far is now “Add personality to your app through UX writing”, as it does a good job of talking about how to get into the right mindset to write in a preferred tone for an app or other project.

Meet FinanceKit

This is a new framework that gives access to a user’s Apple Card, and Apple Pay Cash balances. It will be interesting to see if Apple eventually extends it so that other cards in Apple Pay can also be exposed to this API.

Meet AdAttributionKit

This session explains how AdAttributionKit works, and how it allows tracking of impressions, but with a focus on user privacy. That means that data is delivery with some randomization to time values, and also the granularity of data is affected by the size of the data set.

Bring your Live Activity to Apple Watch

This session covers code changes to be made to make a live activity work well for the watch, and also covers some of the new behaviors, especially how live activities are budgeted on the watch, and how to support the always on watch modes.

Customize feature discovery with TipKit

This session covers how to make more efficient use of TipKit by creating custom tip identifiers, creating tip groups, and syncing the tip state between devices so users only see the tip once.

What’s new in Wallet and Apple Pay

This session is a return to the WWDC of old where there’s a grab bag of sort of related content. It covers how to support 3rd party browsers with Apple Pay on the web, as well as updates to how passes are handled in wallet.

Build custom swimming workouts with WorkoutKit

This session covers updates to custom workouts, including both the ability to name workout phases, allow the user to select indoors or outdoors for a given workout, and build time / distance workouts.

Explore wellbeing APIs in HealthKit

This session explains the science between the wellbeing APIs in HealthKit, as well as how to long data that API, and how to interpret the data you read from the API.

Enhanced suggestions for your journaling app

This session covers visual update to the journaling suggestions, new data that will be available, how this data relates to the wellbeing APIs, and how to update an existing app to take advantage of these new features.

Meet the Translation API

This session explains how to the use translation API in many different circumstances. At a high level you can either have a popover view that translates the text, or you can have a translation session that will translate strings that you pass into it. It also covers how to configure the language settings if you want to manually specify languages to translate.

Introducing enterprise APIs for visionOS

This session covers the new enterprise only APIs available for visionOS. These include being able to capture the pass through environment in screen sharing, recognize bar codes from the camera feed, access the neural engine for running ML models, and run the device at higher speeds at the cost of battery life and having the fan run faster. The first two are privacy implications, but the second two are just changing device settings to shift trade-offs from what Apple has defined as “best”.

What’s new in App Intents

This session covers some of the new functionality in App intents, and how to tie into those features in the system. In particular it covers a lot of details on how the Transferable API can be used to pass data both from spotlight to your app, and also from your app into other apps.

Broadcast updates to your Live Activities

This session cover how to use channels to be able to send a push notification to all interested users at once via APNS instead of needing to schedule a push notification for every interested user.

Bring your app to Siri

This session explains the data schemas required to expose intents to Siri, and how your app data can be shared with Siri both in search and in executing intents.

Bring your app’s core features to users with App Intents

Keeping on the intents theme, this session shows how to expose app functionality as an Intent, including both creating controls, and app shortcuts that can be involved via Siri and render the UI in a modal view instead of needing to launch your app, or even answering in audio if the user is asking a device that doesn’t have a screen.

Streamline sign-in with passkey upgrades and credential managers

This session is the next step in the push towards passkeys, and shows how to opt your app or website into automatic passkey creation, so that when a user logs in successfully with other credentials the system can check if a passkey should be created, and if it is it will store it in your preferred credential manager.

Meet AccessorySetupKit

AccessorySetupKit is a new framework that both makes it so an app doesn’t need to ask for permission to access bluetooth devices or wifi to set up accessories, and offers an experience similar to Airpots setup. It’s another bit of UI that runs out of process with your app to handle the permissions sandboxing, and looks like it will make the pairing process for many accessories much smoother.

Add personality to your app through UX writing

This session walks through the process of deciding of a voice and tone for your app, and then thinking about how to write to match that tone. The idea of having key personality traits to write from, and thinking of which ones are the most appropriate to emphasize in a given situation is a very interesting way of looking at UX writing.

Design advanced games for Apple platforms

This session contains lots of details on how to get the UX right when porting a game to Apple platforms, including both minimum sizes for text and controls across platforms, and guidelines on how to implement touch controls for a game.

Capture HDR content with ScreenCaptureKit

ScreenCaptureKit now supports HDR video, microphone capture, and recording directly to files. It’s nice seeing cleanly supported ways of doing all of these things as these things used to be fairly complex to implement and often required very low level work.

Discover media performance metrics in AVFoundation

AVPlayer now supports generating detailed matrices for HLS playback, and this session shows how to subscribe to those metrics and gather data on performance of your HLS streams on user devices.

Use CloudKit Console to monitor and optimize database activity

This session explains how to use the CloudKit console to set up notifications for activity, so that you can be alerted when issues arise. It also covers how to use the telemetry pages to debug app issues.

Modeling Progress

I wrapped up the tiny kit this week, and am very happy with how it came out especially as I picked the color scheme myself instead of following the original design for the kit. I also primed a set of Gloomhaven minis for a co-worker who's interested in getting into painting.

Tiny kit, FrontTiny kit, sideGloomhaven, primedGloomhaven, primed