WWDC23 Week 3
Week 3 Progress
Progress report: 97 of 177 videos watched and summarized, or 54.80%. Another slight slowdown since last week, but not a huge one since I averaged 3.85 videos per day this week compared to last week. And I still have a couple sessions that had really interesting tidbits that I hadn't heard anywhere else this week, in particular there's a lot of potential in the support for app level network relays.
Debug with structured logging
This session explains some improvements to the debug console in Xcode, in particular p
now uses a “do what I mean print” command under the hood, to make it easier to print data when debugging. It also shows off some of the new console tools that you get access to when using os_log
instead of print
based logging.
Perform accessibility audits for your app
This is and overview of the newly added features in to be able to use accessibility audits while running UI tests to expose features there, and some basic troubleshooting issues to fix some common issues.
Bring your game to Mac, Part 2: Compile your shaders
This session goes into depth in how to convert DirectX shaders to Metal, and also how to make use of features like precompiled shaders. One item of note is that Apple is porting some of these tools to Windows to make it easier to integrate into the game development process
Bring your game to Mac, Part 3: Render with Metal
Optimize GPU renderers with Metal
These sessions went deep in depth on how to optimize a metal rendering pipeline. Which is far enough outside of the realm of what I do that I don’t think there’s anything particularly interesting that I can say about it.
Fix failures faster with Xcode test reports
This shows off some of the new features in Xcode test reports. Being able to scrub through a video of a UI test to pinpoint a failure seems really useful, as does Xcode being able to show trends in your tests to help catch slow tests and patterns of failures.
What’s new in App Store Connect
This session goes over some of the changes that have happened in App Store Connect in the last year. One thing of note is that you can now create user scoped API tokens, which may make using App Store Connect API tooling a bit easier.
Rediscover Safari developer features
What’s new in Web Inspector
Most of these sessions apply to web developers, but the new in-app web view debugging may be useful when web content in an app isn’t behaving properly. The standards based automation tooling also may be useful in the future.
Optimize app power and performance for spatial computing
Meet RealityKit Trace
These sessions covered performance concerns in RealityKit and how to address them. One mine technique of note is that it was called out at drop shadows are expensive over the translucent backgrounds used by default in visionOS, so a useful thing to keep in mind.
Create practical workflows in Xcode Cloud
This session was a quick run through of setting up a handful of Xcode cloud workflows. It’s nice to see some of the tooling that’s been put in place to make it easier to migrate into Xcode cloud from other CI environments.
Analyze hangs with Instruments
This session shows how to diagnose and handle hangs in Instruments, and walks through several common scenarios. It also does an excellent job of showing how to combine multiple instruments, and pull out extra details to make it easier to fully solve the problem.
Principles of Spatial Design
Design for spatial input
Design for spatial user interfaces
Design spatial SharePlay experiences
These sessions help teach the foundations of designing for visionOS. One of the more interesting topics covered is how to structure content so that the eye is drawn to the center of the element, and also how the system will use adaptive scaling so that UI elements remain the same relative size and the window will scroll up if it’s placed further away from the user.
What’s new in Core Data
I can’t help but wonder how many of the new things added to Core Data were added to support Swift Data. The most interesting new feature in this session is composite attributes, which are a way of structuring your data without having to add relationships or deal with transformable objects.
Ready, set, relay: Protect app traffic with network relays
This session shows off a few things with interesting potential. Apps can now specify relays and route traffic through them. Devices will also be able to specify that all traffic to specific domains need to route through a relay, so there’s potential to replace a proxy server with a relay.
Create seamless experiences with Virtualization
This shows off some of the new Virtualization features, of particular interest, support is coming for saving the active state of a VM to reload later, and a display type that will change the resolution to match the window size.
Sync to iCloud with CKSyncEngine
This shows off using CKSyncEngine to drive sync with CloudKit. This handles most of the integration required to sync via CloudKit and lets your app focus on handling conflicts without needing to worry about things like network errors, iCloud account changes, and the like.
Explore immersive sound design
This session explains how to work with immersive sound design, and how Apple build the sound of environments that will ship with visionOS. One key detail is using random variation to break up the repetitiveness of sound using randomness and variation.
Optimize CarPlay for vehicle systems
This covers new features added to CarPlay. These include AirPlay2 style audio buffering, and also support for automatically pairing a phone when it’s used as a car key.
Reduce network delays with L4S
This session goes into a lot of detail about how Low Latency Low Loss Scalable Throughput works. From the app level, the implementation details are handled by URLSession, but at the transport and server level, it involves reacting to congested network conditions and changing the strategy for sending out packets.
Meet Push Notifications Console
Testing push notifications has slowly improved, first you had to figure it out yourself and only could test on device, then you could send payloads to the simulator via drag and drop. Now there’s a web console that lets you test all sorts of APNS scenarios and track notification delivery status.
Discover Calendar and EventKit
This session shows off some of the new EventKit tooling coming to the latest OSs. Of note, you can now write to the calendar via an out of process UI with no user permissions.s if they’ll be used often.
Spotlight your app with App Shortcuts
Design Shortcuts for Spotlight
A pair of sessions describing the design and development considerations for Shortcuts. It's nice to see that device side ML is going to be used to help Siri match voice prompts to Shortcuts, even if there isn't a perfect match, and that there's now a good way of testing Shortcuts without having to install and test on device.
Modeling Progress
I completed assembly of the kit I've been working on, I'm still contemplating if I want to do any sort of weathering or base for it.
This is the torso of the next kit that I'm working on, eight pages into the instruction book. It's particularly interesting as there's articulation all along the spine, so the finished kit should be quite flexible.
And this is where I finished the week, with the torso, head, and one leg completed. This is somewhere around half of the steps in the kit, so I'll probably be close to finishing it up by this time next week.