It’s not about shared data, it’s about moving and completing activities on whichever device is most convenient.
Continuity Design Principles:
- Activities, not Actions
- Activities, not Data
- Activities travel between devices
- Activities are platform-agnostic
What is an Activity
Activities are the core of Handoff — the technology that enables Continuity — and should represent a task as perceived by the user.
Writing or reading an email; browsing a webpage; playing a song; writing this article; these are all activities you can start on one device such as your phone — perhaps while you’re on your way home — and finish them on your laptop once you have time to sit down.
Activities, not Actions
Handoff is not meant to propagate actions across devices, you wouldn’t use it to mark an email as read, fill out a form or pause a currently playing song.
These actions require a context to be in place, Activities are that context, something that can be resumed at any time on any device.
Activities, not Data
Activities do not hold or carry data, it’s not their responsibility.
They only hold the least possible amount of metadata required to recreate the current application state — which screen and document and ideally not much more.
Continuity does not require an internet connection or any network at all. However, information or documents not on the receiving device will need to be downloaded from either a URL or via a P2P connection between the devices using MultiPeer Connectivity*.
Having said that, Handoff does make it easy to establish a data stream between two native apps — more on that in the next section.
*MultiPeer Connectivity (MPC) is an easy-to-use API for wirelessly and securely exchanging data directly between Apple devices without even worrying about any network infrastructure. MPC powers Handoff as well as the new Universal AirDrop, and is itself an evolution of Bonjour which relies on the mDNS protocol to advertise and browse for services such as Printers over an IP network.
Activities travel between devices
The example above demonstrates transferring the location I’m looking at in Maps on OS X to Maps on iOS and then back again with a new location.
That is a simple app-to-app Handoff but you can also do web-to-web, web-to-app and app-to-web*.
You might be having a certain conversation on GlassBoard for iOS, then sit down on your laptop and resume the same conversation in Safari on OS X just by clicking the leftmost item in the Dock.
Or you might be a designer who wants to preview their work on a real device. You could unlock the iOS device, search for the Mirror app and click start mirroring on OS X; or you could just double tap the home button and select Sketch Mirror from the leftmost corner.
Sketch Mirror would be launched and the changes you do on your laptop instantly streamed onto your device — without internet, or any priorly setup network.
*they’re actually all app-to-app, web URLs just happen to be handled by Safari on both iOS and OS X.
Activities are platform-agnostic
Activities should not contain information that’s tightly coupled to the platform where it originated.
This includes assumptions about screen sizes, the video above illustrates this problem. The Amazon product page has a mobile-specific URL, so when that URL is shared with a different device such as a laptop the webpage doesn’t render properly.
To add insult to injury, in this example you can’t even switch to the regular version or navigate to any other page.
Handoff is one more reason this has to end, a webpage should have a single universal URL.
Handoff is an advanced feature — like AirPlay, AirDrop, Versions — nevertheless it’s something that will be used and that we can design for.
I hope you find this post useful, as usual ping me on Twitter if you have anything to say about this article, and feel free to retweet and share!
If you want me to apply these principles to improve your new or existing product, just get in touch, I’d love to talk!
The source file for the Handoff icon used in this post is available here, and I’ll be adding details about how Handoff handles privacy and security to my iOS 8 Privacy Updates post shortly.