I was messing around with a new internal application the other day and made a wise crack about some of the features out in the open. And by wise-crack, I mean ‘feedback in the nicest way possible’ of course. On one of my suggestions someone pointed out a RTFM moment that the feature was actually in there but had a dependency. The feature I was requesting was “toast” notifications.
What is “toast”? Aside from a delicious breakfast treat, it’s a term that most people refer to those little notification windows that popup from applications in the Windows system tray. Sometimes annoying, mostly useful (depending on how many notifications you get of course).
examples of “toast” notifications
If you are a Windows programmer, there are APIs you can directly tap into to trigger these things in the standard notification bubbles provided by Windows. If you are a web programmer though, it would be a challenge to bubble up a message to the native client from a web page with ease. You could if you wanted though, as Windows provides a standard method for any application to opt-in to using.
OSX users have the same feature (global notification system), but I’m assuming it isn’t easy to use, which is why Growl exists. It is an application itself that allows a developer to send a notification message to it. It is user configurable (meaning I, the user, define what my notifications look like and when), but serves as a platform for OSX app developers to leverage and provide the user with a consistent notification platform. Growl is not a part of OSX though and still requires to be there.
Back to my internal app feedback. This application made use of something I wasn’t aware of – Growl for Windows. It’s basically a Windows port of the Growl framework. Interesting I thought. I wondered why this application developer of our internal app didn’t just use the native Windows notification system, but I digress. I started looking around and saw that they have it enabled for web applications to use it. Cool! Of course the dependency is still required (i.e., it must be installed), but if it is there, you can use it! Now, there are others that emulate this type of thing like jQuery Growl for web applications. These frameworks, however, show notifications in your application and not in your operating system. So if your web app was minimized you wouldn’t see the notification.
It’s pretty cool and interesting to play around with. Now for the things I don’t like…
Dependency – This is obvious. While it is cool, it relies on Growl for Windows being installed. Are you going to ask your users to install two things?
Not common Growl – The API I played around with wouldn’t trigger Growl on OSX. That kinda sucks. I thought it would which is why I started messing around. I figured you’d be able to write to an API that both platforms subscribe to, but it isn’t the case.
It was a fun experiment to play around with and see how a Silverlight/browser application could provide OS-wide notifications if a framework existed.
What do you think…would you like a “toast” navigation API in the Silverlight runtime for you to use? What features would you expect that feature to have?