WWDC 2021

Ricky Munz
CapTech Corner
Published in
12 min readAug 12, 2021

Intro

June 7, 2021 brought the return of Apple’s World-Wide Developer Conference (WWDC, or “Dub Dub” for short) to developers’ and enthusiasts’ screens around the world. As they did last year, Apple opted for a fully virtual conference, offering live streaming of major presentations like the WWDC Keynote and Developer State of the Union, followed by a daily posting of pre-recorded, more technically-oriented sessions throughout the remainder of the week.

As is tradition, Apple’s initial WWDC Keynote was targeted towards consumers of their major platforms — iPhone, iPad, Mac, and Apple Watch. Updates to these platforms generally focused on the idea of “unifying” them — bringing common functionality to each platform to complement the Apple-designed M1 processors that many of these devices now share. The result is a continued strengthening of Apple’s “ecosystem” that promotes enhanced productivity with applications and tools across multiple Apple devices.

Following the initial WWDC Keynote was Apple’s Developer State of the Union and subsequent developer sessions. These updates focused on changes coming to Apple development tools and frameworks. While there were no ground-breaking announcements this year, there was certainly still a handful of notable changes that will bring both quality of life improvements and enhanced functionality to the apps developers can create. Some highlights include Swift Concurrency, Xcode’s new documentation compiler, the introduction of Xcode Cloud, and improvements to many frameworks including Foundation, SwiftUI, ARKit, and more.

This blog will highlight the most impactful updates for both customer-facing platforms and developer-focused tools and frameworks, starting with changes coming to MacOS Monterey.

A quick note — the first few sections of this blog (MacOS, iPadOS, iOS, WatchOS) will highlight updates specific to those platforms. New features and functionality coming to all platforms (the majority of what was announced!) will have their own sections to follow.

MacOS Monterey

The newest major version of MacOS, titled Monterey, introduces new tools to bolster productivity with other Apple devices as well as the addition of long-awaited functionality for Mac computers.

  • Universal Control allows users to seamlessly transition control of their mouse and keyboard between multiple adjacent Mac or iPad devices. No setup required — if you’re working on your MacBook and have your iPad on a stand to the right, just move your mouse to the right edge of your MacBook and respond to the prompt to transfer the cursor over to your iPad.
  • Shortcuts on Mac brings the beloved Shortcuts app from iPhone and iPad to a desktop environment.
  • Airplay on Mac brings the highly-requested ability to Airplay to your Mac’s display.

iPadOS 15

iPadOS 15, apart from playing some much-needed catch-up with functionality from iOS, brings some exciting new tools for productivity-focused users as well as Apple developers.

  • Widgets on iPad casts aside the previous, rather limited implementation in the dock on the left side of your home screen in favor of the more flexible solution we’ve come to enjoy on our iPhones. Widgets can now be selected, resized, and arranged across your home screens, just as we’re used to on iOS 14.
  • Swift Playgrounds brings an exciting new update for Apple developers, especially those who may be daydreaming about Xcode on the M1 iPad Pro. Swift Playgrounds now supports the development of full SwiftUI applications — from scratch all the way to the App Store!
  • Multitasking enhancements were a welcome addition this year, seeking to make the process of creating and returning to multitasking workflows more discoverable and intuitive.
Widgets on iPad

iOS 15

New in iOS 15 is a couple of enhancements to Wallet. The first is the introduction of door keys allowing you to unlock your home, garage, office, or hotel room. Apple also introduced ID cards to Wallet. Theoretically you’ll be able to add your driver’s license or state ID which you can then display during TSA check-in and at other retailers. This feature is subject to which states participate first and will be available late 2021. These enhancements to Wallet will also be available for the Apple Watch.

WatchOS 8

WatchOS 8 will add portraits to watch faces, allowing users to pick photos of their friends and family for regular viewing. Also new is Respiratory Rate Tracking which will give users insight into their overall wellness. Finally, users will have another option for text input with Scribble. You’ll be able to compose a message with Dictation, and then edit with the dial and drawing on the watch face.

FaceTime and SharePlay

Next in our overview are features and enhancements that were introduced across Apple’s platforms (at least, iOS, iPad, and Mac). First up are enhancements to FaceTime and the announcement of SharePlay. SharePlay is more of an extension to FaceTime rather than a new standalone app, and comes in response to the growing practice of consuming digital content “virtually” with friends during lockdown. TV shows, movies, and music can all be shared natively within the FaceTime app to other members on the call, ensuring everyone is synced up and enjoying the same content at the same moment.

