'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 helpfuland 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 menuliterally. 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.