Now Motorola has released its second generation Windows Mobile SmartPhone MPx 220. It will be based on the Windows Mobile 2003 platform with full support for .Net Compact Framework 1.0 SP2. Addressing the shortcomings of the first generation MPx 200 (released September 2003), the new model features mega pixel camera and bluetooth.
What really impressed me with this device is that Motorola made good on its promise and put a MIDP 2 runtime on it! That means we will be able to run J2ME applications along side with .Net CF applications out of the box. (We can do that on PocketPC today but only after a long and messy installation process.) I'd be very interested in seeing some screen shots comparing the look-n-feel of the UI widgets! Motorola supports a large number of powerful (but not-yet-standard) J2ME APIs on the device (see table below). They really made J2ME a first citizen on this powerful device -- even better than the "native" .Net runtime. Just a few examples: the J2ME runtime of this phone supports the following APIs that are not available in the standard .Net Compact Framework runtime.
* Video camera and audio recorder access
* 3D graphics
* Client side location determination (with add-on GPS receiver, I think)
On the other hand, the .Net CF provides much better support for XML Web services. This phone does not yet support JSR 172 (J2ME Web Services API) or JSR 82 (Java Bluetooth). I am actually quite surprised that JSR 172 and 82 are not yet supported on most Motorola devices! Am I wrong here? Comments please?
As I have been saying for sometime, Motorola's key strategy in the game is to become the IBM of mobile handsets. It will support all OS platforms from Windows, Linux, Symbian, BREW to proprietary OSes. But it will put a consistent and portable Java layer on top of all those OSes to maximize the return for software developers. So far, Motorola has been very aggressive in coming out with bleeding edge J2ME APIs far out pacing the JSR process. A table of J2ME APIs supported on Motorola devices is available below. The MPx 220 device is a Java High-Tier device.