Despite Apple's message that the iPad Pro can be a viable PC replacement because, among other features, it natively supports a dedicated external keyboard, its software still isn't fully optimized for keyboard control. This isn't surprising at all: iOS was designed with multitouch in mind; as long as the iPad shares a common foundation with the iPhone, it'll always be first and foremost a touch computer. The iPad Pro line, however, is nearing its third anniversary, and its external keyboard integration still feels like an afterthought that's hard to reconcile with the company's marketing.
Take multitasking for example: after three years, Split View, one of the iPad's marquee exclusive features, still can't be controlled from an external keyboard. If you buy an iPad Pro with a Smart Keyboard and assume that you're going to be able to assign an app to a side of the Split View, or maybe resize it, or perhaps change the keyboard's focus from one side to another...well, do not assume. As much as Apple argued against vertical touch screen surfaces in laptops years ago, the iPad Pro ended up in this very situation: if you want to take advantage of all the great features iOS 11 offers to pro users, you will have to take your hands off the Smart Keyboard and touch the screen. There are dozens of similar instances elsewhere in iOS. For the most part, the iPad treats external keyboards as inferior, bolt-on input devices.
It's with this context that I want to cover Things 3.6, a major update to the task manager's iPad version that gives us a glimpse into what Apple could do with external keyboard control on iPad if only they understood its potential.
I've been able to play around with Things 3.6 on my iPad Pro for the past couple of weeks. This isn't another "keyboard-centric" update that only adds a handful of shortcuts to trigger specific commands. Instead, the developers at Cultured Code have focused on an all-encompassing keyboard control framework for the whole app, from task lists to popovers and multiple selections. With version 3.6, Things has the best implementation of external keyboard support I've ever seen in an iPad app.
The idea behind Things 3.6 is that you should be able to fully interact with and navigate through the app without ever leaving the keyboard.
There are a few key concepts at play here. First, there's selection of tasks in the app. Due to the lack of an external cursor on iOS, most iPad apps don't support creating a new selection with the keyboard. Unless you're dealing with a text view (which supports Apple's default keyboard shortcuts out of the box), iPad apps usually require you to touch an item to select it; only after a selection is active can you invoke one of the available keyboard shortcuts to execute a command. It's this constant back and forth between the screen and keyboard that makes certain pro apps so cumbersome to use on the iPad compared to the Mac.
Things 3.6 obviates the need to touch the screen to select items by letting you press ↓ to select the first item in any view of the app, which gets highlighted in blue. It couldn't be easier. As you can imagine, you can then navigate among multiple items with the ↓ and ↑ arrows. You can extend your selection up or down with
⇧↑/↓, and even extend the selection to the top or bottom of a list with
⇧⌥↑/↓. You can also quickly select or deselect everything at once with
⌥⌘A, respectively. These options alone sound remarkable for an iOS task manager, but we're barely scratching the surface of what you can do with the keyboard in Things 3.6.
Once an item is selected, the keyboard can control everything a finger can normally do in Things. Here's a practical example: after selecting a task by pressing ↓, you can reschedule it by bringing up the Jump Start menu with
⌘S. This is a popover that most iPad apps wouldn't treat as keyboard-enabled; in Things 3.6, you can either start typing a date in natural language and accept it with Return, or you can select each different option of the popover with the arrow keys. Once you reach the mini calendar, you can even use ← and → to move between days horizontally. And if you want to dismiss the menu, you can use
⌘. – a useful shortcut convention that Cultured Code adopted from the Mac throughout the entire app as a replacement for the ESC key.
The idea that the user should be able to select and control every popover and every field of the UI permeates Things 3.6. When a task is selected, you can press Return to expand it inline (this animation has always been one of favorite design touches of Things). In the task editor, you can Tab through the title, note, date, tag, checklist, and deadline fields. There's a blue highlight around fields that don't show a blinking cursor, so you instantly know which one is currently selected and waiting to receive input from the keyboard. Pressing Return again either activates or expands a field.
Even more impressively, fields that open an additional layer of UI within a task can also be controlled from the keyboard. Pressing Return on the checklist button, for instance, creates a line of text as your first checklist item; you can add more by typing and pressing Return. The same shortcut that completes a task in Things –
⌘K – can be used to complete an individual checklist item when it is selected (or archive a heading in a project). These techniques can be used in the Quick Entry panel too, which you can invoke via
⌃Space, interact with using Tab, Return, or the arrow keys, and dismiss with
⌘. if you need to cancel.
The breadth and depth of Things' keyboard-powered app navigation is something I've never seen in any other iPad app before. You can move tasks to different lists and control the Move dialog with the keyboard (same for the Tag window); you can jump to the top sections of the sidebar with dedicated keyboard shortcuts; you can filter lists with a specific tag (something I do all the time for my Writing tasks1); you even have the ability to batch select multiple items and rearrange them in a list, tag them all at once, or reschedule them. You have to see it in action to believe how much you can accomplish in Things 3.6 from the keyboard alone.
Then there's Type Travel. This feature, which originally debuted in Things for Mac, is like a built-in Spotlight that lets you search for any task, view, or element of Things and instantly open it. Type Travel doesn't require a special activation method: to use it in Things for iPad, just start typing as if the screen you're looking at was an active search field. There are no key modifiers to press. As soon as you type a character, results appear in the middle of the screen, each of them carrying a different glyph whether it's a task, a tag, or a list. You can keep typing to refine your query, page through results with the arrow keys, and jump to a specific item by selecting it and pressing Return.
The combination of Type Travel and external keyboard awareness of essential interface elements makes using Things 3.6 an experience unlike any other on iPad. In my years spent testing and reviewing third-party iPad apps, I've used dozens of apps that, despite being labeled as "pro", walked the uncomfortable line of offering a good selection of keyboard shortcuts while ultimately forcing you to touch the screen to navigate or confirm certain actions.
Things 3.6 upends this tradition, not because it has the largest number of keyboard shortcuts ever seen in an iOS app (apps like OmniOutliner or MindNode probably have more in terms of sheer quantity), but thanks to a pervasive keyboard control that supports selection of items, navigation, multiple layers of interaction in the UI, app-wide searches, and more. After using Things 3.6, I want all my most-used iPad apps to behave like Cultured Code's task manager.
Shortcuts and More
While I appreciate Things' prioritization of keyboard navigation and interaction more than regular shortcuts, there are a few additions I want to call out.
⌘., which acts as a replacement for ESC on iOS, is one of my favorite surprises of this update. As it turns out, Cultured Code has simply adopted a shortcut that is already universally supported in the majority of iPad apps (and which is available on macOS too). I didn't know about this before Things 3.6. You can use
⌘. to dismiss a search in Ulysses, for instance, or the message composer in Mail, or a draft in Tweetbot. I still would like to see a new Smart Keyboard with a proper ESC key, but
⌘. does the job pretty well.
In terms of managing tasks and projects, I've been using
⇧⌘T to assign a tag to a task and
⇧⌘M to move it to a different project. Inside the tag popover, you can use
⌥Space to toggle the selected tag on/off (though it's easier to just type a tag's name). There are even handy commands for dates, such as
⌃] to add 1 day to a start date or
⇧⌘D to add a deadline. For the full list of keyboard shortcuts supported in Things 3.6, I highly recommend reading Cultured Code's cheat sheet.
There are also some non-keyboard changes in this update worth noting. You can now apply tags and deadlines to multiple tasks at once; the option, which works on iPhone too, can be activated by tapping the ••• button after selecting multiple tasks.
On the iPad, drag and drop can be used to move tasks to different projects and areas in the sidebar. Unfortunately, Cultured Code is still using their custom flavor of multiple item selection, so you can't add more tasks to one that you're already dragging by tapping on them once; instead, to create a multi-item drag and drop stack, you have to manually select items with Things' selection mechanism, then drag them away. Finally, Things on iPad now supports undo and redo (which, as you can imagine, belong to
⇧⌘Z on the keyboard).
I've only run into a handful of scenarios where multitouch input was necessary to dismiss a screen or interact with a menu in Things 3.6. Date pickers can't be scrolled with the keyboard and you can't open hyperlinks contained in a task's note unless you tap them. These are small issues that do not compromise the big picture of this update. In an App Store where developers of certain iPad apps still think they're supposed to be making "lighter" versions of their "more serious" Mac counterparts, Cultured Code deserves praise for thinking deeply about the hard problems of item selection and app navigation on a touch-first device that can transform into a quasi-laptop form factor.
A true "pro" app for iPad – one that aims at reaching desktop-class levels of power and versatility – should cater to the hybrid nature of the iPad Pro as a computer that blends multitouch and external keyboard integration. Despite not being usually regarded among pro software for iOS, Things 3.6 is the first iPad app I've tried that embraces the keyboard like a Mac app would. With this update, Things for iPad essentially works just like Things for Mac; if anything, the iPad app has the advantage of multitouch input, which is arguably faster and more intuitive than a mouse cursor. It's the best of both worlds.
As you've probably concluded by reading this article, I love that I can finally use Things on my iPad without taking my hands off the keyboard. It feels like the app doesn't punish me for using an external keyboard, as is unfortunately the case with other iPad system features. There's a peculiar sense of nerdy pleasure in having an iPad app that is so well integrated with an external keyboard; it's almost a "We told you so" moment in response to Apple's poor implementation of keyboard control on iOS three years into the iPad Pro era.
Which is why I think Things 3.6 is also a statement of sorts – a message to developers of iPad apps, including those at Apple, to extend their keyboard integrations. Things 3.6 may be just an app, but the idea of complete keyboard control should be applicable to every area of an operating system as well. Can you imagine if iOS worked this way too?
- Though I wish the tag green filter bar could be more easily dismissed with the keyboard. ↩︎