WWDC23 Day Five
Quick Summary
Progress report: 31 of 177 videos watched and summarized, 17.51% of videos viewed.
I'm finished the last video in “Essentials” category, so starting tomorrow I get to start working on the “Swift” category.
Meet ActivityKit
This was a nice overview of what's in ActivityKit and how to use it. I didn't catch anything particularly new in this video, but I think it's the first comprehensive video on ActivityKit since it was a beta feature during last years WWDC and release cycle.
Unleash the UIKit trait system
This had the best description of how traits flow through the view hierarchy, and they change to make it easier to reason about makes lot of sense. I find it interesting how much they mentioned performance overhead for adding custom traits here. Finally it looks really nice that you can bridge traits with the SwiftUI environment to share custom configuration between frameworks.
Build programmatic UI with Xcode Previews
The new #Preview
Macro makes it a lot nicer to add previews compared to the previous syntax, and it's also exciting that previews now explicitly support UIKit and AppKit instead of having to hack around by wrapping in SwiftUI. Pinned previews and on-device previews both look really useful additions.
Bring widgets to life
Nice overview on how to work with animated and interactive widgets. Having the ability to put together preview timelines for widgets to check out state changes is great. Seeing the use of intents to drive interactions in widgets out of process makes a lot of sense, and it's interesting seeing how different parts of the system compliment each other.
Verify app dependencies with digital signatures
Nice improvements for ensuring dependencies haven't been tampered with automatically. It's impressive to see continued and improving support of 3rd party dependencies having started work back when it felt like Xcode was downright hostile to using them and you were pretty much forced to use complex systems like CocoaPods.
Simplify distribution in Xcode and Xcode Cloud
There's some nice improvements on the local release side, especially things like push notifications when a build finishes processing. Same for the improvements in Xcode Cloud, but since I mostly work with self hosted CI for deployment, I don't get to use any of the new stuff in this session.
Get started with privacy manifests
This was a surprisingly packed session. Privacy manifests themselves aren't big because they're just used to help you fill out the privacy nutrition label for you app, but there were some other big changes that are then backed by the date you get from those. In particular the OS will now block access to domains tied to tracking until the user has opted in to tracking, and there are going to be frameworks listed as “privacy impacting” that will have requirements of signatures, and declare tracking domains in the manifests. APIs that can be used for fingerprinting devices will also now required to choose from a list of valid reasons why they need to use those APIs.
Inspectors in SwiftUI: Discover the details
Inspectors look like a nice way to show more detail about elements in an app, This session also had a good reminder of some of the presentation customization options that were added in iOS 16.4 to let you specify things like which detents to dim the view that is being presented over.
What's new in AppKit
An a (primarily) iOS developer, I mostly watch these sessions to get an idea of convergence between the OSs. On that note, the fact that AppKit is going to do the same thing as UIKit and not clip views by default is interesting.
Prototype with Xcode Playgrounds
Having the ability to make sure that Xcode always builds the active scheme so that you can use playgrounds for active prototyping is nice, and looks like there's a lot of affordances to do things like test out UI. It looks like it will be worth adding a playgrounds scratchpad to most projects to be able to use this.
Meet Swift OpenAPI Generator
This is something I've been chasing since my first full time iOS job. I'm very interested in seeing how well this works in practice, and how much work it is to make a custom re-usable transport library. Probably the most exciting session of the day in terms of potential to save developer time.
Modeling Progress
I varnished the rack that had detail paint done yesterday, and cut out, sanded down, and primed the parts for the next step of the kit.
The varnished pieces then got some basic panel lining in place, and then I assembled the completed section of the kit. With the completed torso the upper body of the kit is done, along with most of the parts for the feet, which then will be assembled into the legs in the next two steps.