Worldwide Developers Conference 2020
by Patrick Cavannagh-Senior Software Engineer|Wed Jul 01 2020
WWDC (from home) has come and gone with significantly less by way of extended audience applause, significantly more Memoji avatars, but the same plethora of updates to the Apple ecosystem. No new consumer hardware announced this year, but there were plenty of software updates, big changes coming to the Mac and much more in amongst the slick tour around Apple Campus during the keynote and many many Pro Display XDR monitors.
Here are some of the key updates from this year’s conference from our in-house iOS expert Patrick Cavanagh.
iOS & iPadOS 14
It wouldn’t have been WWDC 2020 without an update to iOS, and this year is no different! The iOS 14 developer beta alongside the Xcode 12 beta are both out now with all of the features announced during the WWDC 2020 keynote and more available to test.
WWDC 2020’s flagship changes in iOS this year are significant changes to the home screen, bringing Widgets and an App Library. Android users will be quick to point out that these ideas aren’t exactly revolutionary, but Apple have put their spin on it and announced what looks to be a polished update to the existing home screen, with a focus on organisation, speed and bringing information quickly to the user’s fingertips via Widgets.
The Smart Stack Widget allows for multiple regular Widgets to be stacked on top of one another, and automatically adjusts its content during the day to minimise home screen real estate use and maximise effectiveness.
Home screen Widgets can only be built using SwiftUI. The new declarative UI framework was announced at WWDC last year, but has been difficult if not impossible to widely adopt in many apps due to the minimum iOS 13 requirement. iOS 14 brings many other advances in Swift UI, and with the advent of the first SwiftUI-only feature, home screen Widgets represent the start of the shift away from UIKit. This is likely a hint at the direction we can expect new UI features to go in over the next few years to come, with increasingly less support for UIKit.
There are updates and improvements to SwiftUI this year, but as with the arrival of SwiftUI last year, many of them are not backwards compatible (LazyVStack, ScrollViewReader, App Entry points etc). As iOS projects commonly support two major versions, the arrival of iOS 14 may be the point at which it becomes feasible for many developers to start using SwiftUI in production, but it could still be some time before it comes close to rivalling UIKit as the default choice.
As well as all of the new iOS features, there are a few dedicated changes for the iPad too. Scribble builds on the existing Apple Pencil functionality, allowing for the pencil to be used in more places, including writing in any text field with the pencil which will automatically convert to text.
Search has also been revamped on the iPad to allow for more advanced searching. Universal Search on the iPad looks oddly reminiscent of the longstanding “command + space” Spotlight shortcut from the Mac, and is possibly a hint of more iPadOS and macOS alignment to come…
Product owners, developers, designers and everyone involved in defining, building, maintaining and testing new and existing apps should be thinking of home screen Widgets or any of the new features in iOS that could enrich the user’s experience in their project. Extracting information from the app and bringing it to the home screen could put an app front and centre on the user’s phone, with obvious potential to bring users back more frequently.
App clips are a new lightweight means to give new users quick access to a section of your app, without needing to download the whole app via the App Store. Clips can be initiated through a variety of means including QR codes, NFC tags, new App Clip codes (a dedicated QR code designed to prompt users to open the App Clip), through Safari or various other places within iOS. Opening App Clips uses the existing Universal Links structure for deep linking into apps. They’re developed alongside the rest of your application and are supplied to App Store Connect as part of the main app binary, and must be less than 10MB in size (preferably much less) to ensure speedy loading on user devices.
As with a number of the other features announced this year, App Clips bring feature parity with Instant Apps which have been around on Android for some time, so there may now be a more interesting proposition to implement across both platforms. Not all iOS frameworks are supported in App Clips, and it’s either not possible or not advised to access photos, contacts, perform background activity, make in-app purchases or a variety or other operations. It is possible to use Apple Pay within App Clips and many of Apple’s examples make use of this.
App Clips are meant for getting users seamlessly into your app and performing a specific purpose. Does the app have functionality which new users could perform quickly in isolation to the rest of the app? Does the brand have a platform through which new users could be brought into an App Clip? These are the questions that should be asked when deciding whether to support App Clips.
Does your app make use of the user’s location, contacts, photos, device clipboard, IDFA (ID for Advertising) or identify users across companies? If so, there are some changes that you need to be aware of.
Apple is changing their App Store policy to require that apps explicitly ask users permission to track them across apps or websites owned by other companies, which includes any tracking used for advertising purposes. As part of this change, in iOS 14, the IDFA will only be available to apps if users have allowed permission.
In addition, any apps running on iOS 14, that haven’t been updated to be built against iOS 14 will return all zeros (00000000-0000-0000-0000-000000000000) for the IDFA, crippling all existing advertising tracking. I imagine ad networks aren’t enormously impressed with Apple’s tagline of ‘Privacy is a chance to innovate’, as they scramble to prepare and adopt alternative means of advertising attribution in time for the iOS 14 launch in a few months time.
This is a definite win for user privacy, but will probably not be heralded as a helpful change for any business currently relying on tracking users.
Other privacy changes in iOS 14 include updates to runtime permissions around accessing user’s photos, location and contacts. WWDC 2020 introduced new APIs which allow apps to access user data in a more direct way, meaning that apps can still access user data, but without users exposing more data than they need to.
The clipboard has historically been completely open on iOS devices, allowing any app to inspect anything users have copied. Changes made in iOS 14 alert users to the fact that an app has accessed the clipboard and in some notable cases apps have been caught abusing this to gather more information on users than might be strictly necessary. Happily, there’s a new API to access the clipboard without the privacy pop-up in legitimate circumstances.
Apple have long faced accusations of anti-competitive, monopolistic behaviours with regard to their App Store practices. An open EU anti-trust investigation and the recent high-profile fight with Basecamp’s email app Hey, haven’t filled developers with confidence that Apple will always enforce their App Store guidelines fairly. Though in contrast to that, for the first time iOS 14 gives users the ability to set third party web and email clients as default, with some territory being given up uncharacteristically in those sectors.
Just as Apple has a platform where they can force companies into surrendering 30% of their revenue by mandating in-app purchases, arguably with little benefit to users, they can also force companies into making changes regarding how they handle and collect a user’s personal data, with obvious benefits to users. In a similar vein, from Autumn 2020, all apps will be required to fill out a questionnaire on what data they collect on users and how they use it, to be visible on the App Store page before download. This includes all SDKs used by the app, so I expect most teams will need to do an internal audit of sorts to scope out all user data captured, depending on how in-depth this new questionnaire is.
In the long term, everyone involved in defining, building, maintaining and testing apps should question whether the data an app is collecting on users is required, or whether it’s possible to get by collecting less. In the short-term, look into adopting and adapting to these changes, especially the updates to runtime permissions and IDFA.
To find on information on handling the Limited Photos Library in your app while preserving privacy click here.
Apple Silicon & The Big Transition
Probably the biggest announcement that will affect the entire Apple ecosystem for years to come is the transition away from Intel chips. Macs have used Intel chips since the migration away from PowerPC architecture first announced at WWDC 2005, and will be moving to in-house developed, ARM-based silicon. This will bring a consistent architecture to all Apple devices, with new chips on the Mac inheriting the learnings made in building dedicated chips for iPhones, iPads and beyond over the last decade.
The promise of this move for the consumer is a jump in performance, battery efficiency and improved capability of the Mac, including being able to run native iPad and iOS apps. For Apple, there are obvious advantages of having greater control over their ecosystem without relying on Intel for chips and controlling the underlying architecture on the Mac. For developers, there’s every chance this change will introduce a lot of headaches!
During the keynote, Tim Cook revealed that the first Macs with in-house silicon will likely be shipped by the end of 2020, with a transition period of around 2 years. During this interim period, all Mac apps will need to be migrated to support the new architecture and developed, tested and published with both the Intel x86_64 and Apple Silicon arm64 architectures in a conjoined universal binary. For apps that aren’t migrated in time, the new version of macOS, Big Sur, will ship with Rosetta 2, which will perform install time and runtime translation to ensure that old apps maintain compatibility with new Apple silicon Macs.
Apple claims that migration is simple and a number of high-profile applications such as Microsoft Office and Adobe Suite were demonstrated as running natively on the new architecture. That said, the sceptic in me wants to wait and see what the experience of the rest of the community is before passing judgement.
All iOS apps are already built for arm64 architectures, so would theoretically be compatible with running on new Macs. In practice, there will obviously be some issues running applications designed for use on a phone, on a laptop or desktop.
All teams should look at their apps and decide whether they should allow users to run it on the Mac. By default, all compatible iOS apps will be made available on Macs with Apple silicon, but there is an opt-out option in the App Store Connect console. With the potential to allow users into your app on a new platform, this new form factor shouldn’t be dismissed without due consideration.
Odds and Ends
Less intrusive UI
To the delight of iOS users everywhere, Apple have decided to reduce the intrusiveness of the phone call and Siri UI. Rather, completely taking users out of the context they were in, receiving phone calls or invoking Siri will be a slicker experience in iOS 14.
Shortcuts on the back of your phone
A new option in the iOS 14 system settings will be to add a shortcut invoked when double or triple tapping the back of the phone. We’ve seen this kind of interaction with the hardware of the phone before through dedicated sensors, for example of some Android devices which support shortcuts when squeezing the bottom of the device. This shortcut is backwards compatible to the iPhone X on iOS 14 (from preliminary investigations) and relies on the existing accelerometer and gyroscope sensors in devices, with a pinch of machine learning magic, to work without any new hardware.
One addition to AirPods this year is automatic switching between devices with no user input. Listening to music on your phone, then switch to your Mac for a call? No more faffing with Bluetooth settings. Nice.
There’s also Spatial Audio coming to AirPods Pro. This provides a more immersive experience when listening to surround sound audio, using accelerometers and gyroscopes inside the headphones to adjust the audio mix to give a surround sound effect.
In many cases, by default, ISPs and other DNS providers can track users through plain text DNS lookups. iOS 14 and macOS Big Sur will have native support for the DNS-over-HTTPS (DoH) and DNS-over-TLS (DoT) protocols to help prevent this. These technologies aren’t fully adopted yet by DNS providers, but there will be warnings to users if the network is blocking encrypted DNS traffic.
Wireless, phone-based, cryptographic car keys will soon be a thing. Apple is working on a new industry standard that will allow cars to be unlocked via NFC as well as the wideband U1 chip. The first car expected to support this is the 2021 BMW 5 series and it’ll be backward compatible with iOS 13.5, available offline and also work for ~5 hours after your phone’s battery has died. Also making use of the U1 chip will be an extension to the current end-to-end encrypted Find My functionality, to be able to locate compatible third party real-world devices.
That’s just about everything they covered that was worth noting, if you’d like to listen back to any of the keynotes from WWDC 2020 then click here.