Android Studio: Resource Management

Objective

Resources are the images/assets used by android applications. They are foundational to the apps design, usability, and have a direct impact on how much storage is required for an app install.

This makes them an extremely important piece when developing an app. Larger apps have a risk of not being downloaded or being uninstalled from android devices.

With resources having such a high impact on application success this project presents a great opportunity for Android Studio to help developers optimize their app storage and ensure user adoption.

My Role

Lead UX Designer, my responsibilities were:

  • Optimize import, manage, edit, and use resources pathways
  • Helped established business goals and mapped to user/customer needs
  • Mapped the user flow and designed wire-frames
  • Creating high fidelity mocks and prototype flows
  • Assisted research team with user studies

Other team members

  • 1 Researcher
  • 1 Technical Writer
  • 2 Project Managers
  • 2 Engineers

Journey

Where we were

Originally, there was no way to view resources visually. Users would only be able to see what resources existed by going through the project tree structure panel and finding a ‘res’ folder. From there, users could view resources one-by-one.

Along with that, if you are creating new resources you would need to add a resource one by one. This can be tedious and time consuming, especially with app developers just getting started. Each resource’s creation process varies depending on what it is. This creates a large learning curve for developers today.

This reality presented an interesting opportunity for design to step in a solve a key aspect of android app and game development.

Outlining pain points and OKRs

Customer pain points

  • There is no central location to create & manage resources
  • Importing & editing a resource is difficult and unintuitive
  • Discovering resources is difficult
  • It is difficult to manage Android fragmentation
  • Wizard flows are bad UX, creating these situations

OKRs / User experience goals

  • [P0] Import a resource without leaving studio
  • [P0] Display all available resources
  • [P1] Redesign the resource picker
  • [P2] Automatic synchronization of external resources

High fidelity solutions

Below breaks down some of the key solutions that I created to solve the above OKRs. I focused on what was done given specific NDAs within Google. Please reach out to me if you’d like more context.

1 – Enabling resource import and multi-resource creation

When we look at what happens during a resource creation, we needed to understand the hand-off between the android app developer and their designer. Typically it follows this flow:

  1. The designer would provide their developer a vector formatted asset (typically SVG)
  2. The developer would need to converted he provided asset into an .xml file. These are the types of resource files that work within an android app.
  3. If the app is going to be working cross region or across multi device the developer would also have to create different “densitys”. This refers to a resource having different files to support different devices, it is done to optimize app load time pending on the location. Big example is less high res versions being used for low end devices in third world locations.
  4. Dev would repeat this process for every asset.

If you take this flow and expand it to how many icons, visuals, animations, strings, colors, etc that are part of an app you can imagine that this can take a long time. It is also time that often is not rewarding to the developer, instead becomes busy tedious work.

So, in order to solve for key user pain points and the P0 OKR, I designed an importing flow that would enable developers to easily drag and drop or bring in all resources needed for their android app.

This workflow does that for the developer and prevents them needing to do the heavy lifting.

This flow leveraged industry standard concepts as well as optimizing around direct feedback from our customers. They want to spend little time on doing this and leave it all on bringing in what their designer provided.

2 – Viewing and managing existing resources

Now that the developer has imported all resources they will need an intuitive way to view and leverage them within their app. Below showcases the experience I designed which focused on providing an interactive and visually informative panel within Android Studio.

The use of a panel falls standard guidelines within our product ecosystem as well as enabled developers a simpler more intuitive way to interact with their assets. You will notice this panel has multiple tabs within it and the slides below will go through some of them. The reason behind this is because resources within android include but not limited to: Drawables (icons), layouts, colors, strings, navigation, Style, and font.

The organization of the tabs was determined by usage over time, focused more on what is high usage and continued usage over time.

Breaking down the tile pattern

With this design I had to create a new tile and list pattern that would maintain its clarity and usability with different screen sizes, panel size changes, and resource types. A key aspect focused on how you showcased different resource types within the same view, even a resource like drawables can have different variations of a drawable and each would have different use cases.

1 – Breaking down the list

Here I am showcasing how different drawables can be represented within a list component as well as as how states can play a part within a list. States like warning, hover, clicked, and new.

2 – Breaking down the tile

Along with the list views we needed to support the tile view itself. Ensuring it worked across a range of tile sizes and requirements.

Along with know how a tile can look we needed to know how a tile would react to size changes. These changes can be caused by adjusting the size of the resource panel, android studio itself, or from accessibility settings.

Outcomes

This feature was released in Jan 2019

Usage has steadily grown over 2019, grew to 90k 28 DA Users.

When this feature launched, for 3.4 Canary, it found a lot of positive reviews within the canary community. Here are some unofficial announcements/promotions by those canary users:

  • Twitter mention 1 – “You can see a preview of all your apps layouts. Really handy.”
  • Twitter mention 2 – “The new Android Studio Resource Manager has potential to be hugely useful!”
  • Reddit

I also had the experience of presenting this work to developers at Google I/O in 2019, working in the booths area. During this time developers were ecstatic to see we improved a huge pain point within app development.