Application Development
One of the key features of the Palm is the ability to program custom applications to suit your needs. There are a wide variety of applications available that allow you to design and test your own palm program on the PC and then HotSync the program for use on your palm.
To test your program on the PC, there is a Palm emulator available at http://www.palmos.com/dev/tools/emulator/ that simulates the functionality of an actual Palm device. So you do not have to actually load the application to your device to run and test it. When you are satisfied that the program runs correctly on the POSE emulator, you can then HotSync the program to your Palm.
This document provides an overview of the most popular applications available to program your Palm and includes the pros and cons of each.
NSBasic
NSBasic is an Integrated Development Environment (IDE) based on the BASIC programming language and is very similar to Visual Basic. This IDE includes all the normal features, like source-code editing, but it's most useful aspect is the Visual Designer, which allows you to graphically lay out your objects and set their properties. The language itself includes several groups of built-in functions and commands. The functions, which are add-ons to the standard BASIC language, provide additional support for math, file I/O (input/output), serial I/O, graphics and windowing functions. Additional commands provide support for advanced graphical user interfaces (GUI's) and to show input and output objects and dialog boxes.
When the development process is complete, NSBasic produces a standard Palm executable (PRC file). The PRC files will work on all devices running Palm OS 3.0 or later. The files also run properly under OS 2.0, but some features, such as the additional fonts included with OS 3.x, are not available.
The biggest advantages of NSBasic are its ease of use and small learning curve.
The main disadvantage of NSBasic is that it compiles a program into pseudo-code (p-code). As a result, a runtime component is required to convert the p-code into Palm's native code. Therefore, application performance is not as good as a comparable application written in C. However, most programs written in NSBasic appear to run at a speed equivalent to the built-in Palm applications. Operations that involve activities like updating the screen are approximately the same speed as any Palm application, but performance takes a blow when doing CPU-intensive mathematical computations. This limitation is minor for most applications, but might be a problem for complex mathematical applications.
URL: http://www.nsbasic.com/palm/
Crossfire/MobileVB
AppForge's Crossfire and MobileVB are the leading mobile and wireless application solution for Microsoft Visual Basic developers. Crossfire integrates directly into Visual Basic .NET while MobileVB integrates directly into Visual Basic 6.0 enabling you to immediately write applications, using the Visual Basic programming language.
Visual Basic is a powerful programming language that's easy to learn, and Crossfire/MobileVB works in the same way and includes many of the same functions and methods as Visual Basic. To develop a program, you first create the user interface by "drawing" controls, such as text boxes and command buttons, on a form. Next, you set properties for the controls to specify values such as caption, color, and size. Finally, you write code to add functionality to your program. A completed program is compiled into a PRC file for use on your Palm. To run this program on the Palm a program called Booster is required to convert the VB code to Palm's native code.
The advantages of Crossfire/MobileVB are: it has a small learning curve, great support, and a fast development life cycle.
The MAJOR disadvantages of Crossfire/MobileVB are the requirement of a runtime
component (Booster) installed on the Palm (which requires buying a licence
for each device using your program), and the cost to get this application up
and running (it's an expensive program).
URL: www.appforge.com/products/small-business/
CASL
CASL (Compact Application Solution Language) is a Windows based rapid application development (RAD) tool that enables developers to easily create their own PDA applications. The CASL language is similar to Visual Basic and it allows you to create programs that take advantage of the graphical user interface found on today's PDA's.
Like NSBasic and Crossfire/MobileVB, CASL's code is compiled into p-code,
which gets interpreted by a separate 44 KB Palm runtime. CASL also has a Pro
version (CASLpro) that takes CASL code and compiles it to C code, which is
then compiled by the open source PRC - Tools compiler to a native Palm OS program.
This means that no runtime is required on the Palm and the application will,
therefore, run faster.
The advantages of CASL are its ease of use and fast application development time. With an easy to use GUI and many built in functions, you can create applications in hardly no time at all.
One disadvantage of CASL is the requirement of a runtime that will slow your application down, and that can be eliminated by using the CASLpro version. The major disadvantage of CASL is the lack of documentation for the language. There are no dedicated textbooks on this language, and fewer web resources are available in comparison to the other languages covered in this document.
URL: http://www.caslsoft.com
J2ME
J2ME (Java 2 Micro Edition) is the Java platform for consumer and embedded devices.
The J2ME architecture defines configurations, profiles and optional packages as elements for building complete Java runtime environments that meet the requirements for a broad range of devices. Each combination is optimized for the memory, processing power, and I/O capabilities of a related category of devices. The result is a common Java platform that fully leverages each type of device to deliver a rich user experience.
The configuration that was developed for PDAs and mobile phones is the Connected
Limited Device Configuration (CLDC). The CLDC combined with it's profile -
Mobile Information Device Profile (MIDP) - is the Java runtime environment
for today's mobile information devices such as phones and entry level PDAs.
To develop your PDA applications, there is a toolkit (J2ME Wireless Toolkit) available that contains both the CLDC and the MIDP. This toolkit provides the emulation environment, documentation and examples needed to develop your PDA applications.
Programs compiled using the Wireless Toolkit can be converted into a PRC file
for use on your PDA. However, in order to run this program, your must also
have a virtual machine (runtime component) installed on your Palm. This virtual
machine is only a few kilobytes in size, and its function is to convert the
Java bytecode into your Palms native code. Because this conversion of code
has to take place, your applications performance will be slightly slower. As
explained in the NSBasic section, this may or may not have a noticeable impact
on performance. It all depends on how CPU-intensive your program is.
The advantages of using Java's J2ME are its cost (free) andits cross platform
portability. A Java program written using the J2ME Wireless Toolkit will run
on any mobile information device that has a virtual machine.
Java's J2ME has three disadvantages: a steep learning curve, slower application
development, and slower application performance. As explained in this section,
J2ME for PDAs is composed of the CLDC and the MIDP, and learning the functionality
of these API's takes time to learn and develop. The J2ME also requires a virtual
machine on your device that will slow your application down.
URL: http://java.sun.com/j2me/
CodeWarrior for Palm OS
CodeWarior for Palm OS is the official development environment for the Palm OS. It has the distinction of being the most favored environment by Palm Computing, simply because they used it to write Palm OS. This commercial development environment allows you to create ANSI C and C++ programs on either Windows or Macintosh systems. It currently includes Palm's Conduit Software Development Kit, and Palm's own documentation assumes that you are using it. Therefore, because your code is written based on the Palm OS, no separate runtime component is installed on the device. As a result, the resulting application is usually small and efficient.
The CodeWarrior Integrated Development Environment (IDE) provides an editor,
project manager, C/C++ compiler, linker, and target device interface that enables
source and assembly level debugging.
The advantage of using CodeWarrior for
Palm OS is that your applications, in comparison to the other development
environments, are typically smaller, more efficient, and run faster.
The disadvantage of using CodeWarrior for Palm OS is that it has the greatest learning curve of all the development environments. Although C and C++ are very efficient languages, they tend to be more difficult to learn than Java, Visual Basic, and scripting languages.
URL: http://www.metrowerks.com/
Summary
There are many applications available for Palm program development, and this document only provides an overview of the most popular applications. A summary of these applications is provided in the following table.
|
NSBasic |
Crossfire/ MobileVB |
CASL |
J2ME |
CodeWarrior |
| Programming Language |
Basic |
Visual Basic |
Similar to VB |
Java |
C / C++ |
| Steep Learning Curve |
No |
No |
No |
Yes |
Yes |
| Development Time |
Fast |
Fast |
Fast |
Average |
Slow |
| Runtime (VM) Required |
Yes |
Yes |
Yes (Std) No (Pro) |
Yes |
No |
| Cost |
Moderate |
Expensive |
Cheap (Std) Moderate (Pro) |
Free |
Moderate |
Overall, which application you choose depends on the type of programs you develop (are they CPU intensive), your programming skills, development time required, and your budget.
|