| <?php require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); $App = new App(); $Nav = new Nav(); $Menu = new Menu(); include($App->getProjectCommon()); # All on the same line to unclutter the user's desktop' | |
| $pageTitle = ""; | |
| $pageKeywords = ""; | |
| $pageAuthor = ""; | |
| ob_start(); | |
| ?> | |
| <div id="maincontent"> | |
| <div id="midcolumn"> | |
| <h1>Mobile Tools for Java</h1><br> | |
| . | |
| </p> | |
| <h2>Introduction</h2> | |
| <?php | |
| include_once($_SERVER['DOCUMENT_ROOT'] . "/projects/fragments/proposal-page-header.php"); | |
| generate_header("Mobile Tools for Java"); | |
| ?> | |
| Mobile Tools for Java (MTJ) is a proposed open source project under the <b> | |
| <a target="_top" href="/dsdp/">Device Software Development | |
| Platform (DSDP)</a></b>.<p>This proposal is in the Project Proposal Phase (as defined | |
| in the | |
| <a href="/projects/dev_process/"> | |
| Eclipse Development Process document</a>) and is written to declare its intent and | |
| scope. This proposal is written to solicit additional participation and input from | |
| the Eclipse community. You are invited to comment on and/or join the project. Please | |
| send all feedback to the <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.dsdp.mtj">http://www.eclipse.org/newsportal/thread.php?group=eclipse.dsdp.mtj</a> | |
| newsgroup.</p> | |
| <h2>Background</h2> | |
| <p>The Java programming language is becoming more and more popular in mobile | |
| devices. Also, the richness of the device Java environment is getting better all the | |
| time and more applications can be written using Java, instead of native | |
| languages. As Java continues to grow in popularity, along with the proliferation | |
| of higher functioning mobile devices, it is apparent that Java applications can | |
| be developed to run on multiple targets, with a common set of application code. | |
| <br> | |
| Developing applications to the mobile Java environment presents unique | |
| challenges to developers. Specifically, unlike the straightforward J2SE and J2EE | |
| environments, there are a number of configurations and profiles (such as | |
| <a href="http://java.sun.com/products/midp/index.jsp">MIDP</a> on | |
| top of the <a href="http://java.sun.com/products/cldc/index.jsp">CLDC</a> | |
| and <a href="http://java.sun.com/products/foundation/index.jsp">Foundation</a> and | |
| <a href="http://java.sun.com/products/personalprofile/index.jsp">Personal Profiles</a> on top of the | |
| <a href="http://java.sun.com/products/cdc/">CDC</a>), along with a number of JSRs | |
| (and umbrella JSRs such as <a href="http://java.sun.com/products/jtwi/">JTWI</a> or | |
| <a href="http://www.jcp.org/en/jsr/detail?id=248">JSR-248</a>) 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 challenges it | |
| presents, mobile Java applications have unique launching and debug requirements | |
| and unlike J2SE or J2EE, applications are not always just placed on a server for | |
| download as needed. Rather, developers require device emulators for | |
| on-development-system test and debug, the ability to launch, test, debug and | |
| analyze performance of the applications on the devices themselves, where varying | |
| classes of these devices have different methods and levels of connectivity. | |
| There is also the need for a robust deployment solution to deliver the code | |
| under development to the device, and also be able to map that to a production | |
| deployment solution. Of course, this is all in addition to the normal set of | |
| application development tools (such as code creation, UI design and so on) for a | |
| specific market segment.<br> | |
| A common set of tooling and frameworks across these targets, and the mobile Java | |
| space makes the development effort and cost manageable for developers. This is | |
| why it is important to have robust Eclipse frameworks in place to support mobile | |
| Java application development alongside the rich client and server counterparts</p> | |
| <h2>Description</h2> | |
| <p>The goal of the Mobile Tools for Java project is to extend existing Eclipse | |
| frameworks to support mobile device Java application development.<br> | |
| MTJ will enable developers to develop, debug and deploy mobile Java applications | |
| to emulators and real devices.</p> | |
| <h3>Core features:</h3> | |
| <h4>Device & Emulator framework</h4> | |
| <p>Normally runtimes are managed in Eclipse as a JRE. In the mobile segment, the | |
| runtime environment is a device emulator or real device. The MTJ project will | |
| provide features to manage mobile runtimes and provide frameworks for device | |
| vendors to add those runtimes to the development environment.</p> | |
| <h4>Deployment framework</h4> | |
| <p>One vital part in mobile development is testing on real devices. To make that | |
| as easy as possible the developer must have methods to transfer mobile | |
| applications to handheld devices using local methods (e.g. Bluetooth, USB, | |
| IrDA). The idea of MTJ is to develop a framework that provides an API for vendor | |
| specific plug-ins, which then do the actual deployment. </p> | |
| <h4>Generic and customizable build process for mobile application development</h4> | |
| <p>The goal is to enhance normal build process with mobile extensions like JAR | |
| and JAD file generation. With the varying configurations and profiles of mobile | |
| Java, this is a critical feature to enable developers to manage code production. | |
| Another requirement is to provide ways to add additional tasks to the build | |
| process e.g. signing. This work should extend the builder frameworks of Eclipse.</p> | |
| <h4>Debugging</h4> | |
| <p>This is related to Device & Emulator framework. The goal of this item is to | |
| enhance the current Debugging environment so that it is possible to use mobile | |
| runtimes, either emulator or a real device. This task extends to launching the JVM | |
| and applications(s) on the local emulator or on the device itself, and allowing | |
| the developer to attach to that application under test. In the mobile space, | |
| this is tightly integrated with the Device and Emulator frameworks, and will | |
| need to provide a robust framework for device and platform makers to extend to | |
| their devices specific connectivity. This work should extend the debug | |
| frameworks of Eclipse.</p> | |
| <h4>Application creation wizard</h4> | |
| <p>Application wizards in general exist in the Eclipse platform. It is possible | |
| to generate Java projects with or without application skeleton code but the | |
| existing wizards are not usable for Mobile development. This task is tied to the | |
| differing configurations and profiles of mobile Java and relieves the developer | |
| of needing to worry about the boilerplate code for each of the application | |
| configuration/profile types. One of the goals of MTJ is to enhance the existing | |
| wizards by providing Mobile specific project wizard.</p> | |
| <h4>UI design tools</h4> | |
| <p>The goal of these tools is to improve efficiency (easy drag and drop without | |
| coding) and also decrease the entry barrier for newcomers. There are already | |
| visual designers in the Eclipse platform but they dont contain support for | |
| mobile devices. The target is to bring mobile UI styles, components and layout | |
| rules to Eclipse. The idea is to create a framework that enables the use of | |
| different kinds of UI implementations e.g. different resolutions, different | |
| vendor specific look and feel.. Also in the scope of this project, in addition | |
| to this framework is at a minimum. a generic UI designer implementation. <br> | |
| A Screen Flow designer tool would provide ways to develop application logic | |
| easily. It would provide easy drag and drop functionality to add different kind | |
| of screens and transitions between them. These transitions are caused by mobile | |
| specific ways like commands, list item selections.<br> | |
| The idea is to utilize Eclipse <a href="/vep/">Visual Editor | |
| Project </a>and extend it so that device screen | |
| engines from different vendors can be plugged in.</p> | |
| <h4>Localization</h4> | |
| <p>The mobile application market is world wide so applications typically need to | |
| be localized. Therefore, an important requirement is for tooling that makes this | |
| task easier.</p> | |
| <h4>Obfuscation and Code Size/Performance Optimization</h4> | |
| <p>Mobile devices are restricted by memory so it is important that code is | |
| compresses as small as possible. There are a number of ways this can be | |
| accomplished. Obfuscation is one possibility, along with tooling and frameworks | |
| to enable performance and size analysis on the emulators or physical devices, | |
| which can be driven back into the build process or just for the developer to | |
| streamline their own code.</p> | |
| <h4>Signing tool </h4> | |
| <p>Security becomes more important in mobile devices because they are open | |
| and accessible to 3rd party developers. One solution for this is to require that | |
| the applications be signed with an authorized signing certificate. The signing | |
| process is very similar to signing a normal JAR signing but there are some | |
| specific mobile needs. The goal of MTJ is to support tooling to sign mobile | |
| applications. This signing tool will provide extensibility to add solution | |
| specific signing tools. This is exemplary of other external tools for mobile | |
| Java that need to be able to be integrated to a customizable build process. </p> | |
| <h2>Status</h2> | |
| <p>This project is currently in proposal phase and Nokia is actively seeking | |
| interested parties for this project. Detailed planning for initial delivery of | |
| MTJ is underway and development is beginning.</p> | |
| <h2>Organization</h2> | |
| <a href="http://www.nokia.com/">Nokia</a>, as the submitter of this proposal, welcomes | |
| interested parties to post to the | |
| <a href="http://www.eclipse.org/newsportal/thread.php?group=eclipse.dsdp.mtj">eclipse.dsdp.mtj</a> newsgroup | |
| and ask to be added to the list as interested parties or to suggest changes to this | |
| document. The proposed project members include: | |
| <h3>Proposed project lead and initial committers</h3> | |
| <ul> | |
| <li> | |
| <p>Mika Hoikkala, Nokia (proposed project lead)</p> | |
| </li> | |
| <li> | |
| <p>Arto Laurila, Nokia</p> | |
| </li> | |
| <li> | |
| <p>Marius Voicu, Nokia</p> | |
| </li> | |
| <li> | |
| <p>Minna Bloigu, Nokia</p> | |
| </li> | |
| <li> | |
| <p>+ 2 TBD, Nokia<br /> | |
| </p> | |
| </li> | |
| </ul> | |
| <h3>Interested parties</h3> | |
| <h4>The following companies will participate in this project.</h4> | |
| <ul> | |
| <li>IBM, David Reich</li> | |
| </ul> | |
| <h4>The following companies have expressed interest in this project.</h4> | |
| <ul> | |
| <li> | |
| <p>Sybase</p> | |
| </li> | |
| </ul> | |
| <h2>Tentative Plan</h2> | |
| <p>The goal for the MTJ project is to have a first release simultaneous with the | |
| next main release of the Platform. Due to the aggressive schedule, the premise | |
| for this first release is to have the core set of functionality to provide a | |
| project that is usable by a mobile Java developer to generate and test code.</p> | |
| <p>It is hoped and assumed that a fair amount of needed functionality will be | |
| contributed by Nokia and also by other project contributors. The first step for | |
| the project is to understand scope of initial contribution and then plan what | |
| new code needs to developed, what to utilize from contributions and how to | |
| refactor and integrated new and existing code to one initial package.</p> | |
| Regardless of the initial contribution, focus in the first phase is to develop | |
| mandatory pieces from a mobile development point of view. The most important | |
| features are Device & Emulator framework, Deployment framework and Mobile | |
| enhanced build process. This work will be immediately followed by code | |
| development tooling such as wizards and UI builder. Then followed by other | |
| tooling like localization and obfuscation.<p> | |
| The working draft of the plan calls for interim milestone releases in December | |
| 2005, March 2006 with a first release level delivery concurrent with the next | |
| major release of the Eclipse platform (at the time of this writing, this would | |
| be Eclipse 3.2). Due to the early stage of this project this is subject to | |
| change.</p> | |
| It is a challenging task to define the content and future directions of the | |
| Mobile Tools for Java project at this point. The high level intent is to provide | |
| mobile tool frameworks for any interesting enhancements in the mobile world. | |
| There will be a placeholder for any JSR or de facto standard that gets industry | |
| acceptance. Here are a few examples: | |
| <a href="http://www.jcp.org/en/jsr/detail?id=232">JSR-232</a> (Mobile Operational Management), | |
| <a href="http://www.jcp.org/en/jsr/detail?id=249">JSR-249</a> (Mobile Service Architecture for CDC), | |
| <a href="http://www.jcp.org/en/jsr/detail?id=271">JSR-271</a> (MIDP 3.0) and so on.</p> | |
| </div> | |
| </div> | |
| <?php | |
| # Paste your HTML content between the EOHTML markers! | |
| $html = ob_get_contents(); | |
| ob_end_clean(); | |
| # Generate the web page | |
| $App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html); | |
| ?> |