The second week of June is like an extra birthday for those who develop for Apple platforms. During the WWDC introductory keynote, us developers (and, fine, the general public, too) get a glimpse of new features that are coming to the ecosystem’s operating systems, and often some hardware announcements are made as well. For this piece, I’ll focus on updates to the tooling side and will call out some of the most interesting API additions and enhancements announced this year — some of those developer-centric details revealed beyond the keynote, in the Platforms State of the Union or from scavenging through the latest docs and release notes.
The Mac has nearly completed its (admirably smooth) transition to Apple Silicon, thus creating a hardware platform that is architecturally consistent and uniform across iPhone, iPad, Apple Watch, Apple TV and the Mac (not to mention the Studio Display!). A prominent casualty of this transition seems to be the (in)famous Bitcode.
From Xcode 14’s release notes, we can infer that Bitcode is deprecated and that older architectures like armv7, armv7s and i386 are no longer supported as deployment targets. Surprising absolutely no one, this effectively makes arm64 the present and future for Apple platforms. Since this should also simplify the handling of dSYMs and their relationship with crash reporting tools, we feel that most teams will welcome this change after a long 7 years of Bitcode serving as either a hassle or something to be simply ignored.
Xcode 14 can now use just a single 1024x1024 asset to generate all icons for an app (although the option to manually define multiple icons is still available). This has been a long time in the making and we are sure that it will bring much happiness to each and every Apple developer out there!
SwiftUI previews also see a major improvement, with streamlined support for multiple orientations, screen sizes, and system themes.
Finally, rounding out this solid Xcode release, there are a host of other features like new snippets for Codable, script sandboxing, better code completion, code auto-indentation and more.
Announced a year ago, Xcode Cloud has kept a relatively low profile during its invite-only phase. While we still haven’t learned a whole lot of new information about it yet, the good news is that it’s finally out of beta — and developers enrolled in the Apple Developer Program will get access to the base tier (25 hours of compute per month) for free until the end of 2023, with higher tiers available for larger teams.
The flashy but useful improvements to the Lock Screen in iOS 16 kicked off the keynote, and will likely serve as a headline feature for much of the general public. Fortunately, developers have been given a few different ways to participate in this reimagining of a long-untouched part of iOS. There is a new way of showing real-time data from apps in the Lock Screen called Live Activities, plus new Lock Screen widgets (clearly inspired by Apple Watch complications). Although these will probably arrive in an iOS 16 point release, these APIs will soon give developers a powerful tool to keep users engaged, even when they’re not using the app itself.
The introduction of WeatherKit brings with it both an API for apps and a REST API for web applications (with 500K monthly API calls included for Apple Developer Program members) which demonstrates that the improvements to the Weather app are more than just a coat of fresh paint.
Exciting MapKit improvements include the availability of 3D View and Look Around from the API to be used in non-system apps, and an all-new server side API which will include endpoints for Geocode, Reverse Geocode, Search and ETA.
Other notable APIs include the “Shared with You” API in Messages which will improve collaboration and sharing within Apple’s popular messaging platform, the App Intents API (totally built in Swift) and an API that unlocks Live Text and Visual Lookup functionality for non-Apple apps.
Finally, APIs to make phone calls from WatchOS apps, and a revamped WidgetKit API that is now cross-platform compatible with iOS to unify Widgets and Complications code nicely round up the WatchOS side of things.
Probably the most interesting new Swift feature, at least from a tooling perspective, is Package Plugins. If you have ever needed to use libraries or packages that fall into the category of linters, formatters or general build utilities, you know they generally either feel like an intruder in your workflow or they are mashed together with other dependencies. This is no longer true with Package Plugins, which offer a way to integrate these kinds of dependencies separately from the ones that will end up as part of your application and are completely sandboxed.
Swift 5.7 introduces many more exciting new features but two other standouts in our opinion are Distributed Actors and Swift Regular Expressions.
Distributed actors are designed to take advantage of Location Transparency, which allows actors to be referenced even when located in different processes or different machines with applications that go beyond regular mobile apps.
Swift Regular Expressions on the other hand feel a bit like magic: we now have Regex Literals and Regex Builders, where regexes are syntax-highlighted once typed in Xcode. Everything happens under the umbrella of Swift’s type system and it all comes together in a way that removes the opacity of working with regular expressions. I never thought I’d see the day where I would look forward to working with Regexes!
And finally, Apple has promised faster compile times thanks to improved parallelization, faster launch times in Swift apps and better integration between the Swift concurrency runtime and the OS.
With that, we conclude our initial impressions of WWDC ‘22 — but I’ll sign off with a list of the sessions the Runway team is most looking forward to catching over the course of the week. Make sure to reach out and let us know what got you most excited about this year’s dub-dub. Thanks for reading!