The Blog

Thinking of WWDC


« DistributedAppleIntelligence

Next »

Each year I find the two months before WWDC to be challenging.

I don't want to sit around and do nothing, but the upcoming announcements will certainly direct my attention in new directions.

Maybe the APIs I'm teaching in my workshops or using in the code for my apps will be replaced by something new - something I've been waiting for or something I haven't even anticipated.

So I'm cleaning up loose ends in my music app and in a couple of workshops I've been meaning to update. And I've been thinking about WWDC.

Let's start with a meta comment about the conference itself.

(1) The disappearing "D" in WWDC

There is a ton of really great content for developers released each year at WWDC. I love the videos released on days two through five and watch many of them right away and many of them repeatedly throughout the year.

That said, the event itself is less and less for us.

I was a member of the press at the first WWDC I ever attended. The conference didn't even sell out in those days. We watched the morning keynote and then we were ushered out.

Press was not allowed inside the conference after that morning keynote. Everything else was for developers and everything else was under NDA. Fortunately, I also was sharing a conference badge with someone else and so I got to see many of the sessions using that second badge.

I don't remember if it was then or later that people with regular badges would leave the morning keynote and get a CD or DVD with the new operating system and developer tools. The person handing it to you would then punch a hole in your badge. I do remember one year there was a problem with the distribution and they handed out a second set of disks and punched your badge a second time.

My point is that the various States of the Union (there was a platform state of the union and a dev tools state of the union) was where the developer content began.

Last year the cafe at the Apple Park Visitor Center wasn't available to developers because it was roped off for press only - not just on Monday but later in the week as well. It felt backwards to me. Here the press were being given special treatment and the developers were kept away - at a developer conference.

It's true that WWDC is less of an in-person event than it ever was, but thousands of developers gather to meet with Apple Engineers and each other that week whether we have tickets or not. Apple should celebrate them and encourage these interactions. Apple Developers remain Apple's biggest fans. Without data, I would bet that most of the Vision Pros were bought by people who consider themselves to be part of the Apple Developer community in one way or another.

(2) The UI

There have been a lot of rumors that the UI for the iPhone, iPad, and Mac will change to be more influenced by the UI for the Vision Pro.

As a developer, I just don't care.

I'm not opposed to these changes but in a way, they have nothing to do with me.

I liked the original UI for the iPhone. I like the current UI. I expect I will like whatever the new UI is.

But that's the part of me that is a user of these platforms. The part of me that creates apps and training materials for Apple platforms doesn't really care if the icons are rounder.

The problem is that even if I don't care, I and many other developers are going to have to spend a lot of time updating our apps to look good with this new look and feel.

Instead of spending time adopting new features and taking advantage of technology that really distinguishes our app, we're going to have to spend a lot of time making our app looks good in this new UI.

Instead of fixing bugs, we're tweaking spacing and adjusting colors.

I not only worry about the time these changes will take, I also worry that this sort of content will get an undue amount of time at the developer conference.

(3) Technologies I'm Watching

Last year we were told that the time has come to pay attention to App Intents.

App Intents are used to connect your app to the system. It's been around for a while and helps expose your app to Shortcuts, Spotlight, and Siri. Last year we were told that App Intents are the best way for your app to take advantage of Apple Intelligence.

I've been playing with App Intents and have been giving a workshop on them. I've had the usual problem with WWDC videos - not all of the code is shown in snippets and many of the sessions don't have a sample project.

WWDC aside: If something is demonstrated in a WWDC video, we should be given enough code that we can replicate what has been demonstrated.

That said, App Intents seem pretty straightforward and I'm looking forward to seeing what is announced this year. I'm hoping also for more complete documentation and sample code.

On the other hand, I sell a lot of books and workshops because of what isn't included in conference sessions.

