The project took me forward a few years as well, since I got a clear glimpse of what life beyond browser-based HTML will be like a few years from now. I was skeptical at first, but because of both the explosion of Dashboard widgets since May 1 and the amazing usefulness of many of them, I’m now convinced that this new way of getting web information is the future. It’s really the next step beyond Sherlock, and in some ways is just an extension of RSS and an easy way of leveraging web services on your desktop. If I needed any confirmation for my gut feeling on this, Yahoo provided it this week by gobbling up Konfabulator (before Microsoft could get to them, I’m sure)! (More on that later…)
Before I started mucking around with those files, though, I read through Apple’s excellent documentation on the subject. Apple developers are lucky to have such great technical documentation at their disposal, so be sure to utilize it if you head down this path. A quick visit to Apple’s Developing Dashboard Widgets website will orient you much better than anything else
Here are quick links to the main documents I started with:
- “Introduction to Dashboard Programming Guide.”
(Note: If you installed the Developer Tools that came with your Tiger discs, you’ve already got these documents on your Mac.) I strongly recommend you start by reading through this material. After that, just start ripping into the code!
A fairly common type of Dashboard widget is one that loads one or more RSS feeds, and this was, in fact, the goal of my project. I wanted to “asynchronously” load the RSS feed from Classic 45’s into my widget, without the widget itself having to be “reloaded.” Whenever my RSS feed is updated, I wanted the widget to just fetch and display it without the user having to do anything. AJAX programming makes this possible. (You can read more about AJAX starting with this essay.)
So off I went… It took about 2 weeks, working around everything else in my life… to get the widget ready for posting on Apple’s website. But what a blast I had! Along the way, I checked out some of the emerging widget development tools and actually ended up forking over a few bucks to the guy who developed Widgetarium. It’s still a young tool that I’m sure will get better, but I paid the shareware fee primarily because I loved the “Panel Maker” that’s built in. This utility makes creating slick widget background images child’s play. Yes, I could’ve done it from scratch in PageMaker, but this was so much easier! He’s since added an “Icon Maker” to the tool. Widgetarium has an embedded Safari WebKit engine that allows you to see and manipulate your widget in a transparent window similar to how it will look in Dashboard itself.
There are many other useful developer add-ons to Safari and widget development tools that are worth checking out, and I’m sure a year from now there will be even more and better ones.
Widgets are simply going to explode in numbers, so it’s great that Apple moved fast to improve Dashboard’s ability to manage them. If you haven’t upgraded, Tiger 10.4.2 includes a Widget Manager in Dashboard that’s a big improvement over the first version that shipped with Tiger.
When I finished my widget on July 6, there were about 700 widgets listed on Apple’s “widget download” site. When I checked just now, the total had climbed to 926! If that rate of growth continues, there will be almost 5,000 widgets a year from now. Nearly all of them are released as freeware, including many that are handy replacements for Mac software you would otherwise have to pay for.
For me, an example of the latter is the DoBeDo widget, which lets me enter to-do items that are synched with iCal. I can assign due dates, priorities, and a description for each item. The widget lets me easily view lists by calendar, and simply checking them off is the same as doing that in iCal. For me, what’s particularly great about this kind of app is that I can have a synchronized to-do list both at work and at home, thanks to my .Mac account. Before DoBeDo, I was using Burnout Menu, a menu item application I had paid for. Actually, I find DoBeDo to be much faster and more stable than Burnout Menu… and it’s free! (Burnout Menu does have a few tricks DoBeDo widget doesn’t, but they aren’t things I need.)
It’s really hard to explain what a Dashboard widget is to a Windows user without showing one. So one of the things I prepared with the launch of my new widget was a little QuickTime movie that shows the widget in action–scaled down, of course. Once I had all of this prepared and fully tested, I submitted information about it to Apple’s web site and also to MacUpdate. A couple of days later (it didn’t take as long as I thought it would), I was the proud owner a whole page on Apple’s Dashboard download site devoted to my new “Sizzling Classic 45’s” widget! Ah, fame.
You can also find this spanking new widget (along with other projects) at my .Mac site: Software Noodling. On Mars, of course, nothing is ever really finished, so I already have the first set of enhancements to the widget on the drawing boards: First, I want to make the widget roll up into a much smaller size when not in use, and Second, I want to let users listen to mp3 snippets from the Classic 45’s “Jukebox” by playing them within the widget itself.
*sigh* A Macintosh Software Noodler’s work is never done… So many cool programming toys, so little time!
Next: Building a Mac OS X “Theme” … stay tuned.