FREE TRIAL: Accelerate your app development career with Hacking with Swift+! >>

WWDC21: Wrap up and recommended talks

Packed sessions, digital lounges, and a look forward to 2022.

Paul Hudson       @twostraws

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.

Hacking with Swift is sponsored by Essential Developer

SPONSORED Join a FREE crash course for iOS devs who want to become complete senior developers — from October 18th to 24th. Learn how to apply iOS app architecture patterns through a series of lectures and practical coding sessions.

Learn more

Sponsor Hacking with Swift and reach the world's largest Swift community!

And away we code!

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.

A woman talking in front of the Swift logo. This is Susan Prescott, introducing a segment on developer technologies.

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.

A woman talking in front of the an Apple laptop. This is Rhonda, an Xcode engineer, and it’s taken from the Platforms State of the Union session.

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.

Lounging around in Slack

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:

  • Labs were running from 6am to 8pm Pacific to give more people chance to attend.
  • All the talks were released four hours earlier than last year, again helping make the event more accessible to the rest of the world.
  • Student challenges took place throughout the week, encouraging folks to recreate vintage UI, build a 100-line app using a random framework, and more.
  • Digital Lounges took place Tuesday through Friday, encouraging folks to chat.

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:

  • You could reply freely to any and all messages.
  • They had icebreaker events that were genuinely fun to take part in.
  • They ran watch parties where you could stream videos simultaneously with other guests, sharing your excitement about specific moments or asking presenters questions directly because they were chatting there too.
  • Even after the official lab hours had ended questions were still being answered by engineers.

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.

Of course, it was only the first year these things existed so there were some places they could have improved:

  • Please, please give folks space to actually chat in the DT lounge. You don’t have to go overboard – just copy the approach from the SwiftUI lounge.
  • When Josh Shaffer and Jacob Xiao came to answer questions in the SwiftUI lounge, we had to submit questions two hours ahead of time but they still only managed to answer 12 of them in an hour – it wasn’t a lot of fun to attend this.
  • We were explicitly banned from recording or taking screenshots of any digital lounge without Apple’s written permission. I asked for permission and was denied, which is why there aren’t any screenshots here, although folks elsewhere in the community have captured and posted complete logs of the lounges elsewhere.

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.

My favorite talks from WWDC21

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…

10: Meet StoreKit 2

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.

9: Build interfaces with style

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.

8: Swift concurrency: Behind the scenes

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!

7: Classify hand poses and actions with Create ML

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.

6: Review code and collaborate in Xcode

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ï!

A man smiling and talking to the camera. This is Kieran, an Xcode engineer, and it’s taken from Review code and collaborate in Xcode talk.

5: Swift concurrency: Update a sample app

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.

4: Ultimate application performance survival guide

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.

3: Write a DSL in Swift using result builders

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.

2: Demystify SwiftUI

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.

A man putting on shades. This is Raj, a SwiftUI engineer, and it’s taken from the Demystify SwiftUI talk.

1: The (process/practice) of inclusive design

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.

Recommended videos…

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 Task initializer.

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.

And then there were community events

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:

  • Pre-WWDC Trivia took place just a couple of days before the event began, and I was fortunate enough to be able to host this with my friend Allen Whearry. Although we hope folks enjoy answering our trivia questions, it’s just so wonderful seeing them enjoy meeting each other and having a great time.
  • WWDC Community Week ran from June 5th to 13th, and thanks to the power of many volunteers was an incredibly fun, incredibly vibrant event that helped recreate the feeling of being at WWDC in person. Special kudos to the folks who recreated the McEnery convention center with remarkable detail!
  • James Dempsey and the Breakpoints were back for their 20th anniversary, and it was lovely to see members of the band come and tell their stories of what makes Breakpoints events so special.
  • iOS Dev Happy Hour took place the day after the event finished, and although it was a bit surreal it was – and always is – such a fantastic event.

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.

Looking forward to WWDC22

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:

  1. The continuation and indeed expansion of digital lounges, giving global attendees the chance to take part in challenges, ask questions, and get involved.
  2. The availability of remote labs that everyone can attend. If this is done through digital lounge open hours that’s fine, but I feel everyone deserves the chance to ask questions and get answers.
  3. A firm plan to encourage uptake of these labs, so that under-booked labs are less likely. Think how many people ignore their two free DTS credits every year – if they were convertible to one annual lab appointment, I feel confident they’d get used pretty darn quickly.
  4. An improved Developer app with a clearer timeline of events (including the many digital lounge events), ideally with notifications like "The open hours lab is starting now” or “your lab is in 15 minutes.” It would be nice if the Copy Code tab worked more reliably, because I really struggle to select anything in there and instead have to skip the video to the right time and click the video overlay icon.

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.

Bonus!

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…

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 ❤️

Hacking with Swift is sponsored by Essential Developer

SPONSORED Join a FREE crash course for iOS devs who want to become complete senior developers — from October 18th to 24th. Learn how to apply iOS app architecture patterns through a series of lectures and practical coding sessions.

Learn more

Sponsor Hacking with Swift and reach the world's largest Swift community!

BUY OUR BOOKS
Buy Pro Swift Buy Swift Design Patterns Buy Testing Swift Buy Hacking with iOS Buy Swift Coding Challenges Buy Swift on Sundays Volume One Buy Server-Side Swift (Vapor Edition) Buy Advanced iOS Volume One Buy Advanced iOS Volume Two Buy Advanced iOS Volume Three Buy Hacking with watchOS Buy Hacking with tvOS Buy Hacking with macOS Buy Dive Into SpriteKit Buy Swift in Sixty Seconds Buy Objective-C for Swift Developers Buy Server-Side Swift (Kitura Edition) Buy Beyond Code

About the author

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.

Was this page useful? Let us know!

Average rating: 5.0/5

 
Unknown user

You are not logged in

Log in or create account
 

Link copied to your pasteboard.