A huge enhancement to FaceTime came in the form of newly-introduced compatibility with Android and PC. Users of these non-Apple devices will now be able to join FaceTime calls via web links, positioning FaceTime to square off with popular utilities like Zoom as a go-to video chat solution for users of all major platforms.

FaceTime + SharePlay

Focus

Focus joins Apple’s list of tools that aim to increase users’ productivity across all of their Apple devices, similar to solutions like Screen Time. This new app allows users to create “periods of focus” that silence notifications from a curated list of apps for a set amount of time. Consider the example of a “coding” focus, that suppresses notifications from Messages, Mail, and social media apps, but might still allow for pings from apps like Slack. These periods of focus will sync across your Apple devices, and include functionality to notify the sender of an iMessage if the recipient is currently “focusing” and did not receive their message.

Focus on MacOS

Live Text and Visual Look Up

Live Text is a exciting new addition coming in iOS 15. With it, users will be able to select text in images whether the image is viewable from the camera, your photos, or an image in Safari. If the text is interactable, like a phone number or an email address, you’ll be able to tap on it to interact with it. There’s also Live Text translation which allows you to translate selected text from the image. Live Text even works with handwritten text!

Live Text on iOS

With Visual Look Up, you can get details about photos of plant, animals, books, landmarks, and artwork. Just take a photo of the subject and if it’s recognized you’ll be able to tap on it to get details instantly.

Maps

Maps includes several new updates this year. There’s much more road detail such as turn lanes, bike lanes, bus lanes, and crosswalks. You’ll also be able to view 3D landmarks in select locations. Public transit will now show nearby stations, transit times, and allows pinning favorite routes. Maps has also added AR step-by-step walking instructions.

Developer Updates

Swift Concurrency

Swift Concurrency is a great place to kick off this year’s developer-focused updates from WWDC. This change to the Swift language brings impactful change to the way developers design, write, and maintain asynchronous code in their programs.

  • The new `async-await` pattern marks a departure from the previous emphasis on completion handlers in favor of a less-verbose, more organized, and less error-prone way execute asynchronous code and handle its result.
  • `AsyncSequences` extend this pattern to allow for asynchronous iteration through loops.
  • `Actors` represent a new reference type capable of protecting and controlling access to mutable state.

These new tools and patterns can drastically reduce the number of lines of code required to do common tasks such as capturing responses from `URLRequest`s and asynchronously loading collections of thumbnails — all while improving the control flow of your program and making it easier to read and debug.

Swift UI Improvements

SwiftUI has continued to mature since its inception in 2019. It’s no surprise that Apple has continued to iterate on it in 2021, bringing support for Swift Concurrency as well as the introduction of new modifiers to create rich UI experiences with less verbose, more declarative code.

  • Support for loading asynchronous lists and executing asynchronous `tasks`
  • `.refreshable` modifier for pull-to-refresh functionality
  • `.swipeActions` modifier to easily implement familiar swipe gestures on list elements
  • `.searchable` modifier to implement search functionality on a list with just a few lines of code
  • Markdown support for text

There were a number of excellent SwiftUI-focused sessions provided in this year’s WWDC session catalogue. It’s worth taking a look to learn more about fine-grained enhancements to SwiftUI as well as learning about how SwiftUI works under the hood.

Xcode and DocC

A particularly exciting enhancement for Xcode was announced for those who like to (or aspire to!) take advantage of Xcode’s inline documentation to provide rich documentation for their library or framework. The new Xcode Documentation Compiler (or DocC for short) is a new tool in Xcode 13 that allows for compilation of documentation in the source code into a rich documentation catalogue, with a user interface and experience matching that of Apple’s own documentation. From the `Product` menu in Xcode, you’ll be able to `Compile Documentation`, which presents you with a standalone, organized, and searchable catalogue of documentation for your app or framework. With the introduction of DocC you’ll be able to generate three different types of documentation:

  • Reference, for precise API documentation, text descriptions, and code snippets
  • Articles, which target free-form content to describe the code base or certain pieces of functionality
  • Tutorials, which provide a step-by-step walkthrough for how to use a project or framework (just like Apple’s own SwiftUI tutorials)

These documents all support markdown, as well as linking to symbols in your code, integrating code snippets, and displaying images. You also have the ability to export your documentation catalogue as a single-page web-app, allowing you to host it anywhere for users of your framework to reference.

Xcode Cloud

Xcode Cloud was introduced as a robust, Apple-managed solution for continuous integration of your Apple apps. With a subscription to Xcode Cloud, a development team will be able to establish workflows to perform certain actions (like an Archive) based on predetermined conditions (like a change to a `main` branch). Teams will also be able to run builds securely in Apple-managed cloud infrastructure, allowing for targeting of multiple operating systems and capture of screenshots from multiple devices. Xcode Cloud also brings a rich code review experience directly to Xcode, removing the need to bounce out to a browser each time you need to review a pull request.

