Palm Programming

Neil Rhodes, Julie McKeehan

O'Reilly

ISBN 1-56592-525-4


Reviewed Apr 5, 1999

This book gives a fairly complete overview of the development process for Palm Pilot application. It is made of three different parts.

Part 1 gives the basics of Palm Programming : what tools are available and how to write a simple applications. There are a lot of alternatives if you are interested in developing for the Palm Pilot. You can choose to go the professional (i.e. non-free) way by buying the Metrowerks environment (which first appeared on Macintosh but is now available on Windows) or go the FSF way with gcc's add-ons for Palm Pilot. Metrowerks' IDE is very powerful and includes a full-fledged Form builder, enabling visual programming just like VC++ of VJ++.

gcc's support is a little less sophisticated since Forms are specified with text resource files. However, getting an actual graphic representation of this text file is straightforward thanks to the numerous Palm emulators that exist in the market. Most of the code shown in the book is C, but you can use C++ if you choose to.

The Palm API is very well separated in different modules and the naming and parameter types have been carefully chosen. The first part gives a fairly complete overview of the whole process and also explains how the OS is designed (memory, storage, GUI, etc...).

The second part gets to the heart of the problem. It uses a marketting application as an illustration throughout the chapters and explains in turn :

Fortunately, the authors chose to use the text resource format supplied by gcc (called "Pilrc"). They insist on the fact that Metrowerks will make designing the Forms completely painless but they decided to use the RC format in the book so that the examples can be understood and reproduced by anyone. A very good idea since the Pilrc syntax is quite understandable (it was meant to be written by hand, so no real surprise here).

Finally, part three of the book details how to write conduits. A conduit is a specialized application that can be called during a Hotsync to update the data used by your application. Note that when you write an application, you don't have to write a Conduit. The default Hotsync mechanism will most likely be sufficient for your needs. But the possibility is there, although designing Conduits requires Metrowerks.

The Palm API is extremely interesting. While the Palm OS has gone through three major versions so far, the designers have reached what seems to be the perfect balance between an OS flexible enough to allow for a very wide spectrum of applications without succumbing into Bloatware. There are still some weird anomalies (like : you cannot grey out items in menus, so the only workaround is to create several different menubars) but overall, the whole system inspires confidence and soundness. I'll mention for example the Find command which will query each application installed on the Palm Pilot and ask it to conduct is own research of the given string.

The authors came from very eclectic backgrounds, so they repeatedly mention Unix, Windows and Mac and they make good points comparing how Palm development differs from one platform to the other. This definitely adds to the value of the book.

Cedric Beust


Back to the menu