March 17, 2021
Last time I wrote that I expect to a Swift friendly version of Core Data - Core Store or Swift Data - on its way this year or next. What else can we expect at WWDC?
This feels like a really big year for developers.
Again, who knows what will make it into this year and what will wait until next year (or never), but it feels as if a lot of balls are in motion right now.
Clearly from Swift Evolution we see a big push to implement support for asynchronous code. Many of the proposals have made it through and been implemented for Swift Next. This feels like more than a Swift 5.x release, it feels as if we might be close to a Swift 6 release.
I have no idea if this will, in fact, get the Swift 6 numbering but it feels pretty big. I have no idea how things are numbered. At WWDC 2020 Big Sur showed signs of having been the next 10.x until someone (marketing?) decided to take it to 11.
Although the Swift releases don't have to be on the same timetable as the OS releases anymore, the current acceleration makes it feel as if there's a push to get much of the asynch support in place by WWDC so that the next OS releases includes it.
I'm hoping that this year's Doug and Ben presentation helps us understand the big picture of how we use the various techniques and APIs in our code and that Tony demonstrates the asynchronous support in Foundation.
I'm hoping this is a big year for SwiftUI as well. You can see the framework bubbling up as it is used internally. Last year it felt as if folks at Apple had used SwiftUI on internal apps and projects and recognized that iOS required some additions including the disclosure groups for Lists, expanding Lists, Labels, and - of course - Grids. With all of the enhancements to UIKit's Collection Views, I'm expecting more from SwiftUI Grids this year.
In addition, last year's Data Flow in SwiftUI session made many of the concepts more clear (I certainly hadn't understood State before the session the way I understood it after) and introduced StateObject.
One thing I'd like to see more of at WWDC are sessions that aren't around introducing new APIs but those that take a step back and show us best practices on how to know when we should be using what and how. For example, there were no sessions on Combine last year. You can justify that by saying there was only one method added to Combine - but that didn't mean that people understand it and are ready to use it. Apple had two great sessions that introduced the framework and showed us examples, but it would have helped to have seen some real life situations.
As a last thought on SwiftUI - last year felt as if we were getting more of a complete picture on how to use it on iOS but it felt as if the multiplatform and macOS specific APIs weren't ready yet. I'm expecting to see more of this this year.
Another request of mine is that the sample code be available to developers right away. There were some pretty big examples that appeared in multiple sessions. The sample code was either incomplete or never posted. Being able to jump around in sample code is invaluable.
I do expect to see some additions to Combine this year. In writing the Combine book, there seemed to be areas that could benefit from additions - though I assume the team will also be busy making sure Combine is preparing to work with the asynchronous proposals.
Also, I'm expecting to see new things when it comes to tooling. No - I don't mean (and don't want) Xcode on iPad.
If you have an M1 Mac, Xcode feels like a completely different app. It is much faster and responsive and when I teach using it the previews refresh, the simulator launches, and the playgrounds don't crash multiple times an hour. I have no idea why this is so - but I'd rather have the IDE get better on the M1 than see Apple using resources to bring it to the iPad as well.
If you work with Combine and SwiftUI you may have noticed that the inspector can show you a bit of Combine's pipeline. I'd love to see a Combine tool in Xcode that makes it easier to build pipelines the same way that preview helps us see the GUI we're building. Like a more robust and visual tool than the one we had to create Bindings for the Mac. Such a tool would also make functional programming more accessible to new and young programmers.
Also, though I hate the term Sherlocked, this could be the year that we see a Combine Instrument that, among other things, Sherlocks Timelane.
I'd like to see more support for scripting using Swift. This was one of Swift's early promises. I'd love to be able to use SPM instead of gems or brew to install and manage scripts. Now that Swift is working on Linux, it would be nice to see a push for Home Kit. It feels as if Home Kit and Car Play are a far way off from reaching their potential.
Now that Swift for TensorFlow has been end-of-lifed, it will be interesting to see what Apple does with Machine Learning this year. Will they continue to position themselves as they have been or will they take advantage of some of the features that S4TF got into Swift to attract researchers and data folk.
What will we see in AI this year as we continue to march towards the rumored glasses?
I'd love to see a session on Result Builders focused on helping educators build APIs for new and young programmers. We could actually teach a generation to learn to code by enabling and supporting the teachers and those who create curriculum.
Let me end this year's rambly wish-list with a couple of items about the conference itself.
Apple did many things last year that I absolutely loved. If a presenter only had ten minutes of content,then a session was ten minutes long. I'd love to see more short focused sessions - not instead of the longer sessions we've come to love but in addition. Let more engineers experience what it's like to present.
I loved seeing familiar faces - but was blown away by some of the new ones.
Last year Apple dropped the technical sessions at a particular time in the Pacific time zone without much of a visible story for why things were grouped the way they were grouped. There were no themes. Each day's videos seemed to have been selected as if they were filling rooms in Moscone where you want to make sure you're reaching different groups in each available slot.
I also wonder if we will continue to get the conference for free.
I hope so but I remember times over the years when Apple charged for access to technical information and WWDC videos.
One last thought... WWDC is traditionally the first time we see a lot of the tentpoles for the fall OS releases. During the beta process many of the details change - sometimes significantly. I'd love to see Apple do a "Tech Tour" of sorts around the time of the OS release that is more up to date on where things landed and includes more of the best practices short videos. I don't expect the same number of videos as a WWDC - but a half dozen to a dozen focused videos similar to what Apple used to do on their road show would be nice. In fact, there's no reason not to do a winter and spring drop of a small number of videos as well. A quarterly check in just like the consumer events.
In any case, I'm silly excited about this year. I think it's like the Swift 3 to Swift 4 time where things came together to address the concerns and needs of those who adopted early and to welcome those who have been waiting until the water is warm and welcoming.
I think we're going to see great things in Swift, SwiftUI, Combine, and Xcode.
Then again, I've been a fan boy since before many of you were born.