Well, we’re almost at the end of this year’s WWDC and if we’re sure about one thing, this is that the “Blow Minds” recurring theme was really spot on.
WWDC19 is undeniably a milestone in Apple’s historic line of developer conferences. The sheer amount of new technologies was really staggering, to the point that a hundred plus live sessions were not enough to cover all the material, so additional video sessions will be posted by Apple in their developer portal.
But before we dive into some of the highlights, I would like to mention the really important stuff that are often overlooked in favor of twitter jokes about expensive monitor stands…
The advances in accessibility are really a sign that the company still holds values that set the platform apart from the competition by focusing on features that really improve people’s lives. It’s a reminder to all of us that technology can be meaningful and transformative. So, kudos to them for the exceptionally high-quality work on this field and for having the guts to make a live presentation of a hands-free demo to a packed hall.
Privacy & Transparency
Features like “Sign in with Apple”, location tracking history reporting to the users and the anti-fingerprinting techniques employed in Safari last year are also a sign that Apple is in the right direction regarding privacy, security, and transparency. They strategically place themselves at the opposite side of the myriad of companies that are selling people’s data for providing “services for free” - and that’s a good thing.
Having said that, let’s have a look at this year’s tentpole announcements.
- A completely new layout and design system. This is not a wrapper around UIKit/AppKit. It's really a huge change for the platform. A technology that is at least 3 years in the making and that makes UIKit/AppKit/Autolayout and View Controllers (!) obsolete.
- Live editing and previewing without the need to build and run the code (Xcode Previews). It works for any kind of code, even with ObjC/UIKit!
- Data driven. When a model changes, the respective view is always regenerated
- DSL based, which means it works great with versioning systems
- Support for bindings. This is not like Cocoa bindings, but a whole new system
- New reactive framework called "Combine" backing up SwiftUI
2. Sign in with Apple
- Support for anonymized (per bundle / bundle group) IDs, so that developers can have a gateway to the user (via their Apple ID), but not to their actual personal data
- Support for Biometrics and two-factor authentication
- Support for all platforms, including the web
- Not tracked by Apple
- Antifraud algorithms (on device) let the developer know about how confident the system is that the user is real
- It will be mandatory for apps providing social logins to include this option as well
3. iPad OS
- Enhanced multitasking capabilities
- Sidecar introduction, that is you can use an iPad as an external Mac monitor - including Apple Pencil support
- You can port iPad apps to the Mac easily (via Project Catalyst / UIKit for the Mac)
4. Dark Mode
- Introduction of a new design language to facilitate better adaptations to such modes
- All iOS icons have been redesigned as vectors. They can be used as custom fonts, which means they support different weights, etc.
- They are publicly available as “SF Symbols” (A new separate Mac app to browse the symbols is available)
- Developers can also make their own symbols
- New system colors. The idea is that if you stick to system defined semantic colors, you get dark mode for free
5. Augmented Reality (AR)
- Introduction of RealityKit and Reality Composer
- Physically based live rendering and design tools for projecting highly realistic scenes onto the camera feed
- People occlusion
- Realtime motion capture (with a simple RGB camera. No special equipment)
6. Swift Packages
- Xcode support for Swift Packages (through GitHub) for all platforms and targets
- Will essentially make Cocoapods / Carthage obsolete in the future
7. Machine Learning
- New CreateML app for the Mac for training models (transfer learning)
- Support for numerous categories (image, sound, sensor data, text, tabular data, and more)
8. Location Permissions
- New option in permissions for “Just once”
- At the first location request on the background, the system asks user for explicit permission
- The system informs the user periodically about each app’s tracking history via a popup with a minimap
9. Xcode Simulator
- Numerous speed and performance enhancements, mainly by supporting Metal