iOS 13 Includes Detachable Popovers System For iPad


There are many changes coming to iPad with iOS 13, including the ability for apps to have multiple windows. Each window will also be able to contain sheets that are initially attached to a portion of the screen, but can be detached with a drag gesture, becoming a card that can be moved around freely, similar to what an open-source project called “PanelKit” could do.

These cards can also be stacked on top of each other, and use a depth effect to indicate which cards are on top and which are on the bottom. Cards can be flung away to dismiss them.

Some people following up on this story quickly picked up on the fact that the creator of PanelKit, Louis Dhauwe, now works at Apple as if it is somehow meaningful. From my perspective, it’s more of a neat coincidence. Dhauwe joined the Xcode team in late 2018, a wholly separate department from the OS groups and months after the ideation and initial implementation for the upcoming ‘pro’ iPad features had happened.

PanelKit, or draggable panes, are not new inventions. There’s plenty of prior art for Apple to draw upon; they don’t need to hire a specific person to do it. In fact, this is all very much a touch translation of an AppKit concept; detachable popovers are used liberally throughout macOS and have existed since Lion. (Popovers originate from the iOS domain since iPhone OS 3.2, and the AppKit equivalent came later with additional features.)

I love the whole idea and the addition of detachability adds a lot of power to an iPad UI without burning screen real estate or requiring vast diversions from the idiomatic touch/gesture vocabulary. I doubt you even need to add a single element of visible interface to support it. Just show a popover, drag on the titlebar, and boom. You’re in.

A common issue with getting stuff done on the iPad is that you are always digging into and out of menus, dismissing menus only to open them again a minute later. The desktop solves this with multiple floating windows that can overlap and occlude windows not currently being used. A lot of those same benefits can be derived from floating panels. It’s worth restating that no single change will turn the iPad into a competent productivity machine that can rival a Mac. It’s an iterative process, every positive addition eating away at more of the outstanding (and ever-dwindling) pain points.

Of course, any third party app can roll their own detachable popovers today — PanelKit is the proof — but the reality is nobody does because it’s too much effort. Making it a system feature will coerce all developers into using it and make the overall platform experience more intuitive for users with the same learned behaviours carrying over across apps from different developers.

One aspect that is not confirmed nor denied in Rambo’s reporting is whether a detached panel can escape the bounds of the application. This is something that no third-party developer can do. An app today cannot draw outside of its window rectangle, whether it’s full-screen, in Slide Over, or in a Split View. I would hope that Apple’s approach does allow for that capability, particularly for Split View contexts. It means that a user could drag a panel over on top of the sibling app for safekeeping, without covering the active app at all. In my imagination of how this would work, these panels would still be transient such that they go away when the app is backgrounded, but whilst an app is front-most, I think the detached panels should be able to placed anywhere on screen.

I made a rough mockup to demonstrate my vision. In the example, I am busy writing an article in Pages and using Safari in Split View to lookup things for references. I detach the Pages formatting popover and place it to the side, temporarily covering Safari whilst I work on my document. These formatting controls are now always available to me with a tap, unlike the current status quo where it would require repeated taps on the toolbar button to show and hide the modal popover. When I’m done with it, I just flick the popover off the side of the screen and it automatically dismisses.