Showing posts with label Articles. Show all posts
Showing posts with label Articles. Show all posts

Aiming for a better user experience

Tuesday, December 09, 2008 at 1:40 PM

Although Google Desktop gadgets are getting easier and easier to develop, you still might want to spend time on improving the overall experience of using your gadget. There are a lot of features you may want to consider, and many resources exist to help you implement these features.

For example, my latest article about Improving User Experience deals with following useful standards in your gadget. It describes ways to achieve attractive and intuitive interfaces, gather user feedback, and implement an update system. It also touches on related topics such as attracting users and planning for updates. The article has links to other articles and API references, where you can find further details.

"Vox populi" applies everywhere

Friday, October 24, 2008 at 3:31 PM

"Vox populi" is a Latin phrase that means "the voice of the people" or, in our case, the voice of the users. A good way to tap into this great source of feedback and to get a gratifying feeling, as well, is to compile accurate statistics about how many people install your gadgets and how long people keep your gadgets.

My latest article, Gadget Usage Stats, details a possible implementation of such a system, keeping user privacy in mind. It isn't too complicated; you can reduce it to 3 levels: the gadget, a server-side script, and a database. The interesting part is how all the elements communicate with each other. After reading this article, you should be able to set up this system for your own gadgets. You can take advantage of the system's flexibility by changing it to meet your own needs.

Using Parameters in Desktop Gadget Programming

Wednesday, September 17, 2008 at 4:49 PM



Whether the gadget you're building is simple or complex, parameters can make a big improvement in your programming process. Not only do parameters help you isolate constants (avoiding invasive changes to your code when assumptions change), but you can separate them into their own .js script file.

For more about this subject, including implementation details and possible immediate and long-term uses, see my latest article, Using Parameters in Desktop Gadget Programming.

Desktop gadgets and App Engine

Tuesday, August 26, 2008 at 2:08 PM



How many engineers does it take to write a development article? Apparently three.

Vishwajith Krishnamurthy, Paneendra Ba, and I joined forces to program a client-server application using Desktop gadgets and Google App Engine.

What we came up with is the Question and Answer server. The server sends random yes-no questions to a Desktop gadget client and keeps track of answers. The client can also submit new questions and see a list of the most answered questions.



Writing the app was a lot of fun and easier than we expected. Please read Desktop gadgets and App Engine to see how we did it, and take some time to try out the application.

How to write resizable gadgets

Monday, April 14, 2008 at 1:22 PM



I am constantly mentioning to people how easy it is to add resizing ability to gadgets. Only two simple steps are needed to make your gadget resizable. The first is enabling resizing by setting view.resizable to 'true'. The second part is writing code that reacts to size changes and updates the gadget's UI accordingly.

To see an example of this, please read my new article Resizable Desktop Gadgets. It discusses all the various resize modes and handlers, and how to design and implement a resizable UI.

Maximize usability of minimized gadgets

Friday, March 21, 2008 at 9:05 AM



Before you publish your gadget, take a second to think about how your gadget works when it's minimized.

I've written an article discussing how a minimized gadget can remain useful.

An example is the AdSense tracker gadget, which continues to display earnings when it's minimized:

How to use notifications

Thursday, January 31, 2008 at 8:26 AM



Notifications are a great way to inform users of incoming messages or breaking news. You might have already encountered them in your email or instant messaging application. Did you know that it is possible to use them in Desktop gadgets, too?



Check out How To Use Notifications In Your Gadget in the knowledge base to see how easy it is to enable and implement this feature.

Proper online behavior

Tuesday, January 29, 2008 at 4:37 PM



I'm sure many of you watched a movie called The Lord of the Rings: The Return of the King. :) It has a 3-minute scene that deeply impressed me and inspired me to write an article about Proper Online Behavior. In the scene, Gondor lit up beacon after beacon until the message got to Rohan, thus ensuring that the Rohirrim could ride to Gondor's aid. In a low-tech but effective way, this message connected people despite the vast distance that separated them, and triggered both expected and unexpected actions on both sides.

Now let's see how we can learn from that ancient, 1-bit beacon and apply our ideas to third-millennium Desktop gadgets in issues concerning communication, data handling, bandwidth, and much more.

Make it better, and tell your users!

Wednesday, January 09, 2008 at 2:05 PM



There's always something in your gadget that you wish you could improve. Maybe it's just a misaligned element, or maybe it's a bug that causes your gadget to cease functioning. Sure it's easy to fix these problems, but how do existing users become informed about the new versions?

My new article explains how to alert users when new versions of your gadgets become available.

To blend or not to blend

Friday, December 14, 2007 at 3:59 PM



Some people love it when a gadget blends seamlessly with the desktop wallpaper. Others want their gadgets to clearly stand out. Can you create a gadget that gives everyone what they want? Why not give everyone the ability to choose the opacity of the entire gadget!

My new article explains in detail how to add a custom popup menu that sets the gadget's opacity.

Yet another offline gadget article

Monday, December 03, 2007 at 2:56 PM



Offline handling has been sorely missing from many gadgets. To address that, Teo recently wrote a great article called Proper Offline Behaviour.

For another perspective on the topic, please check out the article Offline Detection and Handling. It's a gentle introduction to the subject of offline handling.

The article demonstrates:
  • techniques for detecting an offline gadget
  • how to design the UI for an offline state
  • how to restore functionality when the gadget is back online
I look forward to any feedback or suggestions. Even better, if you've already developed your own system for offline handling, go ahead and write an article about it.

Offline behavior

Wednesday, November 28, 2007 at 2:47 PM



