Improving User Experience

Teo (Teodor Filimon), Gadget Developer
July 2008
"Go forward" - Christopher Reeve

Introduction

The idea of writing a gadget revolves around the purpose of making users' lives better somehow. There are many, different ways of doing this where creativity and features are concerned, but there are a few common standards developers can apply to improve user experience as well as their gadgets. These standards can range from subtle tricks to powerful assets for your gadget, and this is what we'll talk about in this article.

Programming a Gadget and Planning for Updates

These are the most important steps in insuring a good life for your gadgets: a fair number of users and a good general impression. This implies recognizing the environments the gadget is active in and how it can reach a maximum performance keeping in mind future updates.

For example, depending on the feature, your gadget can deal with the online world, by including users' friends in the application (using the Google Talk API) or by fetching content from the web (through the XMLHttpRequest object). In this case, imposing a proper online behaviour will make the coding easier as well as make the communication processes more efficient. When dealing with offline-specific issues (like image handling, information storing, etc.) a proper offline behaviour can be applied as well. The online and offline environments unite when it comes to detection and differentiated gadget content.

Aspects strictly regarding coding can also be optimized, through techniques such as object-oriented programming or parametrization[LINK TO ARTICLE ABOUT PARAMETERS] of certain constants or settings. Also, don't forget internationalization (separate the strings you use in a unique file for easier translation and reuse). These techniques will also allow you to build upon a certain structure and isolate some of the parts from changes, thus making the process of implementing improvements easier.

Attractive and Intuitive User Interfaces

Other elements and stages of the gadget have their own well established importance, but it's usually the interface which determines a user to keep your gadget or to uninstall it. You don't need to be an artist to pull it through - a 'good' interface goes beyond looks and here are some issues you need to take into consideration:

The impact new features have on the interface is to be taken into consideration as well. You should aim for a good balance between UI elements in the main view, menu items and settings in the options dialog, and you should also be consistent with the type of features each of these areas will host so everything will look organized to the user.

User Feedback

Maybe excepting usage stats[LINK TO ARTICLE ABOUT USAGE STATS], user feedback is the only direct confirmation of your gadget's success. Not only that, but it's the best source of suggestions and bug reports. There are many ways of gathering feedback, and they range from a simple email address or a web page URL in the 'About' dialog to an actual form on your site.

Taking things a bit further, you can identify which issues occur more often with your users and you can include corresponding tips and tricks as a P.S. in your answers. For example, i've seen that my users often ask for features in my gadgets or want to develop a gadget themselves. So i included tips about spotting gadget updates easily and links to the developer community. Implementation methods may vary, but the purpose is that the user gets support through relevant and easy-to-understand answers as well as you getting important reports and suggestions.

Gadget Update System

As i've said above, user feedback often translates into improvements being made to your gadget. There are simple and complex ways you can do this in:

Embedding a calendar with a planned update timeline on the gadget web page can also be a good idea.

Attracting Users

A gadget can be very good, but it will still be useless if users can't find it. What you need to keep in mind are the ways a user can come across your gadget:

Conclusion

'Knowing' this all can seem a little complicated but once you get the hang of it you'll see that they are just natural design and implementation decisions. Their purpose is to ultimately create the best possible gadget for the user.

Resources


Author Bio

Teodor Filimon

I'm a natural born programmer. My first contact with a techno-gadget was Star Trek (remember those cool sensors?). I used to fill up a whole room with drawings of them when I was only 3 years old. Generally, I find a lot of inspiration for intuitive interfaces in things with "star" in their names (like Star Wars, Stargate,... :-) . I like the border between interface and function—it's the essence of a program, I think. Anyway, I'm a software engineering student now, and you can learn more about me and what I'm thinking and doing at my website or blog. My best gadgets are Web TV & Radio and DigiWatch.