Presentation is loading. Please wait.

Presentation is loading. Please wait.

EclipseME Java Micro Edition The Eclipse Way Craig Setera April 19, 2006.

Similar presentations


Presentation on theme: "EclipseME Java Micro Edition The Eclipse Way Craig Setera April 19, 2006."— Presentation transcript:

1 EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006

2 Agenda Who Am I? Who Am I? About J2ME About J2ME J2ME pain J2ME pain Other J2ME tools Other J2ME tools Eclipse Features Eclipse Features EclipseME EclipseME Basics Basics Features Features Development and development challenges Development and development challenges Demo Demo Futures Futures

3 Who Am I? 15+ years software in industry 15+ years software in industry 15+ years of Object Oriented programming 15+ years of Object Oriented programming Smalltalk, Java Smalltalk, Java Open source guy Open source guy jMechanic, EclipseME, ZeeME jMechanic, EclipseME, ZeeME Cell Phone Geek Cell Phone Geek

4 Why do I need something different for Mobile Devices? Java ™ 2 Platform, Micro Edition (J2ME ™ ) is the programming model introduced to standardize programming for embedded devices Java ™ 2 Platform, Micro Edition (J2ME ™ ) is the programming model introduced to standardize programming for embedded devices Specifications are designed as part of the Java Community Process (JCP) Specifications are designed as part of the Java Community Process (JCP) J2ME is a family of specifications, designed as a series of layered APIs J2ME is a family of specifications, designed as a series of layered APIs Configuration Configuration Profiles Profiles Optional APIs Optional APIs JVM Configuration Profile Optional APIs

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

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

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

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

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

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

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

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

13 What is EclipseME? Extensible Platform A minimal platform for extension A minimal platform for extension Extension points for adding new wireless toolkit definitions Extension points for adding new wireless toolkit definitions Extension points for defining device editors Extension points for defining device editors EclipseME is more tool than platform EclipseME is more tool than platform

14 EclipseME “Professional” Open Source Good free support Good free support Mailing lists Mailing lists Bug tracker Bug tracker Enhancement request tracker Enhancement request tracker Polished functionality Polished functionality Polished and accurate help Polished and accurate help Polished and accurate web site Polished and accurate web site

15 EclipseME Development Open-source Open-source Eclipse Public License Eclipse Public License Philosophies: Philosophies: Release early, release often Release early, release often Open source can be professional and polished Open source can be professional and polished Sourceforge hosted Sourceforge hosted http://eclipseme.org is hosted elsewhere for added flexibility http://eclipseme.org is hosted elsewhere for added flexibility http://eclipseme.org 2 person team with benevolent dictator 2 person team with benevolent dictator

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

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

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

19 Future of EclipseME New Features New Features Addressing Device Fragmentation Addressing Device Fragmentation Preprocessing support Preprocessing support Batch build for multiple device definitions Batch build for multiple device definitions Lots of new device support Lots of new device support Palm, Blackberry, etc. Palm, Blackberry, etc. Ongoing support for new versions of previous devices Ongoing support for new versions of previous devices New tools New tools J2MEUnit, J2ME Polish J2MEUnit, J2ME Polish Web Service stub generation Web Service stub generation Bugs, bugs and bugs Bugs, bugs and bugs

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

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

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

23 Q&A Ask away… Ask away…


Download ppt "EclipseME Java Micro Edition The Eclipse Way Craig Setera April 19, 2006."

Similar presentations


Ads by Google