In this ever-growing world, new communications channels emerge all the time. In fact, communication engulfs almost every aspect of our lives, and this is certainly evident in our programming experience. My latest article, Proper Offline Behaviour, shows that communication is important even when our computers aren't connected to the largest information source, the Internet.

A gadget can communicate:
  • with the machine it's installed on, to see whether the machine is online or offline (and a lot more :-)
  • with Google Desktop, through the APIs, to implement cool features
  • with itself, because a program doesn't run forever
  • with the user, most importantly, because the user needs to understand the information that the gadget presents
Remember that it is the user who we're writing a gadget for in the first place, so we have to provide the best experience possible. I hope my article will help you in this quest. :-)

A detailed look at the details view

Sunday, November 18, 2007 at 1:36 PM



Have you experienced the problem where your gadget is too small for the amount of information you want to display? The details view is useful for displaying additional information, helps your gadget remain uncluttered, and also happens to be the topic of my latest article. You'll also learn how to easily embed a YouTube video within a details view to bring your favorite clips to the desktop.

Enhance your gadget with content: Use details views!

Using the XMLHttpRequest object

Tuesday, November 06, 2007 at 8:38 AM



Whenever you create a gadget that interacts with the Internet — one that reads an RSS feed or sends data to your website, for example — you need the XMLHttpRequest object. To help you understand how this object works and how you can use it in your gadget, I wrote an article called Interacting With The Web: The XMLHttpRequest Object.

If you want to interact with web pages or files in your next gadget, be sure to check out this article. I look forward to seeing a lot of new gadgets that bring interesting web content to the desktop.

Using the options dialog

Thursday, November 01, 2007 at 9:02 AM



Have you ever been stuck debating whether or not to add a new feature to your gadget? Perhaps the new feature might consume too much screen real estate or too many machine resources. Or maybe you couldn't decide on the right color for a new UI feature.

Why not let people decide for themselves? A great way to achieve this is with the help of the options dialog.

A recently published article I wrote covers both the basics and some advanced features of the options dialog. Among other things, you'll learn how to save options between sessions, communicate between the options dialog and main gadget code, and manage several different options dialog UIs.

Object-oriented programming in Desktop gadgets

Monday, October 08, 2007 at 1:15 PM



How can a program help its users? Through the interface and the features it offers. And how can a program help its programmers? Many techniques are out there, but one stands out: object-oriented programming (OOP). It enables you to create a natural interaction between elements in your program, while keeping the code organized. OOP also makes bugs or upgrades easier to handle.

My latest article details the subject of OOP in Google Desktop Gadgets — how to understand OOP, use it, and implement it in JavaScript. After just a few minutes of reading, you'll have some cool tips to use in your next gadget! :)

Customizing a gadget's menu

Wednesday, October 03, 2007 at 1:42 PM



For a gadget to have a good user experience, the interface should be fairly intuitive. One Google Desktop feature that comes in handy for creating the most intuitive and convenient gadgets is the customizable menu. When a menu is customized to display a gadget's unique options, users can set options with just a couple of mouse clicks. Furthermore, options placed in the menu are easier to find because the menu is a standard feature in all Google Desktop gadgets.

Google Desktop provides a feature-rich system for customizing each gadget's menu, but it may be a little tricky to understand all these features when trying to create the best menu. My recent knowledge base article, Adding Menu Items to your Desktop Gadgets, should help get you started.

Going beyond script

Wednesday, September 19, 2007 at 5:17 PM


I've been interested in programming and software development as long as I can remember, and I've used a huge variety of technologies and environments. One day I wanted to try something new, so I installed Google Desktop and downloaded its SDK. I soon noticed how easy it is to write a powerful gadget using the Google Desktop APIs. However, no API can address all the needs of every developer. When I was developing the MultiDesktop gadget, I couldn't find the exact functionality I needed in the Google Desktop APIs.

Fortunately, the Google Desktop architects provide us with a powerful way to implement missing functionality: hybrid gadgets. A hybrid gadget is partly JavaScript + XML, and partly native code written in your favorite programming language. If you want to learn how to write a hybrid gadget, read my latest article, Going Beyond Script: Developing Hybrid Desktop Gadgets. You can find more information at my blog, Programming by Krizz.

Using the Communication API

Thursday, September 06, 2007 at 10:59 AM



I chose to create my first gadget specifically for Google Desktop when I learned of its Communication API. This easy-to-use system allowed me to turn one of my old programs into a multi-player game with little effort. The API especially appealed to me because of its simplicity, not only for development, but also for potential users. Google Desktop users can download any gadget that uses the Communication API and start playing with their Google Talk friends. You might think of such gadgets as extensions to Google Talk, as well as to Google Desktop.

The Communication API makes Google Desktop stand out by allowing third-party gadgets to send data between two users. The API's simplicity, combined with its relation to Google Talk, makes it a very powerful tool for developers. If you want to get a quick start on creating a gadget with the Communication API, check out my knowledge base article, Desktop Gadgets: Using the Communication API.

Rotation in desktop gadgets

Wednesday, August 29, 2007 at 3:56 PM



The visual appeal of a program is very important — it can get a user to install and continue to use your gadget. You need to consider what helps create a cool interface, while keeping performance in mind.

One great visual and performance technique is rotation, which I detail in my latest article, Desktop Gadgets: Rotating Objects. The article shows you how to blend visual effects, mathematical functions, and inspiration from real-life examples of rotation with the process of creating a gadget. Images and code snippets show you what's going on with rotating UI elements, and why.

I hope you'll incorporate some of the article's techniques when you create a gadget, and that you take full advantage of what the Google Desktop APIs have to offer.