Packed sessions, digital lounges, and a look forward to 2022.
Apple’s annual event is done and dusted for another 12 months, featuring a major raft of updates for all platforms, plus Swift, SwiftUI, UIKit, and more. But perhaps just as importantly, this year also featured a number of improvements to the conference format itself, and it seems increasingly clear that we cannot go back to the old WWDC format again.
In this article I’ll go over how I thought the event went, pick out the talks I enjoyed the most and would recommend you watch, highlight some of my favorite community events, and put forward a handful of suggestions for how WWDC22 might look.
SPONSORED With Sentry’s error and performance monitoring for iOS you see mobile vitals that actually matter, can solve any latency issues quickly, and learn how each release is performing over time.
WWDC20 took place during a global pandemic, and WWDC21 also took place during a global pandemic. But this year Apple was prepared – perhaps they had some plans in place for an in-person WWDC just in case things had improved by the start of the year, but it seems clear this year a great deal of work had gone into making WWDC work better as an event for everyone.
Even from the very first keynote video it was obvious this year Apple had doubled down on the production quality for their videos. Yes, Craig’s teleportation effect somewhat stole the show, but also we saw carefully orchestrated presenter handovers across a wide team and a variety of impressive CGI overlays that brought the launch day to life.
But the keynote did a lot to set the stage for the week. Yes, Craig called developers “the heart and soul of WWDC” – I mean, it’s right there in the name – but things really kicked off when Ted Kremenek took over presenting. I can’t imagine I was alone in feeling my pulse pick up when that happened, because Apple only shows code during the keynote when they mean business. Unsurprisingly this segment focused on concurrency, and even if you’ve only managed to watch a few of the videos from WWDC21 you’ll almost certainly have seen that topic threaded through again and again.
We always knew the keynote would be a glitzy affair, but this year Apple went further and also added a ton of polish to the Platforms State of the Union talk. This has been The Developer Keynote for as long as I can remember, and of course this year there was a lot of focus from the big hitters like Xcode Cloud, Swift concurrency, Swift Playgrounds, and ShareKit.
These are all important topics, and I’m sure they’ll keep our community accelerating forward for years to come. However, the change in tone of the SOTU interested me much more, because it was quite dramatic even when compared to last year.
At WWDC20 most of the speakers had job titles of “director”, “senior director”, or even “VP”, and they are people we’ve known for years who have contributed whole chapters in Apple’s developer history – Matthew Firlik, Andreas Wendker, Jon Andrews, Ali Özer, and more. Heck, Ali alone has spoken at over 20 WWDC events.
At WWDC21 that shifted tremendously: Xcode Cloud was demonstrated in detail by Rhonda Register, an engineer on the Xcode team; Holly Borla from the Swift team had eight full minutes of screen time to go into more depth about Swift concurrency; and Ryan Williams and Juan Ignacio León worked together to introduce SharePlay with lots of example code.
Don’t get me wrong: folks like Ali or Andreas have defined whole eras of Apple development – multiple eras, in fact. But running a developer conference presented by developers has always been at the core of the WWDC experience, and there is extraordinary power in seeing engineers sharing what they built.
If you’ve been developing for Apple’s platforms for only a few years, you might not remember the days when you could count the number of women presenters on zero fingers. That too has changed: even without trying to count, I know for sure the cast of speakers was the most diverse I’ve ever seen at any WWDC. Trust me, I watch a lot of WWDC videos, to the point where for talks in core topics – Swift, SwiftUI, UIKit, etc – I mentally play a game where I predict, usually correctly, who is going to deliver each session based solely on the title. This year I got only a handful correct, and in fact saw lots of engineers I haven’t even come across before. Honestly, I love it, and I hope this is the future for Apple.
Hearing @hollyborla explain async/await with dance has me 😍💃🏻. It may seem small, but after so many classes with examples from sports and cars, it’s lovely to hear something different and such a clean example to boot! #WWDC21— Sommer Panage (@Sommer) June 7, 2021
One of the problems faced by WWDC20 was that talks would land at 10am Pacific, and then some labs would happen later in the day. Not only did this mean folks anywhere east of the Atlantic found it harder follow along, but a couple of hours after the talks landed a lot of the buzz had fizzled out.
This year Apple seem to have gone above and beyond in their desire to address this:
The labs are always going to be a highlight of the event, because it’s one of the fastest ways to get direct, code-level solutions for your problems. Many people go into them cautiously or perhaps even afraid they are wasting the time of Apple engineers, only to find they loved the experience and want more.
However, the labs seem to be straying into increasingly uncertain territory. In a normal WWDC year the labs are the busiest part of the event, with Apple staff monitoring lines, making bookings, and alerting you when your turn has come to speak to someone. This year – outside of SwiftUI at least – many labs seemed to be underbooked, which ought never to happen in an event open to everyone around the world, particularly given that Apple allowed you to book lab slots at any point in the week rather than just the day before.
Part of the reason for this might have been the digital lounges, which were newly introduced this year. There were four lounges available, all of which were Slack channels in a dedicated workspace where folks could come along and ask questions to a range of engineers in that area.
I signed up for only two of them, SwiftUI and developer tools (DT), because Apple said registration was limited and I didn’t want to take a spot from someone else. I definitely liked that the channels were created with purpose, so that events were scheduled at precise times rather than the lounges joining the long list of Slack channels filled with general chat. But beyond that I’m not really sure how successful they were, because even the two I attended could not have been more different.
For example, the DT lounge was usually completely locked down, so you couldn’t post messages or even replies. As a result, at its worst this lounge just felt dead at times, and I wish I knew why. Were the engineers busy doing something else? Were there far too few of them allocated to answer effectively? Were they all working together to form one perfect answer that was marketing-friendly? My own question – “will Swift Playgrounds 4 support Git?” – was studiously ignored, and so I think we spent the last 30 minutes of that particular session in complete silence rather than just them saying “no” or even “we can’t comment about unreleased products.”
In contrast, the SwiftUI lounge was frequently an absolute delight. Yes, we still couldn’t make top-level posts, but:
In-person WWDC labs regularly had “chalk talks”, where one Apple engineer takes questions from a dozen or more attendees at the same time. These were fantastic ways to learn, partly because there is less time spent waiting in line, but mostly because you hear – and learn from – the questions other attendees are asking. Although it’s never going to be quite as good, at its best the SwiftUI lounge did feel like you were just hanging out with the SwiftUI team and other attendees, sharing the WWDC hype.
I know it’s a team effort, and I have a feeling she wouldn’t accept any such praise directly, but I feel obliged to recognize the remarkable enthusiasm, excitement, and joy that Betsy Langowski managed to inject into her digital lounge presence throughout the week. In a text-based medium like Slack it is extremely hard to keep people engaged day after day, but the SwiftUI lounge managed it just brilliantly.
What are you doing tonight at 7:00pm PDT? The correct answer is obviously hanging out with me in the SwiftUI Digital Lounge for “Break the SwiftUIce!” It’ll be a fun chance to get to know and support each other! Be there or be RoundedRectangle #WWDC21 https://t.co/g7Bj27kELb— Betsy Langowski (@superbetsy) June 10, 2021
Of course, it was only the first year these things existed so there were some places they could have improved:
That last point is particularly important, because around midnight Pacific after the event finished Apple terminated the WWDC21 Slack workspace. It wasn’t that you couldn’t add more messages there any more – they outright deleted everything. I don’t really know how to describe how that made me feel, because hundreds – thousands? – of questions and answers had been posted there, and it was a gold mine of knowledge.
Like I said, some members of the community worked hard to copy out a lot of those answers, but a great many are now gone. It’s not quite the burning of the Library of Alexandria, but it still feels a bit like Swift sacrilege to just toss away things so wantonly.
Every year – during the event, and in the weeks and months after – I spend a lot of my time watching the WWDC session videos. Not only do they show us hands-on examples of building with Apple’s APIs, but they frequently also contain useful tips and techniques that help round out my knowledge.
Once again, there were over 200 videos released from the event, and this year I managed to watch 83. That’s 10 more than I managed last year, but I’m also writing this over a week after the event finished so I’ve had extra time!
Regardless, this once again means my list of favorites is naturally limited by my topic selection, and I recommend you visit the full list to find your own favorites.
With that sizable disclaimer out of the way, here are the 10 talks I enjoyed the most…
StoreKit is a fundamental part of the app ecosystem, but for a long time the API has been somewhat stagnant. That has all changed with StoreKit 2, which feels like it’s been rewritten from scratch to take advantage of Swift, and is going to spark a lot of joy ripping out old code and replacing it the streamlined async/await replacement featured here.
How much improvement can you make to your user interface without leaving Interface Builder? As you’ll see in this talk the answer is a lot, and actually it’s increasingly useful as a way to explore different layout adaptations, try new button styles introduced in iOS 15, and even work with content configuration styles for table views.
This is one of the talks I had to watch twice – partly because it’s a complicated topic, but partly also because it’s packed with tips that help build a stronger mental model of what’s actually happening with async/await, actors, and more. Highly recommended!
Every year Apple has a talk where it feels like you’ve stepped through a portal 20 years into the future, and this is that talk for WWDC21. Not only do the presenters have fun building special effects using particles and machine learning, but the fact that we can do this stuff on iPads is just astonishing. Even if you don’t plan on using Vision in your apps, at least sit and marvel at what’s possible.
This was a banner year for Xcode, and it’s really brimming with new features to make our lives easier. But if there’s one really stand out feature I think you should investigate, it’s the new workflow and collaboration support that comes built right in. The new code review upgrade alone is worth your time, but stick around for integration with pull requests, team comments, and more. Faot allaï!
There were several talks about Swift’s new concurrency changes, and honestly Apple could have run twice as many and there would still have been scope for more. But this talk stands out because it applies several concurrency changes to a real-world app, giving a better taste of where specific approaches make more sense. As a diving board into all the other concurrency talks, I don’t think it comes better than this.
No matter how powerful devices become, we always want our code to execute with as low of a resource footprint as possible, and this talk is a whirlwind tour of Apple’s tools for making that happen. It touches on Instruments of course, but also XCTest, Xcode’s organizer, MetricKit, and more, and I feel certain everyone can learn something here.
Although result builders first appeared in a raw form back in Swift 5.1, this is the first Swift video dedicated to using them to craft something quite brilliant. Although the subject itself is fascinating, my favorite thing about this talk is the flow: the presenter could easily have followed a linear path from start to finish, but instead she shows several different solutions along the way so you can start to build a better sense of where result builders really work best.
Of all the SwiftUI talks this year, this was easily the most anticipated – and with good reason. Yes, some specific code samples are discussed, but again the real power of this talk is its goal of helping you build a mental model so you can see things the way SwiftUI does. It’s packed with techniques you can apply to your own work, and I’d be amazed if you don’t immediately want to make half a dozen changes to your own projects after you’ve watched it.
This is a pair of talks, both of which are so good you’ll want to applaud at the end. I lost track of how much valuable advice was given out in these information-dense sessions – localizing for culture, avoiding color idioms, describing gender for VoiceOver, and even creating inclusive working environments all got covered, and always in a way that had practical examples that encourage us all to think about not just what we code but also how and why we code.
This is Apple at its very best.
If you only have time for five videos, here are the ones you need to watch to get the gist of what’s new this year for iOS developers:
Tip: As you’re watching, you’ll notice many sessions use an
async() function for creating tasks. It gives you a sense of how fast Swift is developing – as well as how seriously Apple is willing to take feedback from Swift Evolution – that this has already been deprecated and replaced with a
If you can fit in one more talk, treat yourself to Meet the Swift Algorithms and Collections packages – I know it sounds like it’s going to be super hard, but the presenters make the topic accessible and interesting for everyone and you’ll definitely walk away with a greater appreciation for how much work these packages can do for us.
And if you really want to be challenged, watch Apple’s privacy pillars in focus. We all know Apple’s long-term commitment to user privacy, but it takes a lot of thought, effort, and maintenance to match that same commitment in our own work. This video walks you through how to reduce the amount of data you store, how to keep as much of it on device as possible, and also how to provide clear guidance so users know what you’re doing with their data – goals we should all be striving for.
Over and above the keynotes, the sessions, the labs, and the lounges, were a varied collection of community events that helped bring people together in. I can’t mention all of them here, but a handful really stood out:
I want to thank the WWDR team at Apple for featuring these events and more on the WWDC home page, helping encourage more members of our community to take part.
WWDC will inevitably return next year, but as you might imagine there’s a great deal of debate on what it might look like. More specifically, will it be in person, or is remote here to stay?
My own views on this are pretty simple: Apple must not go back to the WWDC format used at WWDC19 and earlier. Having an exclusive, expensive event is naturally going to shut out a great deal of people, and it divides our community into WWDCan and WWDCan’t.
Yes, I know sessions have been streamed live for some time, and that helps. But like I said earlier, the labs are always the real highlight of the event – getting to ask questions directly to the people who built the APIs is an incredible privilege, and it’s one that I think everyone deserves to have.
At the same time, I think Apple’s digital lounges have shown enough promise that they deserve the chance to grow and evolve. Yes, sometimes they were locked down within an inch of their existence, and yes that existence was terminated abruptly after the event ended, but it still helped engage folks at a global scale that an in-person event cannot.
Listen, I’ve been lucky enough to attend WWDC in person several times now, and I know it’s incredible. Yes, the event itself is just a lot of fun, but it also brings together thousands of other folks in our community – they come for AltConf or for Layers, to meet friends new and old, or just to enjoy the community excitement and parties. I would be genuinely sad if an in-person WWDC never happens again because I’ve seen for myself what kind of magic it sparks when people connect, and I think it’s pretty telling that several major events in our community just didn’t happen this year or last because they didn’t feel that an online experience would be good enough.
It might be as simple as “if Google I/O returns to being in person, WWDC needs to” – I don’t really know. But whatever Apple decides there are some things I do hope to see:
Steve Troughton-Smith has also suggested running multiple “app jams” throughout the year, simply by taking the WWDC student challenges and replicating that same formula to help keep folks engaged. I know the student challenge makes for a simple, clear-cut way to create WWDC scholarships, but couldn’t 10 winners from each app jam also get a scholarship?
Most of these hopes boil down to one simple thing: I want people to feel involved in our community, to get the chance to meet other like-minded developers, and share their excitement for Swift. As Craig said, developers are the heart and soul of WWDC, and anything Apple can do to encourage more expression, more creativity, and more engagement will benefit everyone.
This year more than ever WWDC was a carefully orchestrated extravaganza, but here are a few tweets that gave us a glimpse behind the scenes…
🎭 #WWDC21 behind the scenes 🎭— Sommer Panage (@Sommer) June 10, 2021
1) We had to pause filming an inordinate amount of times for me to move my necklace back to center.
2) I 💯 channeled @hollyborla’s talk last year to do my makeup
3) For shots of my hands on the kb we had to completely rearrange the whole room 🤦🏻♀️ pic.twitter.com/CLSJz3qijr
My little behind the scene: they wanted to do a side take and they asked me to not move my hands.— Luca Bernardi (@luka_bernardi) June 10, 2021
Clearly my inner Italian can’t handle that request. 🤌🏻
At the third take of this I had to put my hands in my pocket to not move.
Limited edition company store run I’m afraid. I needed to resist talking a sip during breaks because that is not coffee.— Ben Cohen (@AirspeedSwift) June 9, 2021
I guarantee you that we’re more nervous than you are. Not being able to help someone with their problem (or thinking I’m not being helpful) really brings out my impostor syndrome, which is quite an achievement since usually I’m quite arrogant^Wconfident about my technical skills https://t.co/5bagZrCleL— Slava Pestov (@slava_pestov) June 11, 2021
Thank you so much to the many people who made WWDC happen this year – and largely working from home, too. You’re amazing, inspirational, and really, really appreciated ❤️
SPONSORED With Sentry’s error and performance monitoring for iOS you see mobile vitals that actually matter, can solve any latency issues quickly, and learn how each release is performing over time.
Paul Hudson is the creator of Hacking with Swift, the most comprehensive series of Swift books in the world. He's also the editor of Swift Developer News, the maintainer of the Swift Knowledge Base, and a speaker at Swift events around the world. If you're curious you can learn more here.
Link copied to your pasteboard.