WWDC 2020 Viewing Guide

Here’s my viewing guide for the sessions I found most interesting this year.

Where Do I Start?

Watch the Platforms State of the Union for an overview. The first 45 minutes cover the switch to Apple Silicon and macOS 11. Then comes iPadOS and iOS 14, watchOS 7 and Xcode 12. If you’re looking for changes to SwiftUI skip to the last ten minutes.

Don’t Panic!

As always, there’s a huge amount of new stuff to learn this year and it can seem like you’re getting left behind. Don’t let it overwhelm you.

You don’t have to learn everything new today!

It’s great to learn new things but you’ve got time. Don’t burn yourself out trying to keep up.

WWDC and the Developer App

Tim Cook told us there are over 23 million registered Apple developers. Only a tiny number of them will ever go to an in-person WWDC. If Apple has a physical conference next year I hope they keep the pre-recorded sessions and online labs for the vast majority of remote developers.

I watched the videos using the Apple Developer app. It’s available on macOS and iOS. I find navigation a bit of a mess but the video player supports from 0.5x to 2x playback, many videos have transcripts and support copying of the onscreen sample code.

The pre-recorded sessions are a lot shorter this year (many < 10 minutes). There is no padding so you can quickly get to the topics that interest you.

Apple Silicon

The big news of WWDC 2020 is Apple moving the Mac from Intel x86 to Apple Silicon. For iOS developers this has some interesting implications:

UIKit and iOS 14 Updates

It feels almost like a sideshow but there are some big changes to collection views in iOS 14 building on the compositional layout introduced in iOS 13:

  • Advances in UICollectionView A quick 10 minute overview of the changes covering diffable data sources, list style sections and cell registration and configuration.

Deeper dives into each of the changes (also see the sample app):

iOS 14 refreshes controls to make them consistent across platforms and we get some new pickers:

iPadOS 14

As the Mac gets more iPad features, so the iPad gets more Mac features. The first two design session videos show a theme of consistent user experience across all platforms:

The technical sessions. Be sure to watch the split view controller changes:

SwiftUI

Josh Shaffer talks about the approach Apple is taking with the development of SwiftUI on the last 10 minutes of the State of the Union

The full surface of mature frameworks like AppKit and UIKit cannot be covered all at once. So we’re taking our time to get it right. We’re prioritizing source stability while making the API more powerful over time.

This is good news if you were an early adopter of SwiftUI:

Code you’ve already written will continue to compile and run with this years releases, with no migration required.

If you’ve been waiting now is a good time to jump in. Maybe create a Widget or Watch complication? These first three sessions are a good intro to SwiftUI:

Digging deeper, there’s a lot of great additions here. Worth taking your time to watch them all:

Other Framework Sessions

Location

Typography

  • SF Symbol 2 New version of the SF Symbols App with 750 new symbols. Also available in MacOS Big Sur. More localizations and multi-color symbols. Watch out as some names have changed.
  • The details of UI typography Moving from the old optical fonts (SF Text, SF Display) to the variable font (SF Pro). WebKit font-family support and scaling custom fonts in SwiftUI.

Photos

Core Data

Health

Swift

Xcode 12 ships with Swift 5.3 and the Swift Package Manager supports binary frameworks and resources:

  • What’s new in Swift See the section on changes to the language, especially multiple trailing closures and implicit self in closures.

Some deeper dives:

Updates to the Swift Package Manager:

Developer Tools

There’s no “What’s New in Xcode 12” video this year but there are many great sessions. I recommend the first three videos on finding and fixing performance issues:

Performance Management

Swift playgrounds

Testing

Xcode testing adds an execution time allowance and gets better call stack diagnostics to see where a test failed:

Localization

Nothing new here, but some useful recaps on localization:

Other Useful Sessions

Catalyst

We’re all Mac developers now. Catalyst has added more iOS frameworks and an optimized for Mac mode:

App Store, Distribution and Payments

If you’re using in app purchases I recommend watching the first two videos:

App Store Connect gets some new API:

Intelligence

An Apple theme this year is Intelligence. This includes Widgets, App Clips, Shortcuts and Siri suggestions. All ways for users to discover and interact with your App. Check out the design sessions to see how they work together.

Design

Confused by the variety of intelligence and automation technologies? Four quick sessions that help put app clips, widgets, shortcuts, intents, donations and Siri into context to understand why you might want to support them.

Widgets

Want to start using Swift UI? Create a widget! Widgets are lightweight home screen extensions to your App built using SwiftUI views and fed with a timeline of data to show.

Also see this three-part “code-along” to building a Widget for a sample App:

App Clips

App clips provide a small part of your App for a specific task launched by URL and downloaded independently of your App. Expect websites to have annoying banners inviting you to download them.

More detailed sessions:

SiriKit and Shortcuts

Additions to SiriKit and the Shortcuts App:

  • What’s new in SiriKit and Shortcuts Siri gets a compact design, shortcut app gets folders, more automation triggers. Shortcuts on the watch and you can mark shortcuts suitable for a “Wind-down” experience.

More detailed sessions for when you have time:

watchOS

Build watchOS 7 complications with SwiftUI and share watch faces:

Apple Pencil

Apple Pencil improvements. The most interesting to me is Scribble which allows handwritten text anywhere you can enter text on the iPad.

Accessibility

I like that these aren’t just a repeat of how to add VoiceOver support. Try to watch at least the custom rotors and switch control videos if you can:

Augmented Reality

Still waiting for the Apple Glasses:

Security and Privacy

Every year Apple adds a few more privacy controls for the user:

Networking

Web

Apple insists they are listening and the WKWebView API is still growing. Universal links are now supported on watchOS and SwiftUI:

For the JavaScript developer:

And Finally…