‘ve had a long and happy history using the MetroWerks CodeWarrior IDEs for both Mac and Windows development; they’ve helped me throughout college for those programming projects occasionally thrown at us to balance out all the theory. The IDEs were easy to use and the debugging, linking, and other nifty tools we’ve come to expect of modern IDEs considerably shortened those horrible group-project all-nighters.
So when I got CodeWarrior Wireless Studio (WS) 7 to review I had great expectations. Happily, these expectations were all met with ease.
What You Get
CWS is your typical CodeWarrior IDE with J2ME, Personal Java and J2SE support. It has a KDWP-compliant debugger and support for on-device debugging of Sharp Zaurus and Pocket PC devices. That last feature alone is easily worth the price of this package if you develop for those platforms.
Installing and Extending
Since there’s such a huge variety of devices to program to CWS, the ability to easily plug in new devices and target for them is incredibly helpful?and one of the most impressive features of this product. The installation disks come with a number of SDKs and device emulators that you can chose to install. Included among them is Sun’s WTK, which you can use to test your code to that reference implementation. I received the Nokia Series 60’s SDK and emulator separately but found it a breeze to install. A number of manufacturers are providing integration kits for their products so just look for one that supports the platform you’re targeting and you’re ready to go.
Editing and Targeting
The IDE is fast, responsive, and comes with standard code-editor features such as syntax coloring, code completion, function indexing, and tight integration with a version control system of your choice.
Picking a new platform to retarget is as easy as picking from a menu?literally. Simply pick your target platform from a drop-down, recompile, and voila! You can test on the emulator or, if it’s supported, you can test on the device itself.
Obfuscation is easily integrated into the build process. You can use the built in obfuscator or plug in your own. And you can edit the Manifest-JAD file for each target.
I tested this feature on a Pocket PC, and hunting down bugs was downright enjoyable with CWS. You can step through the code, step through lines, explore the stack, and keep watches on variables.
Because no project is too small for version control, I was glad to see how easy it was to integrate our existing version control system, CVS, into CWS. You can download plug-ins for your choice of version control system, from CVS to Perforce, to Visual Source Safe.
Yet another great feature in this product is the UI editor for MIDP. Using CWS RAD (Rapid Application Development) tools and Wizards you can easily create a form and add it to your project. Use the WYSIWYG editor to modify the form and the MIDP component palette to drag and drop MIDP elements into that form. Hook it up to your app using events and wires. The great thing about the WYSIWYG editor is that it actually follows the MIDP specs for approximate form control placement, giving you a general idea of what your MIDP form will look like on a device.
Nokia Series 60
As I mentioned earlier, integrating the Nokia Series 60 Java SDK into CWS is a snap. The SDK comes with the MIDP 1.0 and Nokias UI API. The Nokia UI API provides sound, device, and user interface extensions for the Series 60 devices. You can augment your base application with Nokia specific features to provide that segment of your users with the additional facilities afforded by their devices.
When All Is Done and Tested
What’s a review without some complaints? Well, there’s not much to complain about here. CodeWarrior Wireless Studio is a solid product providing extensive integrated support and flexibility that’ll ease your development. The plug-in’s architecture affords easy platform targeting and support. On-device debugging was an awesome feature. I asked MetroWerks if they would be providing on-device debugging for other platforms, especially phones. They told me that they were aware that this was a feature desired by many developers and that they were working closely with manufacturers to make that possible. Since developing for hand-held devices can be quite a struggle, this would be an incredible addition that would help ease many development woes. CodeWarrior Wireless Studio is certainly a worthwhile addition to your toolkit.