Developing for the Palm OS is in some ways similar to other platforms and in other ways strikingly different. Two important similarities are as follows:
Applications are event-driven.
You can use anything from C++, to standard C code, to assembler, to scripting.
Differences tend to center around features crucial to the device size and purpose. These include how the Palm OS handles:
Application and data storage
Connectivity of the device to the desktop
Most importantly, you should remember that the relationship between the device and the OS is extremely tight. Further, everything has been built on the premise that the handheld is an extension, not a miniature version, of the desktop. It specializes in ensuring that mobile tasks are simple and fast.
First, let’s examine this tight interaction of the OS and the applications on the handheld. The Palm OS runs on top of a preemptive multitasking kernel. One task runs the UI, while other tasks handle things like monitoring input from the stylus. The UI permits only one application to be open at a time. Thus, when your application is open, it (more or less) has control of the entire screen.
Because applications run within the single-user interface thread and can’t, themselves, be multithreaded, the multitasking provided by the kernel is for the operating system’s use only, and isn’t available to you.
Memory is handled in an unusual fashion (discussed ...