[prog] Programming PDA's

Akkana Peck akkana at shallowsky.com
Thu Apr 29 10:04:17 EST 2004


Dan Richter writes:
> Can anyone give me a summary of programming on PDA's/Palmtop computers? 
> How much portability is there? What languages are most supported?
> 
> I'm aware of the Agenda PDA, which runs Linux and so supports 
> everything, but I'm looking at the whole gamut of PDA's.

Here's a start:

PalmOS: the open source "prc-tools" package, based on GCC, generate
both m68k and arm binaries, from code written in C or C++.
Another package, pilrc, compiles UI files so you can use the
widgets in the Palm toolkit.  You need to download an SDK from
Palm, which can be somewhat tricky to find on their site (it's
easy to find the Windows package, but the tarballs move around)
Books on Palm programming are not much help, since they tend to
center on CodeWarrior, but there are online guides to the Palm SDK
calls, and there's sample code around.  The setup works quite well.

There are two different Palm emulators, but I haven't had much
luck getting either of them to work, so I test by downloading
to an actual Palm device (which means that I can't test on any
device I don't physically have).  Some people seem to have better
luck with the emulators, so I guess there's a trick somewhere.

There are Java environments for the Palm, based on J2ME (micro
edition), but the ones I've tried are bloated and slow (so most
users won't have java installed) and I didn't have much luck
getting the J2ME SDK working on linux (haven't tried recently,
it's probably much better now).

Zaurus: uses Qtopia, based on Qt.  There's a Qtopia development
environment that's pretty neat: you can build for x86 and run in an
emulator that pops up a Zaurus-sized window, then you you make
clean, run a script to change a gazillion environment variables
(unfortunately not supplied as part of the dev kit, so getting this
working is the hardest part) and recompile for the arm processor.
Except for the seekrit scripts, this works quite well, and Qt is
well documented so UI programming is easy.  (Since it's Qt, you have
to use C++, not C.)  Transferring the program to the Zaurus is the
hardest part (linux-Zaurus communication isn't too good).  I haven't
worked with the new whizzy big-screen Zauri.

The Zaurus has a quite good Java SDK: it's a real SDK, not J2ME,
so you can take normal web applets and package them up for the
Zaurus and run them without even having to recompile, assuming
the web applet will run on a screen that small.

Agenda: uses a modified version of fltk, and a cross compiler (C,
not sure about C++).  It wasn't too hard to get started, but fltk
isn't all that well documented (or wasn't when I was playing with an
Agenda, which was a while ago) and there was an additional problem,
that the Agenda required a specific older version of fltk which
wouldn't coexist with the version of fltk that some other programs
needed.  Updating fltk broke my Agenda dev environment and I never
did get it working again.  There were other issues, like
incompatible ROM versions; I don't know whether that ever got
straightened out (is the platform dead now?  I occasionally see
stories about companies about to re-issue Agenda-based machines, but
I never see any followup).  I don't know if there's a Java runtime.

PocketPC: as far as I know, development is windows only.  Of course,
some PocketPCs (like the iPaq) can run linux, in which case the
development environment is similar to Zaurus, though there's a new
gtk and X based setup which I haven't tried (I don't have a Pocket PC).
Not sure about the Java story.

Epoch: there are a couple of different ways of developing on linux
for epoch, but they all involve running windows programs under Wine,
and the setup sounds quite complicated.  Sounded like way too much
work for a platform that's deliberately excluding linux, so I
haven't pursued it.  I think the newer epoch phones have j2me,
so that's an option, though it doesn't help older machines like
the Revo; too bad, they would be awesome machines if it was possible
to write software for them).

Danger hiptop: strangely, though I know lots of linux developers who
use one, there doesn't seem to be a linux development environment
for it.

	...Akkana


More information about the Programming mailing list