[Case study]
anroid for cars app library:
creating a simple and efficient way to develop car apps
for Android Auto
Design lead
product definition
research
ui design & Prototyping
Partner relationships
developer facing documentation
Project: Develop an SDK (development kit) for car app developers.
Problem statement: The number 1 user dissatisfaction on Android Auto was lack of apps.
Existing ways to develop car apps required developers to design for various screen sizes, input models (rotary, touch etc.) and driver distraction requirements, bringing high cost of development and maintenance.
Android Auto needed to provide an efficient way for developers to create car apps, so that users had access to a wider app ecosystem.
Process: Initiated mid-year 2019 and launched to public early 2021. Program had an ambiguous scope at the beginning and involved close coordination with external partners as well as internal Auto/Google teams. We developed and iterated alongside early access partners, went through closed and open user testing; released as part of Jetpack in early 2021.
My role and responsibilities: I have been the UX lead and product designer for this program since early on. Worked closely with cross discipline partners to define the product vision. Collaborated tightly with a small team of designers, researchers and engineers executing the vision via agile development.
final product snapshot
A global set of apps created with Car app library v1
The Android for Cars App Library allows developers to bring navigation, parking, and charging apps to the car. It does so by providing a set of templates designed to meet driver distraction standards and taking care of details such as the variety of car screen factors and input modalities.
Project highlights
starting in ambiguity, and validating ideas early
The needs and end goals were known. But, where to start and how to scope the problem was ambiguous. There was no prior examples for the 2 new app categories, parking and charging. And very few for the navigation category.
We were struggling with the direction to take for developing the library capabilities. To understand the breadth of user needs and app features, I audited mobile apps from the 3 categories. Created prototypes of sample architecture and user flows for in-car apps.
I observed a number of common UI patterns and components between all experiences. Using that knowledge, I collaborated with my team to develop the final direction:
Create a set of templates with enough flexibility to let developers pick & choose which component they want. Idea was to start here and open up the capabilities as needed. This approach meant we had a finite set of UI features to build (fast) that were based on known user needs and tasks.
From there on, we developed an initial set of templates and component rules. I worked with early access partners to get their input via weekly meetings. This tight collaboration enabled us to get deep insights on developer and end-user needs, constantly validate our hypothesis and iterate fast.
2. Design for flexibility that meet global user and developer needs
While working with early access partners, we observed how different driving conditions and user behaviors across the globe affected product needs. We strived to enable as much flexibility for developers as possible, so they could answer their own user and product needs.
Early on, I advocated to enable developers to create their own app architecture and user flows. This meant that any template could be used for the start or end of a task; and the same task could be designed via different template sequences. This approach came with its own unique challenges, especially for safety. I worked closely with engineers and safety experts to create a generalizable safety framework that was embodied in the SDK. As a result, we empowered developers to create car apps without being driver distraction experts.
Routing card layout examples. Some apps have lane guidance on the top, some in the middle. Some favor distance while others have cue text as the primary text.
Another important part of the design was components. Generalizing components for a variety of apps, while enabling enough flexibility was challenging. I depended on balancing user and developer needs to come up with the information hierarchy and rules.
For example on routing card, there were several viable layout options. Research showed that users primarily needed the immediate step (distance and road/exit name). This was also the most common implementation by developers. We learned that lane guidance was only important in some countries and to some developers/users. I designed the component to feature immediate step as the first and mandatory section; and lane guidance as the second and optional section.
Example variations of routing component
Design process took multiple iterations to get all the variations and rules right. In the end, my initial template and component designs evolved as a result of tight partnerships with developers and fast iterations by the team.
3. developer facing design guidelines to aid all developers and designers
As we were opening the library to general accessibility, I worked closely with a UX writer and visual designer to create our developer facing Design guidelines.
These guidelines aim to help all developers and designers understand library design capabilities, rules and various car app best practices. They are derived from our close collaboration process with early partners throughout the design/implementation phases. Here, we had the unique advantage of knowing the questions new car app developers/designers would ask. This is an ever-evolving resource I own and iterate with the team.
impact
There are currently 200+ apps built with the library. By enabling a set of global developers, we observe user growth in various countries where Android Auto used to have small market share in.
Developer feedback have also been very positive. Partners reported building apps with very little handholding, even in a matter of days. Signaling our success in creating an efficient and simple way to build car apps.
What’s next?
Other than the healthy backlog of features we have, at Google I/O 21 we announced that Car app library is soon being enabled on Android Automotive OS. Bringing our growing car app ecosystem to all car platforms.
From early on, I have been advocating for a unified library across car platforms; as app-related user and developer needs rarely differ. With this strategy, developers can design a single car app and deploy it across platforms. I am currently leading the efforts to make this vision a reality.