I'm also watching SwiftData. After a promising rollout the year before, almost no improvements were announced last year. We didn't get an improvement in fetching or predicates. I'm hopeful given the new Observation evolution proposal - although it may be too late in the cycle to see it being used in SwiftData.

I'd also like to see a behind the scenes in SwiftData session that helps us understand the modern approach to how we used to write to the data store on a background thread and read on the main thread. (I clearly don't understand Model Actor)

Finally, I look forward to this years batch of improvements to SwiftUI. Based on a Feedback that was closed, I expect to finally see a SwiftUI WebView. My favorite SwiftUI session at WWDC is the Data Flow session.

I'm also interested in SwiftTesting. There seems to be a bunch of improvements lately and some changes based on Evolution proposals as well. I'll definitely update my book on testing after the conference.

I recently wrote about distributed computing and I hope for more on distributed actors from Apple soon.

(4) Swift 6

Last year the version of Swift bumped to Swift 6. We were told that Swift 6 was mostly about concurrency.

It mostly is - or will be.

What we will come to call Swift 6 is not the Swift 6.0 release. The features began to roll out in Swift 5.9 or earlier and they are still rolling out as we pass Swift 6.1 and head to Swift 6.2.

There have been the usual flurry of pre-WWDC proposals on Swift Evolution along with position papers that shows that Apple is (wisely - but belatedly) reconsidering the path to concurrency. It seems that it will be less of a light switch and more of an on-ramp. Or to match the metaphors, less of a light switch and more of a dimmer switch.

Instead of flipping Swift 6 on and getting a ton of warnings and errors, we'll now be able to take advantage of defaults and adapt to more sophisticated ways of taking advantage of concurrency as our needs require and our knowledge grows.

I was going to start a book about Swift 6 last year after the conference, but it became clear to me that Swift 6 wasn't Swift 6 yet.

I'm of two minds here. On the one hand, I wish more internal groups at Apple would use the new Swift and SwiftUI APIs and technologies in anger so they understand when something needs more work before being rolled out. On the other hand, I appreciate that Apple recognizes something does need more work and they commit the resources to this effort.

Lest you think I'm whining, I'm still all-in on Swift and SwiftUI and other Apple technologies. I'm really enjoying working with them in my apps.

I'm going to end with another meta comment that may sound as if it doesn't have to do with WWDC, but it does.

(5) Swift and the Community

I know that I talked about Apple and their work on Swift. "But Daniel," you ask, "isn't Swift open source?"

It is. In my opinion, Apple has been a great steward for the language and has honored the Open Source aspect of the language.

I don't mind Apple making sure that Swift meets their needs - Apple engineers do most (by a large margin) of the work on Swift.

And yet, it is undeniable...

Swift is Open Source.

But, if Apple wants Swift to be perceived as anything other than an Apple technology, it needs to do some work.

I noted the flurry of activity on Swift Evolution that you see a couple of months before WWDC. There are also sessions at WWDC on what's new in Swift and in-depth sessions by members of the core team.

I'm not saying we shouldn't have these sessions. We should. They are some of my favorites. I always look for the sessions by Holly, Ben, and Doug and watch them multiple times.

What I'm saying is that as long as the Swift announcements are mostly made at the Apple Developer conference, it will be seen to be an Apple technology.

So that's why this section is in my WWDC thoughts. Advancements in Swift and WWDC need to be decoupled.

There needs to be at least one Swift conference, probably late in the year as the Swift 6.3 proposals are being finalized. There probably needs to be a Swift Foundation that is run independently but funded by Apple. There need to be non-Apple employees leading the foundation.

Of course it's right and proper that Apple has a big say in the Foundation, but if Apple truly wants Swift to be thought of as a language that is not just for and by Apple, they need to take steps in that direction.

That Foundation would run the conference, manage and release official publications on Swift, and take over swift.org and run it as a vibrant, independent, living website that highlights all Swift activity.

In any case, it's two months out and I'm really looking forward to this year's conference.

Blog Index and Subscription Information