Skip to content

DevTools usability and design review #2890

@CodemateTechAgency

Description

@CodemateTechAgency

Introduction

Hello! At Codemate, we’ve been doing an initial design review of the Flutter Inspector DevTools, to identify some issues and potential improvements.

Our usability and design team evaluated the DevTools from the perspective of a novice user with the key priorities of ease-of-use, intuitiveness and visual structure. The team interviewed our own Flutter developers for deeper insights and to gain a broader understanding of how developers actually use the tools in their day-to-day work. We also researched and benchmarked the Flutter DevTools against other similar development tools for web and mobile.

It’s clear how important the DevTools are to our Flutter developers, with a particular focus on the Flutter Inspector, which is where we’ve concentrated our research.

Examining the Inspector, the team found various issues concerning the clarity and intuitiveness, as well as a few bugs and glitches. The inspector presents lots of important data, which is easily lost in visual clutter. By addressing these issues and adding few quality of life improvements we could make the inspector easier to understand.

Widget Tree

Helping users find widgets

Currently the widget tree is hard to visually scan through and developers find it hard to locate widgets within the tree.

Suggestions

We could fix this by providing more visual guidance, such as color coding the circle with the letter based on:

  • Different depths
  • Different widgets
  • Different widget families (i.e accessibility, gestures, texts)

We could also highlight the widget within the running app when the user hovers over an item in the widget tree.

Visual link between widget tree and layout explorer

There’s currently no visual link between the widget tree and layout explorer. We also feel the coloring of the Flutter Inspector might be confusing for users.

Suggestions

  • Matching the colors of the layout explorer and details tree with the opened widget in the widget tree
  • Other ways of color matching such as different widgets or widget families

Layout Explorer

Make the Layout Explorer less busy

The most common feedback from our developers regarding the Layout Explorer is that it’s too busy and cluttered with data. We need to evaluate what information is most important for developers to ensure they can work as efficiently as possible.

Enhance the clickable areas in Layout Explorer

It’s unclear which elements within the Layout Explorer are clickable, and which are just labels.

clickables_devtool

Suggestions

  • Use a clearer dropdown design to make them stand out more.
  • Ensure that the dropdowns always have a label to tell what the dropdown does. We feel the user is currently required to guess what some of the inputs do.

Rotated text labels

We feel the vertically rotated labels are difficult to read, requiring the user to tilt their head.

unnamed

Suggestions

  • Avoid having labels that require tilting your head to read them.
  • Rearrange the layouts so that labels can be rearranged or repositioned to be easily readable.
  • Consider the content that needs to be shown here
  • Evaluate if showing “width x height” in the middle of the component would make more sense
  • Evaluate clarifying the box constraints display.

Remove unnecessary repetition of data from the Layout Explorer

  • Currently the layout explorer has a lot of the data duplication.
  • We need to figure out a consistent way of displaying the area measurements so that the user can get the wanted values of a component with a quick glance.

Delay when changing values

There's a slight delay when clicking boxes/dropdowns in the Layout Explorer:

delay_devtools

This makes the DevTools feel sluggish to use and affects the overall user experience and the quality of usage.

Details Tree

The Details Tree is a powerful tool when you really need to look into the specifics of your code. Based on the hands-on experience and feedback we received, we feel that currently you can get a bit lost in the huge amount of data displayed and no way to find or emphasize what you are looking for. Also a few scrolling issues diminish the user experience.

Screenshot 2021-04-08 at 12 21 29

Suggestions

Enhance the details tree readability

  • Make a clear separation between label and value with typography and coloring.

Add search/filter for details tree to find and highlight the data you’re looking for, similar to Chrome’s inspector

  • Currently the “Details Tree” is quite cumbersome to find things without knowing what you’re actually looking for. By adding a simple search input for the “Details Tree” we ensure that even novice users easily find the view they’re looking for.

Scrollbar issues in details tree

  • Vertical scrollbar appears in the middle of the area when selecting an item in the widget tree.

unnamed

  • Horizontal scrollbar stays visible even if there is no content to scroll to.
  • The details tree's bottom row goes under the scrollbar, so it's hard to click that expand arrow:

unnamed

Buttons and icons for debug toggles

Our developers didn’t understand what some of the debug modes did, or what their use cases are.

Screenshot 2021-04-07 at 15 36 19

Suggestions

  • Provide clearer access to documentation about what problem each debug toggle is useful for solving. This could be achieved via explanatory tooltips with links to further documentation.
  • Update iconography to be consistent (style and use of color).
  • Consistent use of margins and paddings everywhere (buttons, icons, list, etc).
  • Ensure that the buttons have tooltips when they’re shrunken down into an icon. Currently some of the buttons are missing their tooltips when shrunken down in size.
  • Increase the contrast on selected view mode toggle buttons (repaint rainbow etc).
  • The grouping of the toggle buttons feels pretty random. The context of the toggle buttons is too obscure at the moment. We could easily improve this by labelling the groups for example.

Explore trying out different values in the details tree

We suggest exploring the possibility to be able to try different values for widgets from the details tree as well. Similar to Flutter's experimental HotUI feature or Chrome’s CSS editor. This would allow users to quickly experiment with, for instance, changing font sizes or colors from within the DevTools.

General look and feel

Content area standardization

  • Make the content areas similar in structure. Include content area specific actions inside the area borders (refresh, tabs, expand collapse, etc).
  • Contain the action within the context of their use to make the top area of the DevTools a bit more structured.

Improve color contrast

  • Currently the DevTools has some color contrast issues all around (widget tree icons, light mode, tabs). We could define a more suitable color palette.
  • This applies to both light and dark modes.

Accessibility

We couldn’t access the DevTools via the VoiceOver screen reader on macOS, despite other Flutter websites correctly working with it. We feel this should be a priority to fix, in order to make the DevTools accessible to visually impaired users.

Flutter Web issues

We are aware that these are Flutter Web issues, but they are worth mentioning here, since they greatly affect the usability of the DevTools.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2important to work on, but not at the top of the work list.inspector-2.0-polishPolish work that can be tackled once Inspector 2.0 has landed.polishscreen: inspectorusability

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions