Mobility

Development in the palm of your hand, part 1

Can't find the PalmOS or Windows CE application you need? Build it yourself. James McPherson reveals tools you can use to create your own handheld programs.


Have you noticed there aren’t always PalmOS or Windows CE applications that fit your needs? Sure, you have plenty of functional applications that came with your PDA, and the proliferation of third-party programs has added to the ranks of available utilities. However, many specialized niches haven’t yet been filled. Maybe the program you need is already on a Web site. Maybe it’s gestating as an idea in the head of a programmer who doesn’t have the tools to get it onto a PDA. Maybe you can create it yourself!

Many visual tools, integrated development environments (IDEs), and compilers exist for the PalmOS and Windows CE platforms. You can use them to build the applications you need. In the first of a series of TechCetera articles that will review different handheld computer programming tools, we’ll start off with the darling of modern multiplatform programmers: Java.

Java
Java has long been touted as the language that will work on all platforms, from desktops to cell phones to toasters. The theory works fine when using compiled Java bytecode on such machines.

However, using Java on a variety of handheld PCs might seem impossible. For starters, the sizeable virtual machine (VM) used on desktops could easily eat up most handhelds’ entire storage space, let alone leave sufficient memory for running applications.

Fortunately, Java’s promise is being fulfilled in a number of ways.

Jump (Java Compiler)
  • ·        Publisher: Ralf Kleberhoff (Project Administrator)
  • ·        Platform: Windows or Linux
  • ·        License: GPL
  • ·        URL: http://sourceforge.net/projects/jump/

Jump removes the virtual machine and makes Java a native PalmOS application. Full-fledged programs will probably be a bit much to convert, but many Web applets should only need minor modifications to adapt to the smaller screen. Given the fact that most Web applets run in a pop-up box rather than in a full screen, a Web programmer’s entire Java code library can be recycled fairly quickly.

Jump is not a stand-alone application. Instead, it transforms Java into Assembly files that can be compiled using the free Pila compiler for Motorola 68-K processors, which are used in PalmOS devices. While Pila is distributed separately as a Linux or Windows application, you might also wish to download the Alternative Software Development Kit (ASDK) for Windows. Along with Pila, the ASDK includes an emulator, debugger, help files, and other useful utilities.

Waba
Waba is Java, or at least the Java that Wabasoft felt was useful for a handheld device. It could just have easily been called “Java lite,” except for copyright and trademark issues. Naturally, the heart of Waba is the virtual machine—a stripped-down version of the Java virtual machine. How stripped down? Small, tiny, nay, infinitesimal, sitting at a feather light 64 KB for both the VM and the resource classes. It is also a cross-platform product, with Waba VMs available for the PalmOS and Windows CE platforms.

Any Java development package can create Waba applications, but you must be careful to stay within the Waba subset’s limits. The effort can be well worthwhile, since Waba programs can be used online by browsers with traditional Java VMs, thin browsers equipped with a Waba VM, distributed as an applet to run on a Waba VM, or compiled to bytecode using WabaJump.

Waba Virtual Machine
  • ·        Publisher: Wabasoft
  • ·        License: GPL
  • ·        Platform: PalmOS, Windows CE
  • ·        URL: http://www.wabasoft.com

The Waba Virtual Machine is the “pure” Waba VM. It is the VM to which all other Waba VMs are compared. It is available on a wide variety of platforms, including Windows CE and the PalmOS.

SuperWaba Virtual Machine
  • ·        Publisher: Guilherme Campos Hazan
  • ·        License: GPL
  • ·        Platform: PalmOS, Windows CE, Windows
  • ·        URL: http://www.superwaba.org

SuperWaba extends the original Waba by adding advanced features like support for international characters, hash tables that use strings rather than Java objects as keys, and a PC-based applet viewer that emulates the buttons on PalmOS machines. It also adds programming hooks for Jump integration.

Color Waba Virtual Machine with Threads

The stock Waba VM’s graphic system is improved with the Color Waba Virtual Machine. It supports 1-, 2-, 4-, and 8-bit color depths on both 4- and 8-bit compressed and uncompressed bitmap files. Further improvements include green-type thread support for more complex applications.

Visual Waba Developer
  • ·        Publisher: DMIC Logiciels et Services
  • ·        License: Commercial
  • ·        Platform: Windows
  • ·        URL: http://www.dmic.fr/palm/prg2.htm (Click on the British flag for the English version.)

If you want to jump right into Waba without “unlearning” Java, Visual Waba is for you. This is the desktop development environment with a graphical interface for WYSIWYG development that will directly build PalmOS PDB and PRC files for easy distribution.

WabaJump
  • ·        Publisher: Peter Carroll
  • ·        License: Freeware
  • ·        Platform: Windows or Linux
  • ·        URL: http://www.wabajump.org/

WabaJump is an extension to Jump that allows Waba files to be compiled directly to PalmOS format. Despite the small size of the Waba VM, it makes it a little harder to distribute the Waba VM, resource classes, data files, and your program than using WabaJump to compile a single, readily distributed program. It also removes the compatibility issues that might arise in changes to the Waba VM, since once it's compiled, your program is completely self-sufficient.

Naturally, WabaJump requires Jump and either Pila or the ASDK to function.

Stay tuned
While Java offers different flavors for the PalmOS and Windows CE, it is not the be-all nor end-all of languages. Look forward to future TechCetera articles covering more wonderfully flexible scripting languages.

Editor's Picks

Free Newsletters, In your Inbox