Best tools for mobile application development

A comparative review of four J2ME IDEs

1 2 Page 2
Page 2 of 2
  • General productivity features: Sun ONE Studio has a powerful project manager and object browser based on mounted file systems. You can easily access any object or build target in a project. Sun ONE Studio also features a powerful Java source code editor and debugger. In addition, Sun ONE Studio integrates nicely with third-party productivity tools such as Ant, CVS, and JUnit. Advanced architectural design, refactoring, testing, and UML support for Sun ONE Studio are available from third-party NetBeans add-on modules.
  • Third-party SDK integration: Sun ONE Studio comes with J2MEWTK only, but since it supports the UEI, you can integrate more SDKs with just a few mouse clicks. Sun ONE Studio does not support non-MIDP J2ME platforms, such as PersonalJava.
  • Post-compilation tools: Sun ONE Studio does not include a built-in Java code optimizer or obfuscator.
  • OTA deployment support. Manifest and jad files generate automatically in Sun ONE Studio. Since the IDE contains a built-in Tomcat application server, the deployable files can copy directly to the OTA preconfigured server, a unique and convenient feature. Application deployment can also be done remotely via FTP. Sun ONE Studio does not integrate OTA JAM clients.
  • End-to-end mobile application development: Sun ONE Studio Enterprise for Java with the mobile module provides an excellent platform for end-to-end mobile application development. It even has a kSOAP (Simple Object Access Protocol) plug-in for automatically generating Web services clients for mobile applications. As I mentioned, even the free Community Edition has strong support for non-EJB backend application development. More advanced enterprise features are also available from third-party plug-ins, such as Agea's Wireless Enterprise Suite for Forte, designed to support end-to-end mobile applications in Sun ONE Studio.
  • Documentation and tutorials: Sun ONE Studio comes with good documentation and tutorials. The documentation is available online and included electronically in its distribution CD. Sun ONE developer Websites offer free articles and tips.
  • J2ME GUI builders: Sun ONE Studio lacks a visual GUI builder.

Metrowerks CodeWarrior Wireless Studio 7

Metrowerks CodeWarrior Wireless Studio 7 Professional Edition comes with two installation CDs and two guidebooks. One guidebook shows you how to get started with Wireless Studio; the other is a general CodeWarrior IDE manual, which is not Java specific.

CodeWarrior does not have a free or evaluation edition. The Professional Edition I reviewed costs 99 if you buy online. However, the company does have discounted software for noncommercial academic users (19 per license). CodeWarrior Wireless Studio 7 only runs on Windows platforms.

Installation was smooth. CodeWarrior includes everything from basic Java 2 SDKs to all kinds of third-party emulators and compilers on the CD. So you don't need to pause the installer and download required software from the Web. After installation, CodeWarrior also automatically checks its online SDK update center to ensure all your third-party SDKs are up to date.

CodeWarrior Wireless Studio's third-party partnerships really impressed me. The installation package is bundled with useful products, such as iBus Mobile mobile messaging systems and PointBase micro SQL databases. Wireless Studio Enterprise Edition (produced together with Agea, currently only available to corporate customers) also integrates with Agea's mobile business acceleration suite. Users can access those packages directly from the IDE, which saves time in downloading those products from their individual Websites and configuring them to work with development tools. The bundling also helps promote these third-party products among wireless developers. So this is indeed a three-win situation. I hope more IDE vendors follow suit.

  • General productivity features: CodeWarrior has a fine set of standard IDE productivity features, including source editing, building, and debugging. Since CodeWarrior debugger supports remote debugging over the TCP/IP network, it is well suited for wireless application on-device debugging, an important feature. CodeWarrior does not have architectural-design and development-process automation features. I do not particularly like CodeWarrior's project manager. By default, it does not display source files according to their Java package hierarchies. Though this design lets you group source files arbitrarily across package boundaries, I do not find this feature useful. I prefer to have classes organized in packages and displayed accordingly.
  • Third-party SDK integration: CodeWarrior supports many third-party MIDP SDKs out of the box, including J2MEWTK, Motorola, Sony-Ericsson, Siemens, Sprint PCS, and Nokia SDKs. CodeWarrior supports UEI for future SDK integrations. CodeWarrior is the only IDE in this review that supports PersonalJava application development as well as MIDP. In addition to Sun's PersonalJava reference implementation and emulators, CodeWarrior supports Insignia Jeode and Sharp Zaurus SDKs, resulting in an IDE capable of developing high-end mobile applications. CodeWarrior designers were thoughtful in making the JVM/runtime switching process especially easy for developers: you can switch the entire runtime context (JVM and libraries) with one mouse click.
  • Post-compilation tools: CodeWarrior provides its own proprietary tools for obfuscation, code reduction, and optimization. Those tools are built into the IDE and can be easily configured.
  • OTA deployment support: CodeWarrior supports automatic generation of manifest files conforming to OTA specifications. It has an FTP client for deployment but does not provide built-in OTA servers or OTA client JAMs.
  • End-to-end mobile application development: The Professional Edition I reviewed does not directly support server-side application development. However, the bundled PointBase and iBus Mobile products enable you to develop sophisticated high-end wireless applications utilizing local databases and messaging services. So, although you cannot develop server components in CodeWarrior, it provides tools to implement some server functionalities on high-end wireless devices and middleware. CodeWarrior's Enterprise Edition (produced together with Agea, currently only available to corporate customers) may support end-to-end applications from a single IDE environment.
  • Documentation and tutorials: CodeWarrior offers training services through the online CodeWarrior University, which has free online courses taught by well-known industry experts. The CodeWarrior University Website currently features Eric Giguere's 50-week MIDP introductory course. In-depth CodeWarrior Wireless Studio tutorials and articles, however, are hard to find on the Internet. Overall, compared with JBuilder and Sun ONE Studio, I found CodeWarrior documentation weak.
  • J2ME GUI builders: CodeWarrior provides visual GUI builders for both MIDP LCD (liquid crystal display) GUI components and PersonalJava AWT (Abstract Windowing Toolkit) components. Those builders are conveniently accessible from multiple wizards.

