Mobile Tools for Java - Current Project Status


Published on

EclipseCon 2008 presentation

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Mobile Tools for Java - Current Project Status

  1. 1. Mobile Tools for Java - Current Project Status Christian Kurzke Craig Setera Gustavo de Paula
  2. 2. A Brief MTJ History <ul><li>MTJ Project was submitted by Nokia in 2005 </li></ul><ul><ul><li>Main project sponsors were Nokia and IBM </li></ul></ul><ul><li>Mobile application development environment </li></ul><ul><ul><li>CLDC and CDC based devices </li></ul></ul><ul><ul><li>Deploy and Execute an application </li></ul></ul><ul><ul><li>Sign / Obfuscate the application </li></ul></ul><ul><ul><li>Device Fragmentation </li></ul></ul><ul><li>Focus was on providing a framework that other vendors can extend to create their own JavaME tools </li></ul><ul><li>Release 1.0 was planned to September 2007 </li></ul><ul><li>MTJ current release is 0.7 from November 2006 </li></ul>
  3. 3. A Brief MTJ History… during 2007 <ul><li>Nokia and IBM could not continue the support on the Project </li></ul><ul><li>MTJ 0.7 was “too much” framework </li></ul><ul><li>There were few companies interested in developing their own tools on top of the MTJ framework </li></ul><ul><ul><li>No developer community </li></ul></ul><ul><ul><li>Small user community </li></ul></ul><ul><li>Currently renewed discussions about focus of MTJ, new potential contributors, Motorola, RIM </li></ul><ul><ul><li>MTJ Reboot </li></ul></ul><ul><ul><li>Evaluate other option to MTJ, such as EclipseME </li></ul></ul>
  4. 4. EclipseME – Current Option in Eclipse World <ul><li>EclipseME is an Eclipse plug-in for JavaME development </li></ul><ul><ul><li>Focus on CLDC/MIDP (other profiles could be supported) </li></ul></ul><ul><ul><li>Provides all basic services (build, sign, obfuscate, etc.) </li></ul></ul><ul><ul><li>Provide some extensibility , but it is not its main focus </li></ul></ul><ul><li>First public releases on 2003 </li></ul><ul><li>Current version is 1.7.8 </li></ul><ul><ul><li>Almost 500.000 downloads </li></ul></ul><ul><li>Created and maintained by Craig Setera </li></ul><ul><li>Used by all major mobile device manufactures </li></ul><ul><ul><li>Nokia, Motorola, Sony Ericsson, etc. </li></ul></ul><ul><li>EclipseME focus is the opposite of current MTJ focus </li></ul><ul><ul><li>Framework vs. tool </li></ul></ul>
  5. 5. Framework vs. Tool <ul><li>Who is the main target user of MTJ? </li></ul><ul><ul><li>Tool Developer: needs a mobile development framework </li></ul></ul><ul><ul><li>JavaME Developer: need a mobile development tool </li></ul></ul><ul><li>Current MTJ Approach seems to be good for Tools developer , but not for JavaME developers </li></ul><ul><li>EclipseME is pragmatic , targets JavaME developers at the expense of some flexibility </li></ul>
  6. 6. MTJ vs. EclipseME User Experience Features NOK NOK NOK NOK OK OK OK OK OK OK OK MTJ OK Specify project folder (resources and deployment) OK Set different runtime platforms (device) per project OK Run MIDlet Suite OTA OK Run MIDlet directly NOK MIDlet templates OK Run MIDlet suite via JAD OK Build MIDlet Suite OK New MIDlet wizard OK New MIDlet project wizard OK Sing MIDlet suite Scan file system for SDK User Experience OK EclipseME NOK NOK OK OK OK OK OK OK MTJ OK Preprocessing OK Obfuscator NOK CDC / FP/ PP Support NOK Framework that support manufacture specific UEI fields NOK Framework that support different build processes NOK Framework ready for deployment on target device NOK Framework ready for on device debugging Support different signing providers Features NOK EclipseME
  7. 7. MTJ Reboot Proposed Plan Objectives <ul><li>Eclipse projects are all about creating communities </li></ul><ul><ul><li>Developer and user communities </li></ul></ul><ul><li>Eclipse project are also about creating frameworks </li></ul><ul><li>Final MTJ must be </li></ul><ul><ul><li>“ Framework enough ” that a company can extend to create its own tool </li></ul></ul><ul><ul><li>“ Tool enough ” that can be used by a mobile application developer as it is </li></ul></ul><ul><li>Create a community around it </li></ul>
  8. 8. MTJ Reboot Proposed Plan <ul><li>Use EclipseME 1.7.8 as a base for the MTJ 1.0 development </li></ul><ul><ul><li>Less risk </li></ul></ul><ul><ul><li>Large user community </li></ul></ul><ul><ul><li>Easier to create a developer community </li></ul></ul><ul><li>Re-structure EclipseME code to make it more flexible </li></ul><ul><ul><li>Deployment </li></ul></ul><ul><ul><li>Signing </li></ul></ul><ul><ul><li>Packing </li></ul></ul><ul><li>Port all interesting features that are already implemented on current MTJ 0.7 into MTJ 1.0 </li></ul>
  9. 9. Initial MTJ Feature Plan EclipseME 1.7.8 MTJ 0.7 MTJ 0.10 MTJ 0.11 MTJ 1.0 <ul><li>EclipseME Code </li></ul><ul><li>Re-organize code with </li></ul><ul><li>Eclipse code standards </li></ul><ul><li>Setup build environment </li></ul><ul><li>Re-structure code </li></ul><ul><li>(increase flexibility) </li></ul><ul><li>Adapt code from MTJ 0.7 </li></ul><ul><ul><li>Signing </li></ul></ul><ul><ul><li>Deployment </li></ul></ul><ul><ul><li>Packing </li></ul></ul><ul><ul><li>Import netbeans </li></ul></ul><ul><ul><li>Import carbideJ </li></ul></ul><ul><ul><li>MIDlet templates </li></ul></ul>Q2/2008 Q3/2008 Q4/2008
  10. 10. Initial MTJ Feature Plan <ul><li>Re-structure code to make it more flexible and usable to different vendors </li></ul><ul><ul><li>Define a plugin model to support more flexibility. Focus on: </li></ul></ul><ul><ul><li>Pre-verify </li></ul></ul><ul><ul><li>Signing </li></ul></ul><ul><ul><li>Packaging </li></ul></ul><ul><ul><li>Deploying </li></ul></ul><ul><ul><li>Device Manager </li></ul></ul><ul><ul><li>Obfuscation </li></ul></ul><ul><ul><li>Preprocessing </li></ul></ul><ul><li>Include an API layer between UI and Core (possibly with code from current MTJ 0.7) </li></ul><ul><li>Define Extension Points to implement the API layer </li></ul>MTJ 0.11 <ul><li>Include MIDP 3.0 support </li></ul><ul><li>Device Fragmentation support </li></ul><ul><li>Enhance documentation (context sensitive help and cheat sheets) </li></ul><ul><li>LCDUI and/or SVG UI Editor </li></ul><ul><li>Mobile JUnit </li></ul><ul><li>Enhance Device Editor UI </li></ul>Others (not yet committed) <ul><li>Include deployment support (re-use MTJ 0.7 solution) </li></ul><ul><li>Include key store UI (re-use MTJ 0.7 solution) </li></ul><ul><li>Include import net beans project wizard (re-use MTJ 0.7 solution) </li></ul><ul><li>Include import carbideJ project wizard (re-use MTJ 0.7 solution) </li></ul><ul><li>MIDlets templates feature (re-use MTJ 0.7 solution) </li></ul><ul><li>Improve antenna support </li></ul>MTJ 1.0 <ul><li>Move EclipseME to MTJ repository </li></ul><ul><li>Re-organize EclipseME code to follow Eclipse standards </li></ul><ul><li>Setup build environment </li></ul><ul><li>Eclipse Foundation Intellectual Property review on new code </li></ul>MTJ 0.10 <ul><li>Current MTJ Code </li></ul>MTJ 0.7
  11. 11. JavaME tooling for the Eclipse Platform: what we can expect? BOF <ul><li>Comes to MTJ BOF </li></ul><ul><ul><li>Room 203/204 on Tuesday March 18th, 2008 8:45pm </li></ul></ul><ul><li>Discuss the proposed plan with the Eclipse community </li></ul><ul><li>Framework vs. Tool discussion: what we want from MTJ? </li></ul><ul><li>Which flexibility should be included on MTJ? </li></ul>