Atelier Clockwork

WWDC24 Week 1

Kicking Off

Once again, I’m on a mission to watch 100% of the WWDC session videos. I have some tools to help with that that are almost done, so hopefully in the next week or two I’ll be ready to share a bit more about those. For now I managed to keep a solid momentum of 3 videos a day.

Keynote

I don’t have a lot to say here, most of the announcements were for things that won’t be developer facing. I am a bit amused that Apple is essentially implying that AI image generators are good for turning out custom clip art.

Platforms State of the Union

The platforms sate of the union is hard to talk about in a whole different way as it’s so dense with things to think about. The new code completion is promising, Swift 6 concurrency is both promising and looms large as pretty much every project out there has work to do to pass muster there. Swift Testing looks promising, and the new presentation animations in SwiftUI look nice. I’m sure I missed a bunch of things, but will talk about them in the right session videos.

Week 1

What’s new in Xcode 16

An overview of the new features in Xcode 16. The stand out features to me are the new macros to make working with tests and previews easier, and the new tools to help with performance issues. The flame graph in Instruments should be very useful for analyzing performance issues in apps.

SwiftUI Essentials

Nothing new here, but it was the best overview I’ve seen of the design goals that went into SwiftUI. It also was very interesting that this talk spent a fair amount of time explaining how to interoperate with UIKit and AppKit.

What’s New in SwiftUI

Lots of feature improvements here that will make a big improvement. The zoom transition will be very interesting to play with, the scrolling enhancements cover things that required a bunch of trickery to get right. Bridging animations between UIKit and SwiftUI and using UIKit gesture recognizers in SwiftUI has some interesting potential uses, and the TextRenderer looks very promising for adding some more exciting effects to text.

Meet Swift Testing

Swift Testing looks like it will be a really nice improvement un usability compared to XCTest. Being able to use a handful of macros instead of remembering all of the XCTExpect rules should be a very nice improvement.

Xcode Essentials

This is a great talk for anyone who wants to learn ways to make working in Xcode faster. It covered some of my favorites like quick open, reminded me that there’s a command Manu, and went over how to get the most value out of the logging and testing tools.

What’s new in SwiftData

Looks like there are some nice things added to Swift Data, in particular the ability to specify that a combinations of values need to be unique for a record. Custom storage backends have a ton of potential for teams that want to migrate to Swift Data from another system. #Expression also looks like it fixes a lot of my issues I had working with Predicates.

The biggest thing that I caught here isn’t directly Swift Data, the new PreviewModifier protocol will make working with previews ,such easier.

What’s new in Swift

This covers the new features in Swift 6. The most day to day usable things will be the data race safety (after the pain of fixing all of the potential; problems the new system will expose), and types Throws. There’s also a lot of things that are interesting for the long term, like the C++ interoperability, and improvements to the swift for Linux toolchain.

A Swift Tour: Explore Swift’s features and design

I think this video would be a great video to show to someone who’s an experienced developer who wants to learn about Swift, or someone very new to Swift. It did a great job covering core information about the language but there was no new information that hasn’t been covered before in other places.

What’s new in UIKit

Unsurprisingly the majority of the content here is either UIKit getting updates to make sure it stays in sync with SwiftUI like the new tab bar stye, SF Symbol animations, etc.

Extend your Xcode Cloud workflows

This session shows off some of the more advanced features in Xcode Cloud. In particular it showed how to integrate running tasks at the request of an outside service via the API, and then report the results via. a webhook.

Demystify explicitly built modules

This session explains explicitly build modules, and how to turn them on and fine tune project settings to save build time. I’ll be interested to try this out and hopefully see some build time improvements on my projects.

Create a custom data store with SwiftData

This covers how to create your own data store for SwiftData. It looks surprisingly easy to get the basics off the ground, and then there are many optional improvements that can be made. Lots of potential here for using this to allow for a phased adoption of Swift Data in an app by bridging to an existing store.

Model Shots

I spent the week wrapping up a kit I started earlier, it's a request so it's not on my usual theme, but it was a very fun project to work on. It's 90% done and looking good:

Painting, BasePainting, LayeredPainting, WashAssembledDiorama