My favorites | English | Sign in

Google Desktop APIs (Labs)

Gadget Design and Testing Guidelines

To improve your gadget's usability and overall quality, follow these guidelines when designing, writing, and testing your gadget. Another good resource is the Google Desktop blog's tips for your gadget's look and feel. On the non-technical front, your gadgets should follow Google's privacy policy.

While many of the guidelines below are broken up into Design and Testing, keep in mind that you will also need to test that the Design guidelines have been met.

Contents

  1. Primary Functionality
  2. Performance/Load/Stress

Primary Functionality

Design

  • Generate and use a unique GUID for your gadget.
  • Be sure to update the strings in strings.xml, so that the gadget's title, installation dialog, and About dialog are meaningful.
  • Don't waste space: Make sure the gadget's contents completely fill the gadget's dimensions.
  • If applicable, provide an Options dialog.
  • Make sure your gadget meshes well with the rest of Sidebar; it must not slow down Sidebar or other gadgets' performance or crash Sidebar.
  • Make it easy and straightforward for users to halt your gadget's activity.
  • Design and implement the gadget to respond quickly to requests or other interaction; interaction with users or other programs (such as data sources) should not suffer significant delay.
  • Make sure your gadget responds to any undesired actions with informative and helpful error messages.
  • Create any temporary files only in the user's temp directory, and delete temporary files once they have fulfilled their purpose.

Testing

  • Test all user-visible features, both in docked and undocked states.
  • Test sending and sharing features to ensure sending and receiving functionality.
  • Run your gadget with other gadgets and Sidebar to test for compatibility or interaction problems.
  • Test response times — both of your gadget and others — to determine if your gadget is affecting other Sidebar performance.
  • Test in both online and offline modes to ensure your gadget handles both situations well.

Back to top

Performance/Load/Stress

Design

  • Minimize memory usage, since gadgets run continuously on the system.
  • Minimize CPU and other resource usage when the user isn't interacting with the gadget.
  • Minimize the size of the gadget's .gg file by removing unnecessary files (such as unused stock images) and by using the smallest image files that don't compromise your gadget's appearance.

Testing

  • Test against limited network bandwidth, memory, CPU, and disk resources.
  • Test CPU usage in both docked and undocked states.

Back to top