HTTP Traffic Analysis

A small but impactful update for developers of apps with a lot of networking functionality comes in the form of an enhancement to Instruments. The new HTTP Traffic Analysis tool allows for developers to view the number of active network tasks taking place on a connected Apple device, as well as inspect individual processes and their underlying `URLSession`s. In your Swift codebase, you’ll be able to “tag” individual `URLSession`s and filter on those within Instruments to view detailed info about those specific tasks. A welcome update for those who might be looking for an alternative to a similar app like Charles.

Foundation — Grammar Agreement

With the next update to Foundation this year, localization could get a bit easier, specifically with grammar agreement. To explain this concept, let’s jump into an example that Apple provided in their session on the topic. If you have one small salad, then the noun is singular and does not need an ‘s’ at the end. But if you have two small salads, then you must add an ‘s’ to pluralize the word “salads.” This is also true in Spanish, except that the adjective must also be pluralized. So we would have one “ensalada pequeña” to two “ensaladas pequeñas.” Notice also that in Spanish the adjective comes after the noun, instead of before the noun in English. When localizing, how do we handle all the possible permutations here?

The new feature in Foundation, named Automatic Grammar Agreement, seeks to solve this problem. The developer will provide a noun, adjective and quantity in the original language, the translator will provide a translation for these items, and then Automatic Grammar Agreement, using the same technology found in Suggestions and the keyboard, will modify the items as appropriate in order to ensure the sentence is grammatically correct. With this year’s release, Automatic Grammar Agreement will only be available for English and Spanish, but it will be interesting to see this feature expand to other languages in the future.

English
Spanish

SF Symbols 3

SF Symbols originally released with around 1,500 symbols. With SF Symbols 3, there are now over 3,000 symbols! There are also two new rendering modes. The first is Palette rendering mode. With this mode the developer can choose a primary and secondary tint for a symbol and these colors will automatically be applied based on the emphasis of the symbol. The second rendering mode, Hierarchical, applies a single tint with varied levels of prominence depending on the emphasis of the symbol component. A practical application of this rendering mode is to distinguish subtle differences between similar symbols.

Currently available rendering modes in SF Symbols 3
Hierarchical rendering mode

ARKit 5

There are several new features with the introduction of ARKit 5. First, Location Anchor availability has expanded from 5 to 25 cities in the US and the first city outside of the US, London. There’s also an AR feature in Maps giving the user floating instructions as they navigate on foot.

App Clip Codes are now available for use in AR App Clips and Apps. You can scan a code to either open the App Clip or interact with AR content from within an application itself.

Face tracking has been improved with ultra-wide camera support. Motion Capture now included a larger variety of body postures as well as increased range.

Photogrammetry API

This year, Apple has introduced a new API, the Photogrammetry API. With this new functionality, the user will be able to take several photos of a subject as it is spun around in a circle. After several captures are complete, the API will produce a 3D model, mesh, and textures of the subject. While there will be a native app published by Apple allowing a user to produce these models, the Photogrammetry API is also available for developers to integrate with their own app as they see fit.

RealityKit 2

The big news for RealityKit this year is the introduction of the Entity Component System (ECS). This is a new paradigm for controlling lots of content in a scene at the same time. If you’ve worked with a game engine like Unity then you’ll be familiar with this pattern. Systems will dictate functionality, components will capture state, and entities will be identifiers for groups of components. For example, say that you have three species of underwater creature that will be inhabiting your scene. Two of these species will be different fish that have the same flocking component that will be handled by the flocking system. However, one fish species has an algae eating component while the other has a plankton eating component. Then you have a third species, plankton, which does not flock, but has a plankton component to let any entity with the plankton eating component know that it is their food.

RealityKit 2 — Entity Component System

This is a big architectural change for this platform and it should allow for complex scenes with multiple interacting entities. It should be fun to see what developers come up with using this new pattern!

Conclusion

In its consumer-focused updates this year, Apple showed a continued focus on strengthening their device ecosystem with new apps and productivity tools that work seamlessly across all of your Apple devices. Developers saw both improvements to the language they use to create Apple apps as well as the tools they use to write it, with the introduction of services like Xcode Cloud and enhancements to Xcode like the new Documentation Compiler. There were no new striking frameworks or apps, and no new hardware updates — but it’s clear that Apple is positioning themselves to continue to build on their transition to in-house-designed SoC’s and deliver more cohesive experiences across devices in the years to come.

Thanks for reading, and special thanks to Ben Nowak for their support compiling and editing this blog.

--

--