Tuesday, 4 February 2014

Best Mobile Development Tools

A new technology's successful adoption often depends on its development tools. Good tools help new developers more easily get started and make experienced developers more productive. For instance, the success of Microsoft's programming environment is closely associated with the success of its Visual Studio tools.
Featured Resource
Presented by IBM
10 Ways to Build Better CRM Processes
When implemented properly, CRM and ERP can enable better sales, more efficient marketing, and drive

The J2ME (Java 2 Platform, Micro Edition) technology is still relatively new. Strong development tools, especially IDEs, will greatly help J2ME's adoption among wireless application developers. In this article, I review four J2ME IDE products:
  • Borland JBuilder 7 Enterprise with MobileSet 3
  • Sun Microsystems' Sun ONE (Open Network Environment) Studio 4 Mobile Edition
  • Metrowerks CodeWarrior Wireless Studio 7
  • S5 Systems' jVise (based on IBM Eclipse technology)

Landscape of J2ME development tools

Different wireless devices have different limitations in terms of memory size, screen size, input methods, and computing speed. Also, vendors' J2ME implementations might contain vendor-specific add-on APIs that leverage special underlying hardware/OS features.
The diversified device market naturally results in diversified development tools. Each device vendor has its own SDK, device emulators, and performance analysis tools. Some SDKs even come with their own build project-management and source-code editing tools. One example is Sun's J2ME Wireless ToolKit (J2MEWTK). J2MEWTK contains a reference implementation of J2ME/MIDP (Mobile Information Device Profile) and has multiple device emulators that run on Unix/Linux and Windows platforms. J2MEWTK also has performance profile tools and real memory usage monitors. All those tools can be administrated from a central control panel called kToolBar. kToolBar can also build and package ready-to-deploy JAR/Jad programs from development directories. However, mastering all these tools and testing applications on all emulators can prove tedious.
You Might Also Like
A J2ME IDE eases development by integrating device vendor SDKs with other tools. Developers can then have a unified IDE interface for all supported SDKs. IDEs also improve developer productivity and the quality of deliverable applications.

Who should use an IDE?

I do not recommend IDEs to novice developers. Such developers must learn several different things at once: the Java language, J2ME APIs and packages, the IDE itself. An IDE's convenience features can easily obscure what's really happening under the hood. You might end up developing a set of skills tied to a specific IDE. IDEs can help, however, if you already know what you are doing. They can automate many tedious processes for an experienced developer.

J2ME IDE buyer's guide

I evaluated this article's J2ME IDEs according to the following aspects:
  • General productivity features: I evaluated those features beneficial to all Java development projects, not those specific to J2ME. Those features include editor, project-manager, debugger, architecture-designer, and documentation tools, plus tools for advanced programming techniques (refactoring, unit testing, and so on).
  • Third-party SDK integration: Support for multiple SDKs is a core feature for any J2ME IDE. But IDE vendors have difficulties tracking and integrating support for each individual SDK. The Unified Emulator Interface (UEI) specification standardizes the programming interface between SDKs and IDEs. UEI-compatible SDKs and IDEs are guaranteed to work with each other. In my evaluation, I discuss what SDKs the IDEs support out of the box, whether the IDEs support UEI, and how difficult it is to switch between SDKs in a project.
  • Post-compilation tools: J2ME applications are mobile applications that require a high level of security and performance. Code obfuscation can prevent people from reverse-engineering your class files and reduce code size. Special optimization techniques are available from IDE vendors and their partners. J2ME applications can also be post processed and optimized for deployment devices based on the resources available for specific device types. These post-processing, obfuscation, and optimization tools fall into this post-compilation category.
  • Over-the-air (OTA) deployment support: J2ME applications are often deployed over public wireless networks. J2ME OTA specifications standardize the process for discovering, downloading, authenticating, authorizing, verifying, and executing a mobile Java application. OTA specifications require properly formatted meta files on the server side and Java Application Manager (JAM) on the mobile device side. The server also requires special configurations to support OTA meta types. The OTA process can become quite complex with the upcoming release of MIDP 2.0. An IDE should help generate those meta files automatically. A good IDE should also integrate OTA-compliant JAM clients to test the deployment within the IDE.
  • End-to-end mobile application development: J2ME devices are not powerful enough to process or store large amounts of information by themselves; J2ME applications are often thick clients for some backend enterprise application servers. Thus, a first-rate IDE should allow developers to build entire end-to-end projects. That minimizes learning costs and project coordination efforts.
  • Documentation and tutorials: Java mobile application development is a sophisticated process involving many aspects of software engineering. IDEs provide tools to automate many tasks; however, due to the development process's intrinsic complexity, novice programmers often find it hard to use those features correctly. Tutorials and detailed case studies prove essential for an IDE's efficient adoption.
  • J2ME GUI (graphical user interface) builders: Some IDEs have RAD (rapid application development) tools that allow developers to construct mobile user interfaces visually. Those tools appeal to developers from the desktop world—those familiar with J2SE (Java 2 Platform, Standard Edition) RAD tools. However, use J2ME visual GUI builders with caution: because wireless devices differ in screen sizes, the same UI design might appear differently on various devices. For example, a Palm PDA can display four command buttons in a row. But a cell phone might ask you to choose from a list of four commands when you click a Menu button. So what you see on the GUI builder might not be what you eventually get on a particular device.

No comments:

Post a Comment