page.title=App Structure for Android Wear @jd:body

Users are used to tapping icons to launch apps. Android Wear is different. A typical Wear app adds a card to the stream at a contextually relevant moment. It might have a button that opens a full screen view for a fast micro interaction, like below, but it just as well might not.

These are the building blocks, ordered by simplicity. You can use one of them or some of them, but we strongly recommend not building apps the user has to launch and quit before thinking really hard about how you could react to a specific location, activity, time of day, or something happening in the cloud.

Many applications will consist of a combination of these views, possibly with connections between them. For example, a contextual card may have an action that launches a more immersive experience. Inversely, an immersive experience may result in a card being added to the stream.

Bridged Notifications

This is the simplest way to get on Android Wear. In fact, your app already does this if it uses notifications. You can add Wear-specific features like extra pages and voice replies by using the new notification APIs.

Developer Docs

Creating a Notification

Contextual Notifications

This is what Android Wear does best; showing users information just when they need it.

Here’s how it works: Your app knows when it is relevant for the user, and when it happens, you trigger a contextual notification. Maybe you’re building a running app that’s relevant when the user is running. Maybe it’s a museum guide that’s relevant when the user is visiting a particular museum. Check out the design principles for more on thinking about your app contextually.

Getting contextual triggering right is one of the most impactful things you can do to craft a great user experience.

The easiest way to do this is to use standard templates for Android notifications. If you decide to make your own ActivityView, we strongly recommend you take a look at the Style guide to make sure you stay consistent with the rest of the device.

Don’t forget to test your triggering thoroughly. Triggering too often can be so annoying that users might end up blocking all your notifications.

2D Picker

The 2D Picker design pattern (available as the GridViewPager component) is useful for showing a range of options or asking a user to make a quick selection. Google search results on Android Wear are a great example of the GridViewPager pattern in action.

This pattern can be used to present a single vertical list, or a “1D Picker”

It can also be used as a 2D matrix of options, as a way of presenting categorized options.

Navigation should be vertical-then-horizontal, not horizontal-then-vertical, and limit the the vertical set to around five cards.

Actions

For actions on each cards, use the Action cards pattern.

Exiting

2D Picker should be automatically dismissed when a selection is made. It may also be exited by swiping back down on the first card, or by swiping left to right on a leftmost card.

Making it fast

A few of our favorite tips on how to make the 2D picker really fast for your users:

Breaking out of the card (with custom layouts)

Developer Docs

Creating Wearable Apps

There are some things you can’t do on a card. Swiping in many directions on a map or a joystick are a few examples. In those cases it might be good idea to momentarily go full screen.

When to go full screen

We highly recommend only going full screen when you can’t do what you want on a card, and quickly exit back to the stream the moment you’re done. That way your app will feel like an integrated part of the system.

Be distinct

Your full screen design shouldn’t look too much like the card stream or it could confuse users. The 2D picker is always available if you need a card-like UI.

Automatically exiting

Many devices don’t have back or home buttons, so exiting is your responsibility as the app designer. Here’s a few examples of natural exits:

Manually exiting

Even with logical exit points like these, some cases may exist where the user may want to immediately exit. This may be common in apps that are used for a longer while. In all cases, the developer should present the option to quit the app on long press using DismissOverlayView. Your design should reserve long press for the sole purpose of prompting to quit.