CodeWarrior eases mobile app development

Metrowerk’s CodeWarrior PersonalJava Platform Edition 1.0 features a complete development environment for small Java devices

For those companies that are making honest strides toward supporting wireless, mobile-computing devices in their enterprises, many programming challenges exist. The need to balance performance, predictability, and robustness while making your applications suitable for a limited footprint makes these resource-constrained devices a difficult platform for which to design applications.

TEXTBOX:

TEXTBOX_HEAD: The Bottom Line

CodeWarrior PersonalJava Platform Edition 1.0

Business Case

This version of CodeWarrior gives organizations the tools they need to successfully develop applications for small Web-enabled devices. It uses the same IDE that previous CodeWarrior versions have used, letting you leverage current development talent.

Technology Case

CodeWarrior offers standard editing, debugging, compilation support, and such useful add-ins as JavaCheck, the Truffle Graphical Toolkit, and an emulator environment for testing. It supports creation of both Java and PersonalJava apps.

Pros

  • Excellent debugging capabilities
  • An easy-to-use development environment
  • A complete development suite
  • JavaCheck and PersonalJava emulation environment

Cons

  • Some beta bugs present
  • Missing help text

Cost

49

Platforms

Windows 9x/NT/2000, Mac OS, Solaris

Ship date

Mid-May 2000

Metrowerks Corp., Austin Texas; (800) 377-5416

:END_TEXTBOX

Fortunately, small-device programmers have a few tools at their disposal to make things easier. Key among these is Sun’s PersonalJava standard, which allows those already proficient in Java to easily take on programming for small, mobile devices. PersonalJava is a subset of the Java 2 Platform, Micro Edition (J2ME) and already has been licensed by more than 1,300 companies including TCI, Motorola, and Sony.

Metrowerks CodeWarrior PersonalJava Platform Edition Version 1.0 lets users make the most of the PersonalJava standard while including all the tools and functionality of the traditional CodeWarrior IDE (integrated development environment).

Judging by my recent evaluation of a late-release candidate, this version of CodeWarrior will be a powerful asset to those who are breaking into the Internet device space. It will provide the ability to create applications for high-end networked devices and other appliances that support the PersonalJava platform.

The benefits of using this CodeWarrior version will differ based on the type of implementation you’re working on. For the device manufacturer, working in the PersonalJava application environment will likely mean faster time-to-market, as the time spent developing, porting, debugging, and supporting multiple code bases would be eliminated.

For the content provider, who will eventually need to support a large variety of end-user devices, including cellular phones, set-top boxes, and mobile handheld computers, using PersonalJava would mean that content could be provided in one format. This would allow the provider to focus on developing compelling content rather than using resources to repackage the content for use on a multitude of platforms.

And, as CodeWarrior comes packaged with the Truffle Graphical Toolkit, developers can even create customized interfaces that enhance their products’ identities.

Although it competes with an ever-growing number of Internet-appliance and embedded-device development environments, such as Wind River Systems Personal JWorks and Insignia Solutions Jeode, this release of CodeWarrior has everything it needs to become the category leader. It includes a Java compiler, a RAD (rapid application development) environment for the Abstract Windowing Toolkit and Swing, a validation testing tool, and project templates that jump-start development, providing everything you need to immediately begin creating small device-ready applications.

Developers will be pleased to find that the tool comes with an emulation environment for analyzing, verifying, and debugging code. According to both Metrowerks and Sun, if your code operates in CodeWarrior’s emulation environment, it will also run on any device certified as having a PersonalJava environment.

My installation of the product was uneventful, despite the fact that Metrowerks had just exposed a bug in Sun’s PersonalJava Emulation Environment (PJEE), which required me to preload a fixed PJEE. Once I had installed CodeWarrior, I started it up and was immediately pleased to see the many types of Java programming tasks that are supported. Aside from PersonalJava applets and applications, I also was given choices for developing standard Java applets, applications, and even JavaBeans.

I chose to create a simple PersonalJava application that would display a text message similar to a stock ticker. I was offered a choice of creating projects from scratch or from prebuilt templates. I selected a template and was presented with a project preconfigured with all the necessary libraries and source files for that type of project.

I immediately found the environment intuitive and easy to use. I especially liked the fact that I could set markers, or bookmarks, at specific locations inside my code for easy navigation when working in more than one spot at a time. I enjoyed the ability to right-click on any method and have the tool find not only the definition but also all the implementations, which is a convenient time-saver.

The debugging capabilities really made the tool shine. Although I was initially confused as to how to enable the debugger (you turn it on from within the Project pull-down menu rather than the Debug pull-down, as I would have assumed), adding breakpoints to my source required only a right-click of the mouse. Should I have wanted to single-step through the code or even change program counters, I needed only to select the appropriate option from the pull-down menu.

I then chose to validate my code using JavaCheck, a developer tool that was included to test applications and applets for conformance to the PersonalJava specification. Although it’s a separate tool, JavaCheck was integrated well. By simply setting the post-link compiler to execute JavaCheck, I was able to determine quickly that my application adhered to the PersonalJava spec.

I then chose to try out my application from within the emulated environment. Testing within the emulator consists of a command-line call with the specific tool desired and, if testing an applet, the name of the class file or HTML form. Only the output uses a graphical interface. The emulator displayed my text with no problems, making me confident that moving it to another PersonalJava environment would work.

Finally, as expected for an IDE such as this, support for version control through third-party products such as Microsoft SourceSafe and Merant PVCS is available. And for the true bit head in all of us, I was happy to see that I could even disassemble my compiled source code, enabling me to view the generated machine code.

Although seemingly all glory, the release candidate I tested did have a few rough edges in it. I found many spots where help text was unavailable. I also encountered a few program exceptions that, once thrown, crashed the environment.

If these bugs are worked out, there is little that I can say by way of criticism for CodeWarrior PersonalJava Platform Edition Version 1.0. The tool is worthy of any company that has its eye on mobile computing application development.

Source: www.infoworld.com