The book starts off with a basic explanation of Dashboard and Widgets.
Having recently given the same explanation to the Programming SIG, I
can say that this book is right on the money. Basically Dashboard is
an environment for widgets which is hidden until activated. Widgets
are what Apple calls "mini-applications" (I prefer mini-utilities, but
that's another story). Like other types of widgets, they don't do
much, but what they do, they do very well.
Fred Terry breaks down the structure of a widget so you know what
you're getting into. A widget is basically a very specialized web
page. It contains an HTML file for basic structure, a Cascading Style
Sheet (CSS) file for
formatting and a JavaScript file for interactivity between the user and
the system or internet. Terry then goes on to examine each individual
component in it's own section. That's when you realize this isn't
quite a beginning level book.
When the author starts discussing JavaScript and CSS it becomes clear that this is a book for programmers. You're
expected to have a basic understanding of, or rudimentary experience
with, these technologies. That said, the book is very clear about how
Dashboard uses these technologies and how you can use them to enhance
your widget. Terry shows how to make a widget by walking you through
his creation of one. He starts by making his own widget from
scratch, but then goes on to use files that are either included in
Apple's Development Tools, which are included with Tiger, or available
on the publisher's website.
In his tutorials he examines how to decide what elements to use in
your widget by asking basic questions. What will your widget do? How
will people use it? What will they want to change about it? How will
you let them do that?, etc. A good practice for any programmer
developing any program. Then he answers the questions. He discusses
how to develop your widget interface, how to set preferences, and how
to add interactivity.
The book gets into the nitty-gritty of programming with debugging your
widget and using other OS X technologies with your widget. Adding cut
and paste abilities, using drag and drop with your widget, setting
preferences with your widget, and making widget plug-ins to interact
with other software.
The book ends with real world examples where Terry examines several
popular widgets and opens them up to show you how they work using the
techniques he's discussed. It makes the development of your own widget
far less intimidating when you realize that some of the more
sophisticated widgets out there are all made the same way.
Overall I found this book to be an excellent resource for widget
development. I'm giving it four stars mostly because it's more of a
text book. It's full of examples and instructions, but it's a little
light on the fun. It doesn't have that casual writing style seen in
other book such as the Missing Manual series or the Dummies series.
Then again, it's really meant for programmers, who I imagine are a
little more technical than the average consumer. If you want to get
into widget development, get this book. It's the only one like it on
the shelves at the moment (Dori Smith is writing one for the Visual
QuickStart series which should be out by Christmas). If you're not
much of a programmer or are only casually interested in making
widgets, wait until Mac OS X 10.5 Leopard, which will include
DashCode, Apple's widget development software.