anroid for cars app library

building a flexible and efficient library for a rich app ecosystem

for Android Auto & android automotive OS (Google)

 
The Android for Cars App Library is an SDK that allows developers to bring their apps into the car screens. 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.
 

my role as the UX lead (~2 years)

Google I/O 20221 announcement.

  • Collaborated with cross-functional leads to set a successful multi-year product strategy, as well as an execution roadmap.

  • As the lead designer I provided oversight to product & motion designers, researchers and writers.

  • I was the point of contact for global app developer and car OEM (manufacturer) partners; working alongside them to validate strategy, gain insights and iterate on design continuously.

 

making sense of the chaos (setting the initial strategy)

 

We had the big picture, but we also had a huge knowledge gap: What do developers need from an SDK? What do end-users (drivers) need from the app experience in the car vs. on other touch points? And a million other questions you have, when you start from scratch. We battled ambiguity together as a team, some useful things we did: .

  • We generated a high number of features through design exercises. Visualized sample user flows, app architectures and component behaviors. This provided the variety needed for a meaningful start; and quickly surfaced shortcomings and strengths of directions.

  • To gain developer and end-user insights, we conducted developer interviews, secondary research and even early user studies that eliminated quite a few of the complex directions we were excited about.

  • We rigorously prioritized the MVP experience and feature set. We ran these by early access partners, had hard conversations about scope and minimum but lovable user experiences.

 
 

this just got real (building the mvp)

Routing card component explorations, showing how it needs to flex from one state to another.

discovering the need for flexibility

 

We observed how different global driving conditions and end-user behaviors affected product needs. I advocated to enable flexibility for developers, so they could answer their own unique user and product needs. We built a template/component set and capability framework that supported creation of unique app architecture and user flows.

 

creating a framework around driver safety

 

A section from developer guidance documentation explaining how to architecture apps with drivers in mind

 
 

One of the biggest challenges was ensuring driver safety while giving developers flexibility. I collaborated with safety and product researchers, engineers and PM to generate a driver-distraction framework that was easy to adopt.

We heard feedback that the MVP version was quite limited, especially with the content limitation. Via further research and design, we opened up the limitations slowly and safely, and kept enabling an increasing number of app categories/developers.

 
 

build, test, iterate… with confidence

We started the design phase with high ambiguity in every single area. Early on, I saw that the UX team needed to understand the technical complexity to a degree. This was not a traditional interface design problem. This was a development kit where the APIs and capabilities engineering team was building needed design input as much as the pixels on the interface. We needed to dive deep and work closely with our engineers.

Technical lead and I constantly optimized our process as team and product matured. For the most part, we designed in sprints, prototyped via design tools & code (with engineers), and tested in the car with users. We also had weekly sessions with early access partners for continuous insights and feedback. All this enabled us to explore, design, build and iterate with high confidence.

Prototype for a browse flow to figure out motion design details

 

onwards and upwards (beyond the mvp)

Library enables developers to build a single app and deploy it on multiple car platforms - Android Auto Projected and Android Automotive OS.

User context and needs did not change, even if the underlying technology changed from phone projection to embedded car OS. So, I firmly advocated for enabling single app design across platforms as our next big goal (alongside planned feature development).

  • This meant familiar interfaces for end-users, and huge efficiency for the developers - most with limited resources.

  • Car OEMs (manufacturers) got a fast growing app ecosystem with minimal effort.

Some of our new challenges were solving for the contradicting needs car OEMs (manufacturers) had. They wanted to customize the app UI for consistency of the infotainment system. However, customization ideas affecting structure of an app was a risk for the unified library vision and developers. I led the team to develop, and get buy-in, for a customization strategy that focused on the UI layer while leaving app user experience intact and letting OEMs create consistent UI for their customers.

Different OEM design systems rendering the same charging apps’ filter view

 

impact 🥳

Apps developed by a global set of developers

Increased Android Auto usage, and app ecosystem growth:

  • Within the first few months of the public release, we got 400+ apps published with 4.5 m MAU.

  • Increased Android Auto projection usage in several countries where we previously had little to no market share in (Korea, Brazil, North Europe etc.).

SDK efficiency and clear developer design guidance:

  • Extremely positive developer feedback, apps built in a matter of days. 

Solid design strategy that set a scalable foundation:

  • Launched on Automotive OS platform with minimal design/engineering effort.

  • Able to add IoT apps instantly and open up to all POI apps (fueling, restaurant finding etc.). Ride share category coming soon.

 

some learnings 🤔 & failures 🙄

 
  • Even when working within an established product, it is still a huge challenge to build something from scratch.

  • We underestimated new dynamics when doubling team size. Twice the people = Whole new team!

  • We didn’t address customization strategy misalignments with leadership fast enough. While I helped course-correct and align, this caused the team quite some churn. Take a moment to get explicit approval/alignment, especially when working with brand new stakeholders.

  • Most importantly, I learned the importance of a tight, open-minded, diverse, respectful and dedicated team. No challenge deterred this bunch.