UPGRADE YOUR SKILLS: Learn advanced Swift and SwiftUI on Hacking with Swift+! >>

WWDC20: Wrap up and recommended talks

Packed Sessions, hands-on labs, and a look forward to next year

Paul Hudson       @twostraws

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.

BUILD THE ULTIMATE PORTFOLIO APP Most Swift tutorials help you solve one specific problem, but in my Ultimate Portfolio App series I show you how to get all the best practices into a single app: architecture, testing, performance, accessibility, localization, project organization, and so much more, all while building a SwiftUI app that works on iOS, macOS and watchOS.

Get it on Hacking with Swift+

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

Full stream ahead from Apple Park

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.

A long camera shot that seems to take us from Steve Jobs Theater to a secret underwater lab.

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:

  1. Each video was only as long as it needed to be. Most previous WWDC talks aimed to be about 40 minutes so they could keep a fixed structure at the venue, but at WWDC20 I watched many that were under 15 minutes. These weren’t just “easy talks” either – Advances in diffable data sources was under 12 minutes, and Discover Core Image Debugging Techniques was just over 7!
  2. A clear focus on the task at hand. With no clapping and cheering, and with no chance for gremlins to cause problems that often plague live presentations, every video could be packed with information.
  3. Every presenter was very calm and well spoken – every single one – so the talks ought to be easy for folks who learned English as a second language. Plus, the talks were carefully and thoroughly subtitled, so everyone could follow.
  4. If you used the Developer app, you had copiable code that was timestamped to the talk, so rather than try to take screenshots or pause and type, you could just click and drag.
  5. There were recap videos available every day, summarizing what was covered and providing a look forward to the next day, all in under two minutes. These were way more fun than you might imagine, and were extremely polished.
  6. I’ve also seen various mentions of reshoots to correct errors in the talks where feasible – this happened rarely previously.

A man pointing emphatically at the camera. This is Tyler Fox, doing a talk on changes to UIKit.

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…

The labs experience

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:

  1. Yes, timezones again. The talks landed at 7pm or later for most of Europe and at 11pm or later for at least half the world’s population, but the labs were later again. Folks tweeted about getting lab slots in the middle of the night, and it shows how prized these slots were that they still got up and attended.
  2. Having to book the day before meant there was no chance of finding late availability. I know for sure that some labs were very quiet, but if there had been a free spot in something like UIKit, WidgetKit, Core ML, or similar, I would have been happy to use it and I’m sure many others would too.
  3. There was no serendipity, no way to get in a group to discuss a like-minded topic. If you went to the labs last year you didn’t necessarily have to have a question, you could just wander up to a “chalkboard session” – an Apple engineer taking open questions from a group of people about their area of expertise. These are really fun even if you don’t say a word, because you hear other questions, people ask follow ups, the engineer sketches on the whiteboard behind them, and more.
  4. There was no continuity – no way to get an answer, go away and try it out with real code, then return and say “it worked, but…” or similar.

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.)

Community events

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:

  • James Dempsey and the Breakpoints gave their annual performance in aid of Black Girls Code, Nova Code Collective, and Digital Youth Divas.
  • There was a pre-WWDC trivia event hosted by Kaya Thomas and Kristina Fox. (Disclosure: I helped organize this.)
  • Daniel Tull continued his traditional WWDC No Queue Breakfast, “where no one is first, no one is last, it’s just us having a chat”
  • Multiple WWDC Slack workspaces sprung up for discussion, and proved very popular.

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.

My favorite talks from WWDC20

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…

10: Advances in UICollectionView

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.

9: App Essentials in SwiftUI

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.

8: Write Tests to Fail

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.

7: Unsafe Swift

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.

6: Build with iOS pickers, menus and actions

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.

5: Introducing StoreKit Testing in Xcode

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!

4: Build SwiftUI views for widgets

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.)

3: Data Essentials in SwiftUI

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.

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

2: Swan’s Quest

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.

1: Embrace Swift Type Inference

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.

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:

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…”

What about WWDC21?

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:

  1. Keep the recorded videos and release them as before, although, please maybe consider 9am Pacific or even 8? If they want to stream sessions in the event halls they can do so too, but other than the keynote and State of the Union these don’t need to be live.
  2. At the event, run labs all day, and perhaps provide other ways for attendees to meet and discuss such as Birds of a Feather events.
  3. Keep the worldwide labs availability, giving everyone the chance to ask questions. If they can find a way to replicate chalkboard sessions that would also be a huge win, particularly if they were recorded.

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.

And finally…

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.

BUILD THE ULTIMATE PORTFOLIO APP Most Swift tutorials help you solve one specific problem, but in my Ultimate Portfolio App series I show you how to get all the best practices into a single app: architecture, testing, performance, accessibility, localization, project organization, and so much more, all while building a SwiftUI app that works on iOS, macOS and watchOS.

Get it on Hacking with Swift+

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

BUY OUR BOOKS
Buy Pro Swift Buy Pro SwiftUI 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 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 Beyond Code

Was this page useful? Let us know!

Average rating: 4.4/5

 
Unknown user

You are not logged in

Log in or create account
 

Link copied to your pasteboard.