Tuesday, July 18, 2006

"The App Is Doing Something" Circle Animation

The Code Project - How to write a loading circle animation in .NET?

"When it’s time to wait, we are used to see the classic blue progress bar. It is everywhere in Windows and many other applications. However, animations are getting more and more popular.

For example, when FireFox loads a page, a small spinning circle appears and shows you that the page is loading. Moreover, Microsoft also uses this kind of animation in Windows Media Center, Encarta 2006, SQL Server Management Studio Express, etc.

So, why don’t we use this concept to show to our users that our application is working and/or loading? Let’s begin by the presentation of the component I developed and shared with you


..."

I’m stating to dig the Media Center’s "Just a sec, I’m working on it" busy animation and have been thinking about including something like it in one of my app’s.

This Code Project C# project might be a good stepping off point...

2 comments:

Anonymous said...

Animations are appropriate for short duration tasks such as fetching a page from the web, but I prefer knowing the relative progress of those tasks that can be measured in some way.

A real issues I have experienced with animations is that typically they are shown in a background thread controlled by the Windows animation APIs so it is impossible to tell whether the application "is working on it" or hung 20 minutes ago with no hope of recovery. At least the progress bar gives us some indication that the application is actually doing something since it is typically controlled directly by the application.

I'm not necessarily arguing against the use of animations since they are useful when used appropriately, but I think their use should be carefully weighed against the type of operation being performed, the anticipated wait time for the operation, and the informational needs of the user. Showing an animation for an operation that may take more than a couple of seconds to complete with no other feedback may result in users killing the application because of the perception that the process is hung.

Greg said...

Very true and good point.

Short Delay/Busy Period = Animations

Long Delay/Busy Period = Some kind of progress/status description and ability to cancel