Software Development for mobile devices

The mission of the Eclipse.org Device Software Development Platform (DSDP) is to create an open, extensible, scalable, and standards-based development platform to address the needs of the device (embedded) software market by enabling developers and vendors to create differentiated, specialized, and interoperable solutions to help customers and users of Eclipse-based products develop device software faster, better, and at lower cost.

DSDP was initially proposed with two Wind River sponsored sub-projects, Device Debugging (DD) and Target Management (TM). Because of their growing importance, a few months after project creation, two additional projects were added: Mobile Tools for the Java Platform (MTJ) and Native Application Builder (NAB).
The importance of doing Java right
The Java programming language is becoming more and more popular in mobile devices, thanks to an ever-growing richness of the language and libraries. Mobile devices are also becoming more powerful and advanced, with faster processors, more memory, and larger displays. Developing applications for the mobile Java environment presents unique challenges for developers.

Specifically, unlike the straightforward J2SE and J2EE environments, there are a number of mobile configurations and profiles, such as the Mobile Information Device Profile (MIDP) on top of the Connected Limited Device Configuration (CLDC) and "Foundation" and "Personal" Profiles on top of the Connected Device Configuration (CDC).

There are also mobile-related Java Specification Requests (JSR's) such as JSR248 (Mobile Service Architecture for CLDC) and umbrella JSR's such as Java Technology for the Wireless Industry (JTWI) that require development tools to assist in managing the runtimes/class libraries for development work and runtime binding.

This ability to develop for multiple targets and use common source code with different build configurations is critical in mobile Java development projects. In addition to this management of runtimes and the related challenges, mobile Java applications have unique launching and debug requirements. Unlike J2SE or J2EE, applications are not always simply placed on a server for download as needed. Rather, developers often require device emulators for debugging and testing on the development host.

Developers also require the ability to deploy, launch, debug, test, and analyze performance of the applications on the actual devices themselves, which can have different methods and levels of connectivity based on the class of the mobile device. Along with this requirement is the need for a robust deployment solution that can map to a final production environment.

Finally, the mobile Java developer still requires the normal set of development tools (editor, code generation and refactoring, UI design, etc.) Having a common set of tooling and frameworks across the mobile Java space makes the development effort and cost manageable for developers and reduces the learning time when moving from one mobile platform to the next.


You might also like

Why old iPhones become sluggish over time  — Macworld
One of the unusual consequences of being in the computer business is that I tend to own more devices than the average person.

Q&A

avatar
What's the ideal workspace for a web/mobile developer?

Since web/mobile developers are sitting down for most of the day, I would suggest integrating a standing desk into the workspace.
There are plenty of articles and research explaining the ill effects of prolonged sitting. If you didn't know already, it's hazardous to your