Proceed to WirelessDevNet Home Page
Publications, e-books, and more! Community Tutorials Store Downloads, tools, & Freebies! IT Career Center News Home
newnav.gif

Newsletters
EMail Address:



   Content
  - Articles
  - Columns
  - Training
  - Library
  - Glossary
 
   Career Center
  - Career Center Home
  - View Jobs
  - Post A Job
  - Resumes/CVs
  - Resource Center
 
   Marketplace
  - Marketplace Home
  - Software Products
  - Wireless Market Data
  - Technical Books
 
   News
  - Daily News
  - Submit News
  - Events Calendar
  - Unsubscribe
  - Delivery Options
 
   Community
  - Discussion Boards
  - Mailing List
  - Mailing List Archives
 
   About Us
  - About WirelessDevNet
  - Wireless Source Disks
  - Partners
  - About MindSites Group
  - Advertising Information
 

The Palm Computing Platform - An Overview

Introduction

Years from now, we may look back on the introduction of the Palm Pilot as the "killer application" for mobile computing that got the ball rolling. While many devices had previously tried and failed (the Apple Newton being the most notable example), the Palm Computing Platform, originally introduced by Palm Computing (since purchased by U. S. Robotics and now controlled by 3Com), has succeeded undoubtedly beyond its creators' wildest imaginations. Depending on which market estimate you read, devices running the Palm OS dominate the handheld world, garnering over 70% market share for handheld devices and over 80 percent market share for palm-sized devices. As wireless data access was added with Palm OS 3.2 and the introduction of the Palm VII organizer, it has become clear that Palm Computing is here to stay and will be one of the leaders of the coming wireless revolution.

The initial Palm Computing device (the Pilot 1000) was introduced in 1996. A steady stream of upgrades led to the introduction of the Palm III in 1998. This device was the most successful of the Palm OS devices and is currently the "entry-level" Palm device today. The Palm V followed the III with a slightly slimmer metallic case that used rechargeable batteries. The Palm VII (released in 1999) was the first mass-market handheld device to include wireless communications capabilities (using the Palm.Net service). The Palm OS has since been licensed by leading manufacturers such as IBM, Sony, and Nokia for potential usage in a wide range of applications and the licensee list continues to grow. Clearly, the Palm OS is currently the leading platform if you're interested in developing commercial applications for the widest range of users.

Why Palm?

The Palm OS has succeeded where so many have failed for a number of reasons, perhaps the leading reason being its simplicity. Instead of trying to be all things to all people, the Palm designers seemingly focused on doing a few things, but doing them well. There is no keyboard device, no color screen (at least not in the original devices!), no full-text character recognition, and no high-powered processor. It is even ridiculously simple to synchronize data with your PC: simply drop the Palm device onto its cradle and hit one button...installed software does the rest of the work for you. The Palm API is relatively straightforward and is C language based, which opens it up to the widest variety of development options. Finally, the devices are inexpensive (and getting cheaper by the day) and enjoyable to use. Handwriting recognition is included through the Graffiti recognition keystrokes which take only a matter of minutes to learn.

Platform Capabilities

User Interface

The Palm OS graphical user interface makes use of a number of common UI metaphors including menus, buttons, checkboxes, bitmaps, fields, gadgets, labels, and scrollbars (see Figure 1). The user interacts with this GUI using a pen (known as a stylus) by selecting widgets on the screen (such as buttons).


Figure 1 - The Palm OS Applications Screen

Text entry is accomplished via a graphical keyboard or through the built-in Graffiti character recognition system. While text entry can be accomplished rather quickly once you've learned the basics, it is important to remember that is always easier for the user to select items with the stylus than to manually enter text. If you have any event-driven programming experience (on platforms such as MacOS, Windows, Motif, or Java), you will be familiar with the event-loop paradigm used by the Palm OS.

System Database

The Palm OS provides the ability for applications to permanently store data in memory on the storage heap. A portion of the Palm OS known as the Data Manager manages databases, which can be stored in one of two formats: as a resource or as a record. Note that the Palm OS does not support standard file-based access to data; instead all data is stored within objects known as databases and individuals records or resources can be retrieved from a database one item at a time. Databases are associated with a creator ID, which can be obtained by registering at the Palm Computing Developer Zone. Palm database programming will be covered in tutorials within this section and on regular articles at this site so check back regularly.

Power Management

