Transcript Document

EclipseME

Java Micro Edition The Eclipse Way Craig Setera [email protected]

April 19, 2006

Agenda

     Who Am I?

About J2ME  J2ME pain Other J2ME tools Eclipse Features EclipseME  Basics     Features Development and development challenges Demo Futures

Who Am I?

    15+ years software in industry 15+ years of Object Oriented programming  Smalltalk, Java Open source guy  jMechanic, EclipseME, ZeeME Cell Phone Geek

Why do I need something different for Mobile Devices?

   Java ™ 2 Platform, Micro Edition (J2ME programming model introduced to standardize programming for embedded devices ™ ) is the Specifications are designed as part of the Java Community Process (JCP) J2ME is a family of specifications, designed as a series of layered APIs    Configuration Profiles Optional APIs

Optional APIs Profile Configuration JVM

The Pain of Java ME

  Small subset of J2SE libraries  Some additional micro edition libraries Preverification   Classes must be pre-verified The same process as split verification in J2SE Mustang

The Pain of Java ME

  Device Fragmentation    Each device has its own constraints  Memory, processing speed, screen size Memory is severely constrained  Use of obfuscation to control library size Each device has its own set of quirks Most development is emulated  Too many devices to develop for all   Emulators and devices often don’t match behavior (or bugs) Most real devices do not support debugging

The Pain of J2ME

 Deployment    Runtime deployment Execution code deployment  Some devices require new frameworks  Example: IBM J9 environment Connection environments   Network Direct connects (USB, serial, bluetooth, etc)  Over the air (OTA)

What J2ME tools are out there already?

  Eclipse Based Toolsets  IBM ® WebSphere ® Studio Device Developer   Nokia Developer’s Suite for J2ME Other SDKs that extend these or existing functionality Non-Eclipse Based Toolsets  NetBeans with Mobility Pack    Sun Java Wireless Toolkit Borland jBuilder Mobile Edition Other SDKs

What Makes Eclipse Unique?

  Incremental build support  Eclipse provides a compiler that understands structural changes   Only compiles dependencies as necessary Automatically compiles changed files Plug-in ability   Provides ability to extend all aspects of the Eclipse platform Provides ability to add new “builders”

What is EclipseME?

 History    Needed Eclipse tools for programming my cell phone  Couldn’t find anything at the time, thus EclipseME was born Sourceforge project Started in July 2003   29 released versions Nearly 200,000 downloads

What is EclipseME?

Basic Functions

 Glue between Eclipse and J2ME toolkits    Plug-ins into Eclipse providing extensions to the Java Development Tools (JDT)  A goal of seamless integration for Java ME development Incremental preverification Eclipse builder Emulator run and debug launch integration

What is EclipseME?

Features

             Multiple wireless toolkit support Wireless toolkit preferences Platform component and definition support Create new J2ME Midlet Suite Project Create new MIDlet Java Application Descriptor (JAD) editor Automatic incremental preverification Eclipse launch support for Emulator MIDlet debugging support JAR and obfuscated JAR packaging Over the air deployment testing server Export Antenna build files Automatic MIDlet signing

What is EclipseME?

Extensible Platform

 A minimal platform for extension    Extension points for adding new wireless toolkit definitions Extension points for defining device editors EclipseME is more tool than platform

EclipseME “Professional” Open Source

    Good free support    Mailing lists Bug tracker Enhancement request tracker Polished functionality Polished and accurate help Polished and accurate web site

EclipseME Development

    Open-source  Eclipse Public License Philosophies:   Release early, release often Open source can be professional and polished Sourceforge hosted  http://eclipseme.org

flexibility is hosted elsewhere for added 2 person team with benevolent dictator

EclipseME Challenges

   “Keeping up with the Jones'”   Eclipse tools are a moving target Wireless Toolkit vendors are a moving target Team Management  Balance is tough    It is tough to give the “good” work away It is tough to give up creative control It is tough to do everything with one person The “real world” gets in the way  Managing to find time for EclipseME can be difficult sometimes

Why Open Source?

   Benefit from other projects   I’ve personally benefitted from other open source My employers have benefitted It is interesting and scratches an itch If done well, it is good publicity   Good for “networking” Good for job offers

Demo

      Manage devices Create Midlet suite Create midlet Application Descriptor Editor Debug midlet Packaging support

Future of EclipseME

 New Features  Addressing Device Fragmentation   Preprocessing support Batch build for multiple device definitions    Lots of new device support   Palm, Blackberry, etc.

Ongoing support for new versions of previous devices New tools   J2MEUnit, J2ME Polish Web Service stub generation Bugs, bugs and bugs

Future of EclipseME

 Eclipse Mobile Tools for Java Project   An official Eclipse Foundation project Formed by Nokia and IBM   EclipseME is involved in MTJ    I am on the Project Management Committee I am providing architecture, design and implementation direction MTJ is using EclipseME code EclipseME will eventually be replaced by MTJ   EclipseME users will be migrated to MTJ EclipseME may still be a layer on top of MTJ

References

   Eclipse  http://www.eclipse.org

EclipseME  http://eclipseme.org

  http://sourceforge.net/projects/eclipseme/ EclipseME—Another IDE Option for J2ME Development   Jim White http://www.devx.com/wireless/Article/29233 Eclipse Mobile Tools for Java  http://www.eclipse.org/dsdp/mtj/

Thank You!

   Thanks to Jim White   For a great EclipseME article For putting me in contact with Jeff Jensen Thanks to Jeff Jensen for inviting me Thanks to TCJUG for having me

 Ask away…

Q&A