WWDC 2025

23rd June 2025 • 1,364 words • 7 minutes reading time.

Apple's Worldwide Developers Conference is over for another year. As I wrote in an earlier post, I am not happy about Apple's management and their attitude to third-party developers, but there is no doubt that their own developers are doing some amazing work. I've been away and was then busy launching my new book, so I have not caught up with all the new announcements yet, but here are my initial impressions...

Version Numbering

This is great! Now I can finally tell how old a system is without having to look it up. iOS has always had numerical versioning but macOS, with its clever names picked by the crack marketing team, has been impossible to remember. And with Xcode adding a slightly different number, it was all just too confusing.

As regards using next year as the number, we developers need to remember that we live in a bubble of pre-releases. Most people won't get these systems until late in 2025 and they need to feel like they are getting a new system, not one that's already nearly out-of-date.

Liquid Glass

I've installed the first versions of the beta operating systems on a Mac and an iPad and so far, I'm really enjoying the new look. There are some accessibility issues that need fixing, but Apple has a good track record on accessibility, so I am sure they'll get there. Once we get used to the new look, I think we will find the look of old apps and icons jarring, but once they have all been updated, our screens will become more cohesive.

It's obvious that Apple is trying to make all their operating systems look and feel similar, and despite its lack of traction, visionOS has exerted a huge influence on the new design.

Xcode

Apart from the fact that ALL my screenshots are now wrong, I like the new look for Xcode. I'm a bit confused by the tabbing system and I haven't discovered a fast way to open two files side by side yet, but I'm sure I'll get used to it. As regards the new Settings window, I don't have a problem with it becoming more like the System Settings app - this seems a logical extension of Apple's increasingly uniform design. The only pane I find difficult to use is the Themes pane, which only shows 4.5 lines of samples, regardless of the height of the window.

I love the new #Playground feature! It gives a much clearer view of the data than an actual playground and seems to run faster. It's making me re-think how I'll approach some of my books and projects where I often start with experiments in a playground before creating the project itself. I was surprised when Xcode removed the Create New Playground option from the Welcome window a couple of versions ago, but now I see why.

I haven't explored the Coding Assistant much yet. Basically, Apple is admitting that their models are not good enough, so they've given us the ability to connect external models into Xcode. I'll have to see how well this works and how far I can get without yet another subscription. I'm not sure how much I'll use it, but it's nice to have some AI facilities incorporated into Xcode.

SwiftUI

There weren't a huge number of changes in SwiftUI, but there were some really good ones. I have been expecting a SwiftUI web view for years now, and it has finally arrived. After watching the video, I am very impressed and can't wait to start using it in several of my projects. They've done a great job of making a very complete and powerful web view.

Whenever I've been asked if I would recommend basing a Mac app on SwiftUI or AppKit, I always said SwiftUI unless you need long form text editing or have to display long lists. It looks like the text editing is now much better, although I haven't tried it yet. It was good to see acknowledgement of the fact that lists in macOS SwiftUI have not been as performant as in iOS SwiftUI and they appear to have improved this a lot. My initial tests were promising, but I need to do more in a real project to be sure.

Swift

Last year, Swift 6 introduced strict concurrency checking. I tried it out, but I felt like I was making changes that I didn't really understand in order to make the compiler happy. This is not a good way to produce code, so I dropped back to Swift 5 mode - which was still Xcode's default - and waited. It appears that concurrency is better implemented this year. I'm waiting to see how this pans out in the later betas, but this may be the year that I finally adopt Swift 6.

I'm also excited to try the new Foundation Models framework which gives us on-device AI that we can call in our apps.

App Icons

The new Icon Composer is fun to play with and it's going to be great not to have to make so many different sizes of icon. As someone who is artistically challenged, I now need to find a simple editor that will allow me to create simple shapes as SVGs for adding to the icons.

iPad Windowing

I'm still getting used to this. I have a smaller iPad so I don't tend to open more than one window at a time. I also prefer to use my iPad in portrait mode most of the time, which I don't think is what Apple's designers expect. Several apps end up with a series of skinny columns in this mode and Safari shows the iPhone version of web pages when I have the sidebar open. In Safari, I'm confused as to the best way to close the last tab. There used to be an X button that closed the tab and took me back to my Start Page. Now I either pull down the menu bar and select Close Tab or I open the sidebar, expand the Tabs entry and tap the weirdly offset X beside my tab name. Neither is as convenient as the old way, but maybe I'm missing something.

Developer Relations

Without doing anything to improve matters, it appears that Apple paid some attention to the dissatisfaction in the developer community. In the week before WWDC, they published two articles: one reporting how much money they give to developers and the other saying how safe the App Store keeps us.

This meant that they didn't start WWDC with the usual rave about how much they love their developers, which would have rung hollow this year. I also note that Tim Cook played a very minor role in the keynote, before handing it over to Craig Federighi. Is this a passing of the baton? Will we see Cook's resignation and Federighi's promotion in the near future?

Then we had the refusal of any Apple execs to be part of John Gruber's Talk Show Live. At first I assumed it was because they didn't want to have to face any questions about Tim Cook's political decisions or about Apple's AI failures. But then the execs did interviews with people who are far more likely to be hostile than Gruber, so it became apparent that this was just spite to punish Gruber for his single Apple-critical article in a sea of positive articles. This is petty and should be beneath them. I would be fascinated to know who made this decision.

Conclusion

I think there are exciting times ahead for us as developers. We need to adopt the new interface design - a task that is simpler for apps that use standard controls instead of custom views. Then there are new APIs to explore and further tests of AI coding to be done. As we progress through the beta cycle, I will experiment more and report on my findings.

If you have any feedback about this article, please contact me using one of the links below or through the Contact page. And if you found this useful, please buy me a coffee.