As you sequence templates into task flows, choose the templates that will best fit each task and strategize to keep task flows short.
While the templates in the app library are designed for usability while driving (except those that are “parked only”), it’s also important to keep task flows short. Keeping task flows to 5 steps or fewer helps drivers to keep their attention on the road.
As you design your flows, make sure you understand how to:
- Count steps (Step counts and refreshes.)
- Sequence templates appropriately (Template order in task flows, Add subflows)
- Gain flexibility in task length via Adaptive task limits, a feature that allows task flows greater than 5 steps under certain circumstances
- Use template features that promote task efficiency, such as interactive maps (features are detailed in the Templates section)
Keeping task flows short
To minimize driver distraction, keep task flows as short as possible.
A new task starts when the user performs any of the following actions:
- Lands on (or returns to) the app’s landing template
- Chooses an action that opens another app
- Lands on the Navigation template (in navigation apps)
To minimize required driver attention, keep task flows to 3 steps or fewer when possible (4 steps or fewer for flows involving purchases). When flows are longer than 3 or 4 steps, consider providing shortcuts back to earlier steps.
Except as noted in Step counts and refreshes, the limit is 5 steps, including the starting and ending steps.
Template order in task flows
When creating task flows, keep the following template ordering considerations in mind:
- Avoid List and Grid templates for step 5. If the flow involves 5 steps, the final step must not be a list- or grid-based template (examples of acceptable templates include Navigation, Message, and Pane).
- Don’t put 5 Lists or Grids in a row. Apps should not create flows with 5 list-based or grid-based templates in a row, even if one of those templates is in a subflow.
Step counts and refreshes
To design task flows that don’t exceed the 5-step limit, it’s important to understand how steps are counted for each flow.
The step count is incremented whenever one of the following occurs:
- A new template is shown
- The same template is shown with new content – unless the new content is a refresh of existing content, as defined in What is a refresh?
The step count decreases by 1 if the task returns to the previous view with the same content.
For more examples of how step counts would be incremented in specific task flows, see Sample flows.
What is a refresh?
Refreshes are updates to a template’s content that don’t increment the step count. Refreshes are almost always app-initiated. The only exception is when a user refreshes a list with the refresh button on the Place List template.
What qualifies as a refresh depends on the template and whether the Adaptive task limits feature is enabled. If this feature is enabled, the definition of what qualifies as a refresh is widened for some templates (see the following table), because the refreshes are throttled during drives to minimize distraction.
For example, with the feature enabled, updates that change the number of rows on list- or grid-based templates can be considered a refresh, as long as the title and any section names stay the same. If the feature is not enabled, changing the number of rows is a step count.
For examples of refreshes, see Refresh vs step count example and Sample flows.
Template type | What qualifies as a refresh | What qualifies as a refresh when Adaptive task limits feature is enabled |
---|---|---|
Navigation, Sign-in*, Long Message* | Any content update | Any content update |
List, Grid, Map, Pane, Place List (map), Place List (navigation), Route Preview, Search, Tab | See the template restrictions for each template | All updates where the layout stays the same, meaning:
|
Message | Only updates that don’t change the title and message (for example, adding a button) |
Refresh vs. step count example
In this example, the Adaptive task limits feature is enabled, so any update with the same title qualifies as a refresh.
Because only the rows updated on one path, this would be considered a refresh. If Adaptive task limits isn't enabled, this will count as a step. On the other path, the title changed, which increments the step count.
Adaptive task limits
Adaptive task limits is a feature that lets apps have task flows with more than 5 steps under certain controlled circumstances, such as when parked or when refreshes are being throttled while driving. Availability depends on location and discretion of vehicle OEMs (see note at right).
When this feature is enabled:
- Task flows > 5 steps are allowed while parked (if driving, they will be paused after the 5th step and can be resumed when parked)
- Refreshes are throttled during drives to be less distracting, so the definition of refresh is expanded to include more types of updates (see What is a refresh?).
When the feature is not enabled:
- Task flows must not exceed 5 steps, or the app will crash
- Refreshes are not throttled during drives so the definition of refresh is not expanded
How refresh throttling works
With throttled refreshes, apps can refresh the template as often as they want, but the time between the refreshes is spaced out to minimize distraction. If multiple refreshes are sent during the throttle period, the latest one is shown at the end of the period.
Interactive maps
Design your app to include zooming and panning for navigation apps. Currently, users can interact with maps via features (such as zooming and panning) in templates specific to navigation apps: Navigation, Route Preview, Map, and Place List (navigation).
Users can interact with maps using:
- Touchscreen gestures, such as swiping to pan
- Taps on specific areas of the map, such as points of interest
- Buttons on the map action strip
- A refresh button that refreshes the information adjacent to the map (currently available only on the Place List (map) template and the Place List (navigation) template)
Refreshing the content next to the map does not add to the step count for a task flow.