The Apple Worldwide Developers Conference (WWDC) 2019 has just ended, and as always it was an intense and exciting week with a lot of new updates for Apple’s operating systems and frameworks. I have no doubt that this year’s event was one of the most significant in recent years with the announcement of a vast number of updates and changes. I’ve decided to take on the challenge of summarizing these updates in one blog post – so let’s begin!
New operating systems
I think that one of the most significant changes is the process of creating a different OS for each device, with the addition of new dev tools to make multi-platform development easier (on Apple’s ecosystem only, of course).
Here’s a quick review of the updates to the different operating systems:
iPad devices will run ipadOS, and iOS will be for iPhones only. The ipadOS will include all the new additions of the iOS, plus multi-screen capabilities, and apps could have multiple instances.
Project Catalyst is an exciting update to the macOS that enables developers to quickly convert ipadOS apps (and previous iOS apps targeting iPad) to run on the macOS, effectively giving iPad apps more distribution (on computers) with minimal effort.
iOS 13 and Swift 5.1 include a few improvements such as smaller app downloads and updates, significantly faster app launches, and a new dark mode UI. All these improvements will require implementing new APIs and new considerations for your app designs.
The new tvOS will include enhancements such as multi-user support, allowing users to switch between accounts on a single TV device and all related settings (music, TV, etc.) will follow – while also communicating this back to the developers. Additionally, the new tvOS version will have a few design changes: the home-screen background will be a video player that plays items from Apple’s soon-to-launch TV+ app, and the top-shelf will auto-play videos and allow full-screen video display.
watchOS 6 gives watch apps more freedom than ever before: watch apps will run independently from the mobile iOS, they don’t always need to be an extension of an iOS app, and watchOS apps will now have a dedicated App Store. With the ability to create separate apps especially for the watch and its particular configurations, app performance and UX will certainly improve. Watch apps will also include improved audio streaming and playback capabilities via the newly released AVFoundation framework that powers streaming on iPhones, iPads, and tvOS. This will open up many new opportunities for different use cases for media based apps.
New frameworks and teach-savvy updates
In addition to the operating systems updates, Apple also released new frameworks and updated many of the existing ones:
Starting later this year, adding “Sign in with Apple” will be mandatory when also offering 3rd party SSO (i.e. sign in via Facebook/Google/Twitter).
“Sign in with Apple” is one of the more interesting moves that Apple did this year, and there are some strategic reasons behind it. Importantly for users, it makes their digital lives easier and more secure; meanwhile for Apple, it makes it harder for users to leave the “walled garden”.
SwiftUI, a new framework built in Swift, is a new way to create UI that also includes a "live development" mode, with very similar concepts to React Native and Flutter. It enables developers to write less code with declarative Swift syntax that’s easy to read and natural to write, and to have shared code between Apple’s different platforms.
Further, Apple continues to invest heavily in native Augmented Reality and Machine Learning frameworks (RealityKit, ARKit 3, CoreML 3), aiming to push performance to the edge and make development easier. In addition, Xcode has been updated, making development easier with “code map,” multi-screens, and improved debugging tools. Apple is also adding the Swift package manager as an integral part of Xcode and not just a CLI tool.
My 3 takeaways
At first glance, it looks like upgrading to the latest Xcode, OS versions, and new APIs will require more effort this year than previous years. Updating one app and its different screens or features will require a decent amount of effort. As a rule of thumb, if you have several apps and you are distributing them in various Apple devices, just double the amount of effort by the number of apps and platforms. If you are not using a development platform or tools that simplify the process, now is the time to do so.
Does Apple feel threatened by React Native and Flutter?
Frameworks like React Native and Flutter significantly improved development velocity – writing less code, sharing more code between platforms, and enabling a fast feedback loop during development made both frameworks very popular, and led to quick adoption across the industry.
SwiftUI is a move in the right direction from Apple, and from a first look, it's awe-inspiring, well made, and progressive – in particular the "live development" mode took the development feedback loop one step ahead of the others. Unfortunately, it only supports Apple devices (of course!), which is a huge downside for many development teams.
Is the future of apps AR?
Apple has invested a massive effort in AR enablement and frameworks in recent years and has been pushing developers to create AR apps as much as possible – e.g. creating RealityKit to reduce the barriers; improving performance; introducing many AR sessions at the WWDC; and promoting AR apps in the App Store. Essentially doing everything they can, disproportionately to the current market uptake. This raises two main questions. Particularly for Applicaster and our media industry clients, which AR features can be used in the media space? And, the bigger question, is it all because of some new AR device that is in Apple roadmap? Time will tell.
(Photography courtesy of Apple.)