Challenges when developing Mobile Applications (AD 2008)
Proliferation of APIs
Even though the most prolific common runtime environment for Mobile Application Developers is JavaME, there is a large fragmentation in the Device APIs between different Phone Manufacturers and Phone "Tiers" (Low-end, Multi-Media, PDA style). In addition to this "Language fragmentation", there is a large diversity of "Features" available to developers depending on Carrier Versions of phones and "Security Privileges" of the applications. (e.g. on the same Phone, on the same Carrier, an application can access different levels of API's depending whether it is signed as a "Trusted" application or not.)
Proliferation of Tools
Another challenge for mobile application developer is the actual "deployment and testing" of their applications onto a phone. Many Manufacturers have created specialized tools and processes to connect a Phone to a development computer and copy application to the phone. (Deployment) After an application is deployed, there is often additional steps to enable Debugging and simulate different "Security Domains"
This has lead in the past to a situation where most Mobile Phone Manufacturers have created their own Device Specific Tools and utility programs to support the Mobile Developers.
Implications for the Developers
From a developer point of view, this creates a confusing picture.
Any developer would like to create and deploy their applications for an as big as possible set of devices. But - If a developer then tries to create a truly "Once, Run Anywhere" (TM) Application, the developer needs many different sets of Documentation, Tools and Utilities from different sources and different Manufacturers.
How Eclipse Can Help
Eclipse is a Platform for integrating "Tools" from different sources.
The goal of the Eclipse Mobile Working Group is to create a forum to aggregate and integrate those Tools and Utilities to give a developer a truly "INTEGRATED" Development Environment.
The "Working Title" for this product is the "Eclipse Mobile Application Development Kit" (MADK). (Ideas for a more creative name are welcome! :) )