Packed Sessions, hands-on labs, and a look forward to next year
WWDC20 was a packed event as always, with some incredible steps forward for macOS, SwiftUI, and more. Was it better than the regular event? Yes. Will it go back to how it was before? That’s harder to say.
In this article I’ll go over how I thought the sessions and labs compared to an in-person WWDC event, pick out my favorite community events, cover the talks I enjoyed the most and the talks I think you should watch if you're short on time, and also look forward to what might happen next year.
Even from the very first minutes of the keynote it was clear these WWDC presentations were going to be like no other. First, the video quality was – predictably – stunning, and on a 4K TV it felt like you were in the room with Tim, Craig, and the others. Second, Apple Park was a key cast member: they jumped around from the Steve Jobs Theater to the health studio, to the “secret underwater lab” and it felt amazing.
None of this would have been possible in a regular WWDC20. You’d never get that close to the various senior Apple folks, and although I have a fondness for the McEnery Center it’s never going to come close to Apple Park.
Throughout the week, the video production naturally became more practical and less glitzy as the topics became hands on, but the actual production quality was still very high. I can’t imagine how much time it must have taken to make each video, because each one was clearly stitched together from many takes.
The remote format allows several things:
Some folks commented that the new format allowed speakers’ personality to shine through, which I feel a bit mixed about.
Yes, seeing folks up close will always feel more personal than seeing them doing WWDC-style hand gestures on stage.
Yes, they were allowed to have a personal object on their table: espresso cups, candles, bike helmets, and more.
And yes, there were some sparks of playfulness that would never have happened live on stage – What's new in Low-Latency HLS featured a talking monkey puppet, Improve stream authoring with HLS Tools featured juggling, and Support hardware keyboards in your app even featured a Rubik’s cube not quite being solved.
However, a couple of videos almost felt uncomfortable to me– the presenters were either so tightly controlled, or just simply didn’t want to be there, that it felt a bit “deer in the headlights”.
To some extent this has always been there. I can’t imagine how stressful it is to get up on stage and present to a live audience at a big event, particularly if you spend the other 51 weeks of the year very much not presenting. The difference is that we’re much closer to them, and also watching in super high definition, so when someone doesn’t appear comfortable talking to the camera I didn’t feel comfortable watching them.
One more thing: the talks dropped at 10am Pacific every day. While this might make sense for the keynote, 10am Pacific is a difficult time for the overwhelming majority of the world’s population, particularly given that lab slots ran much later. Many people – myself included – moved our mental timezones for the week to make this more comfortable, and it helped.
Speaking of labs…
Surely the major highlight of WWDC20 this year is the labs experience. On the one hand yes it’s nothing like the in-person event, but for the first time every developer in the world was able to ask for and hopefully get a slot. It was huge leveler, and the importance of that cannot be understated.
I was lucky enough to get two lab slots, both for SwiftUI. They were conducted by Webex audio, which worked surprisingly well – you could share your screen and type along fairly easily, and if you came prepared you could easily get through 10 or more questions.
For folks who didn’t take the lab route, Apple redesigned developer forums were available. I ran a poll on Twitter asking what folks thought, and out of over 800 people 11% had posted and had an Apple response, 9.4% had posted and had no Apple response, and the remaining 80% hadn’t posted.
So, we are seasoned lurkers, but it’s worth adding that four times as many people said they liked the forums than otherwise, which is a big win for Apple. The new forums are far from perfect, but at least they work consistently.
There were a few downsides with the labs format that are worth mentioning:
So, overall the labs were a big win, particularly when you take into account this is the first time the format has been used. However, if this is repeated again I hope Apple can find a way to highlight late availability – any time a lab is starting soon where there are still slots. Not only would that help make sure their time is used as best as possible, but it might also help folks come forward who thought their question somehow “wasn’t worth” a regular lab request.
As for a chalkboard replacement, would a recorded, moderated video stream be possible? Folks could privately post their questions, and a moderator could feed select some for discussion by the engineers while everyone watched the answers. Obviously this has a higher workload than simple Webex Audio labs, so perhaps Apple could run only one a day for a key topic? (And no, the forums are not a substitute for this.)
One area that absolutely flourished this year was community organization. Sites like https://wwdcwatch.party and https://wwdctogether.com took a huge amount of work to organize, but meant that people had the chance to have some interaction – had the chance to actually chat about WWDC and share their excitement. I’m really grateful to Michie, Khoa, and other community organizers for making this happen.
But it didn’t stop there:
I started a GitHub repository tracking all the community events, articles, and more, and 134 commits later we’ve had links to some incredible work by a huge range of people.
When I started that repository, I wrote the following:
“The Swift community is a thriving and exciting one, but it can sometimes feel a bit personality-driven. This repository was started to encourage everyone in our community to share their learnings, their perspectives, and their social events regardless of their background.”
It is so awesome to see such a huge range of names from contributors, some of whom are writing for the first time.
I download the WWDC talks because I tend to rewind a lot while watching to make sure I’ve really understood. This has the happy side effect of telling me exactly how many videos I’ve watched, and the answer is 73.
Including the keynote and recaps, it looks like there were over 200 videos in total, so I’ve only managed to watch 1/3 of the videos. This means my list of favorites is naturally limited by my topic selection, and I recommend you visit the full list and find your own favorites.
With that massive disclaimer out of the way, here were the 10 talks I enjoyed the most…
There were several talks focused on UIKit enhancements this year, but this one is really the perfect starting off point because it’s almost a highlight reel for several of the others. Core changes like content configurations, collection view lists, advanced diffable data sources, and more are all mentioned here, along with links to more detailed talks so you can dive in to whatever interests you.
SwiftUI saw a number of huge update this year, with some of the most important being around the way we can create and manage windows, scenes, and documents. This talk focuses on that one specific topic and does so excellently, and again if you want more detail you can always jump into something something specific – Build document-based apps in SwiftUI was very good, for example.
Apart from having a catchy title, this talk was also a really great walkthrough of many core testing best practices, all presented hands-on so you can see the results for yourself. There is always one stand out WWDC talk on testing, and this was it for 2020.
This is a talk specifically about when and where you might want to write unsafe Swift, and that isn’t just force unwrapping stuff – think more poking around in memory to get maximum performance. I’ll be honest, you might not make it to the end of this talk because it has a fairly steep difficulty curve, but even if you only watch the first half you’ll have a better appreciation for Swift’s safety mechanisms and thinking.
This was one of the new build/design video pairings (see Design with iOS pickers, menus and actions), which is a wholly brilliant idea all by itself, but this particular talk was more akin to the classic “What’s New in Cocoa Touch” talks of yesteryear as it provided a whirlwind tour of changes and how they impacted your code.
Look, there’s nothing I can say about this video that is more important than these words: you can now test your in-app purchase flow right inside Xcode, and this talk shows you how. Yes, I know this feels well overdue, but I don’t care – it’s possible now and it’s great, so well done to the team!
Introducing a landmark new feature for both iOS and SwiftUI was already going to make this an important video, but it helps when the presenters are clearly excited about what they are showing off. There was a solid intro to WidgetKit in an earlier talk, but this one was all about showing it off in practical terms. And coffee. (But mostly code.) (And coffee.)
This was always going to be an important topic, and I rather wish Apple hadn’t kept it back until the last day so that folks had chance to request labs after watching it. However, it was still a real treat: Curt is a natural presenter who is clearly excited about sharing SwiftUI with us, Luca goes into great detail on property wrappers and modeling data, and Raj explores the app update cycle while delivering the ultimate WWDC closer.
This is a format I have never seen before at WWDC, and I loved it – a hands-on series of coding challenges delivered through Swift Playgrounds. Apple did a huge amount of work to prepare a playground with a virtual game world, but left big gaps that you need to fill with a series of guided challenges and side quests. Come ready to try something new and you’ll have a great time no matter what your age.
I know the title makes this video sound like it should be low on the list, but this is a remarkable tour of how the Swift compiler looks at our code and tries to figure out what we mean. Just as interestingly, it also looks at what we don’t mean – how it identifies errors and helps guide us to a fix.
I’m very far from being a compiler expert, so this kind of talk was pitched perfectly for me: type inference in code is like a puzzle that needs to be solved, and although I’m sure there are some really complex parts in there this talk makes it sound approachable, appealing, and even fun.
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:
If you can fit in one more, treat yourself to Embrace Swift Type Inference – it genuinely is much better than its title suggests, and no “best of WWDC20” list is complete without it.
And if you really want to be inspired, watch Build an Action Classifier with Create ML. That one video shows how you – yes, you – can train ML models to detect different types of human activity with surprisingly little work. I don’t think it’s possible to watch this video without coming away thinking “I have an app idea…”
This year has been a resounding success, despite a global pandemic and widespread protests across the US and the world. This was Apple’s first attempt at running a remote conference, and it’s safe to say they’ll have their own learnings to apply if they run it again – I can imagine a remote WWDC21 being even better.
That being said, I still hope Apple runs WWDC21 in person.
I’m not saying to go back to the old-style live presentations, and I’m certainly not saying to go back to restricting labs to the privileged handful of people who can afford to fly to San Jose one week per year.
But all week I desperately missed having people physically around me. Yes, this is partly the pandemic because we’ve all been at home for a long time, but it’s partly that conferences are literally about bringing like-minded people together to share their excitement.
I loved the community events and hope they continue no matter what, but for me they aren’t a substitute for meeting people face to face, or seeing a group of folks huddled over a laptop chatting excitedly about some cool sample code, or the sheer luck of running into folks and making new friends.
Joe Cieplinski wrote about this beautifully:
“You know what didn’t happen for me for the first time this week while attending WWDC? I didn’t make a single new friend. My community grew by zero. Sure, I had plenty of FaceTime/Zoom/Messages interactions with friends whom I met over the years at the in person show. I even co-hosted a happy hour Zoom call with my podcast cohost Charles Perry. And at some of these online events, there were new faces to whom I could be introduced. But if I had never been to a WWDC before, I would have spent the entire week alone. I would have had no one with whom to share this experience. To me, that’s the bit that can’t be replaced.”
I don’t have a company to pay for my flights and accommodation to San Jose each year, but I know it’s worth it and I book my tickets even before applying for the WWDC lottery. I met Marc Aupont there for the first time. I met Kilo Loco there for the first time. I met Paola Mata there for the first time. I met Bas Broek, James Dempsey, Holly Borla, Louis D’hauwe, Ish Shabazz, Natasha the Robot, Yonas Kolb, JP Simard, Timirah James, Tyler Fox, and so many more all there for the first time.
These are people I admire greatly and honestly only a handful were actually at WWDC itself – I met James at a sushi bar, I met Louis in a hotel, I met Marc and TJ at AltConf, I met Paola at SJ Mac Indie, I met Yonas in a line for The Breakpoints, and so on.
For years now WWDC wasn’t just about the 5000 lucky people who win a golden ticket, but the huge collection of surrounding events where people meet and share ideas. The community events this year helped a little, but AltConf, Layers, and more were sorely missed.
So, I hope Apple can find a way to host WWDC21 next year, with perhaps a few changes:
I realize this is even more work for Apple, but I don’t think keeping WWDC wholly remote is a great solution – Google, Microsoft, Amazon, and even Facebook are almost certain to keep running in-person events, and if we lose the in-person WWDC we lose a lot of what made the event great.
Again, I need to acknowledge clearly and loudly that it’s a huge privilege to fly to San Jose and enjoy the big event, and many people either can’t do so because of work or family commitments, or because of the sheer cost, or because entering the US can feel quite hostile, or any number of other reasons. And other people can come but don’t want to, because conferences can feel awfully isolating if you don’t know anyone.
To a degree that’s true of almost every conference, and in fairness AltConf were finally figuring out a way to replicate large parts of the community experience in cities such as London, Paris, and Berlin – could Apple send some engineers to those events to hold chalkboard events?
However, if WWDC is to return as an in-person event, Apple could do a great deal more to help folks feel welcomed – check out this thread from Aleen Simms and its many replies.
The pandemic is forcing our society to rethink so many things we take for granted, and I hope WWDC is one of them too.
I couldn’t end this massive post without saying a sincere thank you to the incredible teams at Apple who made this event happen.
This isn’t just about the engineers who built all the new platforms and hosted labs, but also the designers who made it feel so incredible, the testers who helped refine the sharp edges, the managers who coordinated the delivery, the writers who built documentation, the evangelists, the video producers, the event coordinators, and so many more who worked through the most challenging environment in recent history to build something great.
If anything above seems like I’m complaining, it really isn’t meant that way – this was a really memorable event with many great highlights, and we’re all grateful.
Thank you, thank you, thank you.
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.