Program your Palm from orbit with Satellite Forms

Yes, Virginia, there is a RAD tool for Palm development. Lamont Adams takes a look at Satellite Forms, an impressive high-level application builder for Palm handheld devices.

Remember how ugly programming for Windows was before the foundation classes and nice RAD tools like VB and Delphi? If you’ve ever seen C source for an old 16-bit Windows application, you know the mess I’m referring to: the big long switch or if…else chain needed to handle events—and heaven forbid your application should ever mistakenly handle a system event. The “big deal” with the higher-level tools, when they initially came out, was that they abstracted away a lot of system-level problems, leaving programmers free to concentrate on business problems instead. Satellite Forms Enterprise Edition from PumaTech offers just such a high-level solution for Palm developers.

What's in a name?
Let’s go ahead and get this business with the confusing name out of the way. Although the moniker “Satellite Forms Enterprise Edition” would seem to imply that a “Standard” or “Entry” edition exists, this is not the case; there is in actuality only one flavor of Satellite Forms.

Satellite Forms’ development environment, shown in Figure A, is called, appropriately enough, the App Designer. It includes a what-you-see-is-what-you-get form designer, table builder, source code editor, complete help system, and literally hundreds of sample applications. Other goodies include an ActiveX control for managing HotSync operations and Satellite Forms Server, which provides a link between a handheld and an enterprise database system. Finally, and perhaps most impressively, every boxed version of Satellite Forms includes actual, real, honest-to-God printed manuals! Three cheers for PumaTech!

Figure A
Satellite Forms App Designer

A nickel tour of Satellite Forms
The form designer is what you’d expect in a RAD tool, allowing developers to build a user interface from a standard set of GUI controls: buttons, labels, edit boxes, list boxes, combo-boxes, etc. All editable controls are data-aware and can be easily bound to an application’s tables. Two Palm-specific controls deserve special mention: The Ink control is used to capture input directly from the stylus for signatures or drawings, while the graffiti shift indicator control shows the shift/caps-lock state of the device.

On a Palm OS handheld, a table is used for basically any form of persistent storage. Satellite Forms’ table builder allows you to build tables from familiar field types, including numeric, character, Boolean, and date/time types. A special Ink field type stores input from an Ink control. The Ink fields become OLE objects when data is moved from the handheld to a PC during a HotSync.

Satellite Forms applications support the simplified Palm event model. Most controls have only one associated event, usually a click event. These events can be handled by either of two mechanisms: actions and scripts. Actions are similar to Access macro actions and can be assigned to an event via a control’s property dialog. They provide an easy way to perform simple tasks like switching to a different form or moving to a particular record. Scripts, on the other hand, are written in a language very similar to VBScript and are the only way to handle form and application-level events. Scripts are organized into modules corresponding to the form with which they are associated.

Among the more interesting and powerful features of Satellite Forms are extensions. Extensions are reusable plug-ins providing functionality that isn’t available with script code. From an application developer’s point of view, extensions are very similar to ActiveX components. The App Designer organizes all plug-ins associated with an application into a single browse-able list and provides documentation of supported methods via pop-up dialogs that appear when you click a method’s name in the browser. Satellite Forms comes with a few standard extensions offering features like graphics display, serial communication, and square root calculations, and PumaTech maintains a large list of available third-party extensions.

Managing a HotSync
Satellite Forms’ HotSync Control is an ActiveX component that can be used to control a PDA’s HotSync operations. Figure B shows the members of the control as displayed by the Visual Basic Object Browser. A programmer simply needs to write code to handle the control’s HotSyncStatus event to manage a HotSync operation. The control exposes methods to perform user maintenance and transfer data or applications to and from the handheld. Two methods, CopyTableToPalmPilot and GetTableFromPalmPilot, handle data transfers to and from the handheld, each dealing with “intermediate” data files in dBase 5 format. The programmer is responsible for exporting and importing these intermediate files to and from the PC database system to complete the link.

Figure B
Members of the HotSync ActiveX control

An alternative to handling HotSyncs via the ActiveX control is Satellite Forms Server, a Windows application that provides a link between tables in a handheld application and any ODBC-compliant database system. This means that your Satellite Forms applications can have access to your organization’s enterprise data. SF Server supports configurable synchronization of both sets of data during each HotSync. Although I didn’t have time to test it before writing this review, this feature would appear to be a powerful function, unique among Palm development tools.

Satellite Forms appears to be to Palm development what Visual Basic was to Windows development: revolutionary. The package is easy to get started with and use; the process of building an application feels very similar to development using Access or Visual Basic. However, I do have one quite serious and one minor problem with Satellite Forms. First, I was puzzled to discover that the Application Designer seems to be completely devoid of any debugging features whatsoever—if there are any, they’re cleverly hidden. Second, application performance, although usually adequate, could stand some improvement.

Overall, this is a first-rate development tool, and with the addition of Satellite Forms Server, definitely becomes worth a look for larger organizations seeking a way to keep traveling employees in touch with critical enterprise data. Satellite Forms starts at $795 (adding Satellite Forms Server brings the price to $995) and is available from PumaTech’s Web site. A crippled, free Trial Edition is also available.

Editor's Picks