As a Java developer, you probably think that having to choose a hardware platform is a concern of the past, inasmuch as Java runs on any platform. As we found in the previous chapter, that is not quite true for PDAs. There are portability issues between PocketPCs and Palm OS devices (because they run PersonalJava and MIDP, respectively). Although it is possible to structure your application so that common code can be shared between hardware platforms, the common code is likely to be limited to simple logic that can be separated from the user interface, persistence, and networking code. It is possible, but it will not be easy.
Therefore, you will probably want to choose which hardware platform you will target. The decision you make will affect whether you write a MIDP application or a PersonalJava application, which in turn may affect the amount of processing you do on the PDA and how much you need to do on the server.
The subsequent sections in this chapter are designed to help you make this decision.