WWDC 2020 Platforms State of the Union
The developer’s outlook
Mac to use “Apple Silicon”
That’s ARM right? Big Sur runs on ARM chipsets, and allows iOS and iPadOS to run with no changes. But when will we be told something about how the UI might work?
Apple talk about the integration of OS and hardware that will offer synergy between the Mac and iOS / iPadOS.
Advantages of using ARM:
- Power efficiency
Apple will build a family of system-on-a-chips (SOCs) that will serve the applications that are run on Mac systems. Performance will be tied to the different enclosures and physical forms of the host machines.
Apple promise to bring their GPU architecture from iPhone and iPad pro to the Macintosh.
For those Apple developers ready to take the plunge, they will be given
- Developer forums
- Hardware (A developer transition kit)
It looks like Apple will use use LLVM bitcode so they can recompile the app on whatever platform they need it on — meaning that developers only create a single binary that can be run on multiple devices. Rather brilliant.
This is coupled with ahead of time compilation, so the translation happens during install so performance of the application does not suffer.
MacOS 11: Big Sur
The new version of MacOS is called Big Sur, and looks much more like the iOS and iPadOS platforms.
The menu bar now floats on top of the view (UINavigationController, anyone?), and toolbars allow colour to flow through from the background.
Apple are encouraging use of
NSToolbar to enable menus to be automagically formatted and appropriate fonts used — making the theme and feel of the OS familiar to anyone who has used a mobile Apple device in the last few years. Each app can choose (the developer chooses) an accent colour: choose with care designers!
SwiftUI makes it very easy to transfer software over to the Mac — and Catalyst is simply not going away. It is through Catalyst you can use Mac idiom to use the native resolution of the Mac (so now, more than ever, scalable UI is vital). Catalyst Apps benefit from full-height sidebars giving a look much like, well, an iPadOS app.
Trackpad support moved iPad towards a full desktop replacement, as well as multitasking. Navigation today will move the iPad closer to this dream.
Sidebars can be expanded to three columns…
or heirachical icons
The new date picker supports the inline style
and FINALLY A COLOR PICKER!!
This is the type of feature developers love — this does not need much work and can be added easily to Apps — and each of these features also work on MacOS.
Apple want us to remove modal states, and are pushing developers to use these features. Best move ahead then!
The LiDAR scanner has so far been seldom used by applications, even though .support is given in ARKit — giving 3D Depth maps that look much like those from Kinect’s initial release. Architects, Manufacturers and creative professionals are called out as beneficiaries of these features.
The Pencil is a freeform tool that can be used in any
UITextField — so any handwritten word can be used as typed text and then used in either
UIKit. The power of this cannot be underestimated, as this removes the barrier of using the keyboard (although many people still like the soft keyboard) — and for developers these features are given with no work, that is for free.
Apple also seem to want to destroy many drawing apps by adding the logic to detect geometric shapes, and coupled with the new color picker means perhaps some commercial products need to work that little bit harder?
Widgets are all-new using on device intelligence to show pertinent user information in three sizes — and they are available on the home screen. These widgets are written in SwiftUI and work seamlessly across all three platforms (mobile, iPad and Mac). The Widget API —
WidgetKit allows rendering of live widgets in an efficient way (without the host App even running!). Conforming to the
Widget protocol enables
Intents to be used to intelligently surface the relevant information from an App.
Users are able to stack widgets, and using AI the device decides which widget to display at any given point in time.
App Clips are easy to discover for users. The card for App Clips are generated by Apple from the information on the App Store. App Clips can take advantage of Sign-in from Apple for security and privacy, as well as Apple Pay. App Clips are created from the SDK (to keep under 10Mb don’t add analytics!) and are a great way to let users experience a slice of the App — and if the App Clip is upgraded data can be passed that makes the upgrade a pleasure for the user.
Privacy is declared on the App Store privacy page — which can be updated on App Store connect.
The watch now supports multiple complications that can create fantastic interfaces for users — these are
SwiftUI views. These can be customised by users to get the look and feel that they want for their watch.
Xcode works with Big Sur to align it’s look and feel with Apple’s current design language. Document tabs work across the top of the editor, and a dynamic tab switches between files unless they are double-clicked — in which case a new tab is opened to allow streamlined working with multiple tabs.
Code completion is faster, and libraries are available to add your own controls and even share them with other users.
The Color picker has actually been created with SwiftUI — showing the movement of Apple towards SwiftUI.
Lazy Stackviews can be used for faster loading — and the same for lazy grids. Switch and if let now supported within these views.
MapKit and AVKit has new SwiftUI APIs, opening them up for use by developers using SwiftUI.
To help learn one write anywhere SwiftUI now includes structure APIs for Apple platforms — the shared App template. @main identifies the main entry point of the application, and platform native behaviours can easily be integrated in well-built Apps.