In the years since Dashboard premiered as part of Mac OS X Tiger, developers have created a wide range of widgets that allow you to do everything from play games, to monitor the state of your Mac, to look up recipes. Developing widgets under Tiger required working with multiple tools to design graphics, write and test code, package code into a widget, and test in Dashboard.
In Leopard, Apple created Dashcode, a self-contained developer tool for creating widgets. Dashcode is an evolutionary leap forward for experienced widget developers and newcomers alike.
Dashcode does most of the heavy lifting of widget creation (especially when it comes to design elements) and it also guides you through each step in the process, making suggestions to the next steps in a project and offering a checklist of required code and visual elements.
Choosing a Template
Like iWeb, Dashcode lets you begin creating widgets based on a series of templates (as shown in Figure 1).
Figure 1 Dashcode templates
If you are an experienced developer, you can choose the Custom template, which is pretty much a blank slate. If you are new to creating widgets or you just want a starting point, you can choose one of the remaining templates.
Dashcode includes templates that make creating some of the most common types of widgets incredibly simple, and many require almost no coding at all.
Creating a countdown widget, for example, takes little more effort than entering a date to count down to. Creating a daily feed widget, such as one that provides a daily quote or tip from your website is just a matter of ensuring you have an RSS feed and specifying that feed within the Daily Feed template.
Other templates let you build widgets that deliver more extensive newsfeeds, photocasts from iPhoto, and podcasts. All of them are great ways to promote content and add value to a personal or business website.
Take a few minutes to customize the look of a widget and you can be offering your audience a way to keep up to date with you through Dashboard in no time.
There’s also a template for taking Quartz Composer visualizations and making them into widgets that can display almost anything based on preset and dynamic factors (such as a slideshow moving in synchronization with iTunes).
A Maps template makes it easy to utilize KML files and GeoRSS feeds to deliver highly customized mashups of locations and events or services, and includes support for the Google Maps API.
Finally, there’s a Gauge template for building all manner of monitoring tools (this is probably the template that requires the most coding to use).