The Palm OS and its underlying hardware support three modes of operations: sleep mode, doze mode, and running mode. In sleep mode, the device appears to be off although the real-time clock and interrupt generation circuitry are still running. Sleep mode is entered when the device remains inactive for a pre-defined time or when the user presses the Off button. In doze mode, the system appears to be on (the display remains active and the processor's clock is running), however no instructions are being processed. The device is continually in this mode while it is on as long as it has no user input to process. Running mode is entered when their is a user event to process. The device reenters doze mode immediately after processing the final event. System API calls allow applications to enter doze mode as well as determine current time-out values and battery levels.

Data Synchronization

One of the keys to the success of the Palm (and handheld devices in general) is the ability to quickly and painlessly synchronize data from the handheld device to the desktop (and vice versa). The Palm OS accomplishes this via an innovative client/server architecture with the client being the handheld device and the server (known as a conduit) existing as a dynamic link library (DLL) on the user's desktop. A conduit development tutorial will appear in this section at a later date.

Serial Communications

Serial communication via the Palm serial port allows the device to communicate with a wide range of compatible devices including PCs, modems, barcode scanners, and GPS units. Serial communications are controlled by the Serial Manager portion of the Palm OS. The Palm OS API allows developers to open serial connections, send and receive data, then close connections through standard function calls. A new Serial Manager (imaginatively titled the "New Serial Manager"!) supports multiple serial connections within a single Palm device. This became necessary as Palm devices added multiple serial devices (such as the IR device).

Infrared Communications

Infrared Communications, more commonly referred to as "Beaming", allows devices to interchange data via an IR device onboard newer Palm organizers (Palm III and later). These data exchanges take place using the IrDA standard (see the Infrared Data Association for more information). A portion of the Palm OS known as the Exchange Manager controls IR communications and an API is provided that offers developers a standard set of functions for opening infrared connections and transferring data between devices.

Network Communications

Network Communications are made possible via two APIs: the Net Library and the Internet Library. The Net Library, based on the Berkeley Socket API, supports data transfer using TCP and UDP connections while the Internet Library adds support for HTTP and HTTPS. Wireless communications are now possible using the Palm VII organizer via the Palm.Net wireless network. This network uses the BellSouth Wireless Data network to send and receive data. Currently, special applications known as Palm Query Applications (PQAs) are installed on the handheld device and are used to submit requests for data and then retrieve data using UDP. As this is a purely proprietary approach, it remains to be seen whether more standardized means of data access (WAP, for instance) will become the norm.

Sound

Basic sound capabilities are provided by the Palm OS, including support for playback of Standard MIDI Files (.smf files). Sound playback is limited to one note at a time through a tiny speaker inside the device. Access to the Palm OS Sound Manager is provided through an API that supports the playback of custom sounds and system sounds as well as the ability to control default sound settings.

Design Tips

If you've never designed for a handheld device, there are obviously a number of ways in which this type of development differs from standard desktop application development. Here are a few keys to keep in mind:

  • Remember that the screen is tiny! Instead of forcing the user to scroll down three or four screen lengths to select data items, always attempt to think of ways to allow the user to "drill down" into the data by selecting options.
  • Processing power is limited. If possible, store data in a raw format, saving number-crunching and analysis for the desktop workstation or enterprise server. In most cases, handhelds are simply used for data collection, not data analysis.
  • Memory space is also extremely limited. To quote the Palm OS Programmer's Companion from Palm Computing, "Because of the limited space and power, optimization is critical. To make your application as fast and efficient as possible, optimize for heap space first, speed second, code size third."
  • Be consistent with the UI. Get a feel for how the standard Palm applications work (To Do, Address Book, Date Book, Memo Pad, etc.) and stick very closely with their UI styles. Most of these applications provide a very basic entry screen that fits the needs of most users. They then provide more advanced functionality available through selecting a button or menu item.
  • Minimize steps required to properly perform data synching. The most successful applications hide synchronization details from the user, allowing the user to simply place the unit in a cradle and press a button.
  • Wireless communications capabilities are currently limited and not 100% reliable. Test your application in a variety of environments and attempt to limit, as much as possible, the amount of data being transmitted. If you're developing an application to be deployed in multiple cities (or even countries) look into wireless middleware options from vendors such as NetTech, Aether, and IBM. This middleware allows the developer to isolate the application layer from the underlying communications layer providing for greater flexibility and maintainability.

The Business Case

Pros

From a developer's viewpoint, the primary advantage to building Palm applications is the sheer number of users available to buy your application. As the market share leader, Palm Computing has the advantage now of driving the market in the direction that they are interested in going as opposed to following behind another hardware or OS vendor. Because the OS was built from the ground up to run on small, low powered devices, it is likely that it will eventually appear in a number of settings, from wireless phones to electronics consoles to machine control interfaces. Vendor support and connectivity to enterprise products from IBM, Oracle, Sybase, and SAP have allowed the Palm to become an integral component in real-world business applications.

Cons

The Palm OS's biggest disadvantage when compared to products such as Personal Java and Windows CE is the development knowledge required to build applications for it. For instance, Microsoft has produced Windows CE versions of its popular Visual Basic and Visual C++ tools which result in a much shorter learning curve for the average developer. The Palm devices' monochrome screens have their critics as well although a color screen (coming in Spring 2000!) does come at a price in terms of power requirements and cost. Finally, Palm devices currently use the Motorola 68328 (Dragonball) processor which is limited in terms of speed and computation capabilities thus limiting the level of handheld application processing.

Vendors

Hardware Support (partial list)

Palm Computing
Sony
Handspring
Symbol
Qualcomm
IBM
TRG
Nokia

Software Support (partial list)

Other Resources

Books

See our Books section for recommended Palm books that can be ordered directly from WirelessDevNet.com.

Links

Palm Computing Developer Zone
Roadcoders
Palm Central
Nearly Mobile
PalmGear H.Q.

Sponsors

Search

Eliminate irrelevant hits with our industry-specific search engine!









Wireless Developer Network - A MindSites Group Trade Community
Copyright© 2000-2010 MindSites Group / Privacy Policy
Send Comments to:
feedback@wirelessdevnet.com