Hardware Keyboards
With iOS 7, Apple introduced support for programmable shortcuts on external Bluetooth keyboards. While iOS supported system-wide commands for text formatting and undo back in the early days of the iPad, iOS 7 allowed developers to add custom shortcuts to their apps.
Adoption of the feature didn’t work out as expected. Apple was inconsistent in their usage of keyboard shortcuts: some apps didn’t support them at all; others had full sets of shortcuts matching those available in the same app for OS X; others, like Messages30, only supported some of the shortcuts available on the Mac. Even worse, there was no API to inform the user about keyboard shortcuts: while Mac apps could use the menu bar as a place where users could click around and learn shortcuts, the same wasn’t the case on the iPad. Support for keyboard shortcuts in iPad apps was sporadic, poorly documented, and we even tried to create a webpage to showcase shortcuts supported by popular apps. It’s fair to say that the class used to register keyboard shortcuts, UIKeyCommand, failed to gain traction among users and developers in 2013.
With iOS 9, Apple has reworked the OS’ support for external keyboard shortcuts. In the process, they’ve given developers a unified way to teach users about shortcuts and they’ve also brought over some great time-saving commands from OS X.
Keyboard shortcuts can be specific to a single view controller and apps can now display a cheat sheet with a list of supported shortcuts. The cheat sheet, called Discoverability, is an overlay that appears in the middle of the screen upon holding the Command key on a keyboard. In Discoverability, each app will be able to list the shortcuts it supports with labels and required key combinations. Developers can choose to assign labels to keyboard shortcuts with the optional discoverabilityTitle
property of UIKeyCommand; while an unlimited number of shortcuts can be set in an app, only those with an associated label will be displayed (according to the order set by the developer) in the Discoverability overlay.
Discoverability is a notable change as it helps exposing keyboard shortcuts in a consistent way: instead of having to read through an app’s About page, you can press a single key on the keyboard to get a system-wide cheat sheet for each app that exposes keyboard shortcuts.
Assigning shortcuts on a per-view controller basis is also a welcome change from iOS 7. In iOS 9, developers can program subsets of shortcuts that are enabled in specific views of their apps, which will then appear in Discoverability only when you’re in that section. In Safari, for instance, the list of shortcuts will be slightly different depending on whether you’re on a webpage or the browser’s Favorites view31; in Notes, the Find Note shortcut will only be supported in a list of notes and not in the main view of the app.
This is another instance of iOS 9 adopting the best features of OS X without their burden: because shortcuts are only listed in Discoverability when they can be used, there’s no concept of unavailable, grayed-out shortcuts in iOS 9. If you see a shortcut in Discoverability, you can try it and it’ll do something. In the months I’ve spent exploring the keyboard shortcuts supported by Apple in iOS 9, this has proven to be a better implementation than the often-unavailable, non-contextual shortcuts listed in the menu bar drop-downs of Mac apps.
The increased flexibility of UIKeyCommand and Discoverability should make for a quicker adoption of keyboard shortcuts among third-party apps. As far as Apple goes, they’ve done a good job at supporting shortcuts in their apps and being more in line with what they offer on OS X. Messages can now finally send by pressing the Return key; Mail, Safari, and Calendar offer a good selection of shortcuts to navigate the UI, switch between views, and perform actions; some apps don’t have shortcut support (Podcasts, Photos, App Store), but it’s no big deal.
Where Apple also surprised me is in the Home screen shortcuts that are actually available as system-wide options. Go to the Home screen, press Command, and notice how iOS 9 supports Command-Tab and Command-Space? Those aren’t just commands you can use on the Home screen: you can Command-Tab through apps and open Search from anywhere on iOS 9.
Modeled after the equivalent shortcut for OS X, Command-Space allows you to launch iOS’ Spotlight. However, unlike OS X’s Spotlight, the search panel on iOS doesn’t come up as a system-wide popup; instead, pressing Command-Space will take you to the Spotlight section that is normally accessed by swiping down on the Home screen (more on this later). Essentially, Command-Space acts as a more traditional implementation of the dedicated Spotlight key that iPad keyboards from third-party companies have exhibited for the past few years. It would have been nice to see a modal Spotlight available across the entire OS; for now, this will do – if only in terms of muscle memory for those coming from OS X.
The Command-Tab app switcher is a real treat. If you’re used to Command-Tabbing on your Mac, you’ll feel right at home on iOS 9 for iPad. Pressing the shortcut will bring up an overlay with app icons (nine in landscape, six in portrait), which you can cycle through by pressing Tab again; like on OS X, Command-Shift-Tab cycles through apps in reverse order.
There is one key difference between OS X and iOS 9 for Command-Tab: while OS X employs the Command-Tab switcher to enable users to move across open apps, the concept of “open” app is more blurred on iOS. For this reason, Apple chose to bring Command-Tab to iOS as a way to jump between recently used apps.
Like the iOS app switcher puts the last app you used front and center in the UI, hitting Command-Tab on iOS 9 immediately highlights that app, so you can lift your fingers off the keyboard to switch back to it. Therefore, it’s best to think of iOS 9’s Command-Tab as a faster, keyboard-based version of the system app switcher, limited to the most recent apps and aimed at letting you jump between them, regardless of their state.
The improved support for external keyboards in iOS 9 is a step in the right direction. iOS 7 was a timid and inconsistent attempt at offering shortcuts for apps. iOS 9 feels like a more complete thought around external keyboards and their relationship with OS features and apps.
However, for two step forwards, there’s one step back for Apple here: new multitasking functionalities such as Picture in Picture, Slide Over, and Split View don’t have any sort of integration with external keyboards. I suppose that these new features have led to more questions for Apple engineers, but this is not an impossible problem to fix. A way to activate Slide Over and Split View and Picture in Picture shortcuts would help a lot.
There’s still a long way to go for iOS to gain full independence from touch when a physical keyboard is connected, and we’ll probably never get to that point. iOS is, ultimately, a multitouch platform and external keyboards are an option – they’re not meant to be treated as the only input system of an iPad.
From such standpoint, it’s easy to pardon Apple for not supporting the new multitasking features, Control Center, Notification Center, navigation in the search page, or actionable notifications with keyboard shortcuts. The deeper you get into iOS’ architecture, the harder it becomes to justify an input method that doesn’t involve touch.