jVise from S5 Systems

The jVise IDE is based on the open source Eclipse project. Eclipse itself only provides a core set of IDE functionalities in a runtime engine. However, the design philosophy behind Eclipse is to leverage the open source community efforts. Vendors or individual developers can add additional features and extend the Eclipse IDE through plug-ins. The plug-in specifications and standards are completely open. Since Eclipse source code is covered under the IBM Public License, vendors can bundle and distribute value-added plug-ins with the entire core IDE in their product CD or download.

S5 Systems develops J2ME/MIDP compilers, libraries, and runtime environments as Eclipse plug-in modules. Those modules enable Eclipse to compile J2ME source code and execute J2ME applications. J2ME-compatible Eclipse plug-ins are only a small part of jVise. Its real value comes from S5 Systems' proprietary J2ME obfuscation, code reduction, J2ME application verification, and Java Post Processor tools that are built into jVise.

Please note that jVise software is still in alpha stage, so comparing jVise directly with the other commercially available IDEs reviewed in this article would prove unfair. S5 Systems offers a free download of jVise's alpha version for evaluation and testing purposes.

Although Eclipse itself runs on many platforms, jVise's proprietary J2ME optimization software only runs on Windows. The jVise download package contains the entire Eclipse core, S5 Systems add-on modules, several bundled wireless SDKs, and documentation.

  • General productivity features: The Eclipse core powers jVise's general productivity features. Eclipse provides basic editing, building, and debugging support. However, since J2ME debugging requires the IDE to interact with a J2ME-compatible JVM, Eclipse's standard debugger does not work in jVise alpha. jVise will have J2ME debugging support before its final release. Eclipse integrates seamlessly with third-party open source tools such as CVS, Ant, and JUnit. Though jVise's Eclipse core does not support architecture design, and visualization, individual plug-ins are available for those tasks.
  • Third-party SDK integration: jVise comes integrated with J2MEWTK, Nokia, Sprint PCS, Siemens, and Motorola SDKs. You can integrate any UEI-compatible third-party SDK with jVise. The IDE is configured for MIDP, but does not support PersonalJava.
  • Post-compilation tools: As I mentioned, J2ME code obfuscation, size reduction, J2ME application verification, and post processor tools are jVise's most important features. Comparison numbers on S5 Systems' Website show that jVise can generally perform about 10 to 20 percent better than major competitors, which represents real value in the J2ME space, where computing resources are extremely limited. jVise's J2ME application verification validates J2ME applications against devices. It identifies resources an application uses and matches those resources with those available on devices. Thus, it can generate a list of compatible devices for any given J2ME application. The J2ME post processor (currently in development) will process existing applications for deployment to specific devices (e.g., change images' color depth) to make maximum use of device recourses.
  • OTA deployment support: jVise generates manifest files and jad files automatically for deployment. It supports deployment to remote or local servers via FTP or copying, but you must configure the server to support the correct OTA meta types. jVise does not integrate client-side OTA-compatible JAMs to verify and test deployed applications.
  • End-to-end mobile application development: jVise develops and optimizes wireless client-side software. The Eclipse core shipped within jVise does not support server-side application development. However, you can add numerous enterprise-oriented Eclipse plug-ins to the IDE. Currently, jVise does not include any enterprise-specific libraries or APIs. In the future, jVise will include Reqwireless and wSOAP (Wingfoot SOAP) API libraries in the IDE for enterprise mobile application development.
  • Documentation and tutorials: jVise has built an online help system into the IDE. However, the documentation and tutorial proves inadequate, when compared with other vendors.
  • J2ME GUI builders: jVise does not provide a visual GUI builder.

You decide

In summary, JBuilder Enterprise has the most powerful set of features. But it is by far the most expensive. Sun ONE Studio Community Edition plus mobile module is the best free IDE. Sun ONE Studio Enterprise for Java offers an adequate compromise between useful enterprise features and reasonable price. CodeWarrior is the only IDE that supports PersonalJava for high-end PDA devices. This IDE also provides strong mobile middleware development support. S5 Systems' jVise specializes in mobile application optimization and source code protection.

Each of the four IDEs reviewed in this article provides reasonable J2ME application development support. If you are already comfortable with a particular IDE's standard or enterprise version, you don't need to switch to another.

Michael Yuan is a PhD candidate at the University of Texas, where he is a research associate at the Center for Research in Electronic Commerce and an open source Java developer.

Learn more about this topic

This story, "Best tools for mobile application development" was originally published by JavaWorld.

Copyright © 2002 IDG Communications, Inc.

1 2 Page 2
Page 2 of 2