MTJ Taking Mobile Java Developers to the Next Level

36
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary Jan 21, 2009 Copyright © 2009 Motorola Inc., Made available under the Eclipse Public License v 1.0 1 MTJ Taking Mobile Java Developers to the Next Level Christian Kurzke Architect, Motorola Developer Tools Eclipse MTJ Project Lead Craig Setera EclipseME founder

description

EclipseCon 2009 presentation

Transcript of MTJ Taking Mobile Java Developers to the Next Level

Page 1: MTJ Taking Mobile Java Developers to the Next Level

© 2002 IBM Corporation

Confidential | Date | Other Information, if necessaryJan 21, 2009 Copyright © 2009 Motorola Inc., Made available under the Eclipse Public License v 1.0

1

MTJTaking Mobile Java Developers to the Next Level

Christian KurzkeArchitect, Motorola Developer ToolsEclipse MTJ Project Lead

Craig Setera

EclipseME founder

Page 2: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Abstract

This talk is targeted at

* J2ME developers who want to become more productive in their daily work * Java developers who can now create mobile applications from within their favorite IDE * Developers who want to extend and customize MTJ

Eclipse has long become the de-facto standard IDE for Java developers, and with the success of the newly released MTJ "Mobile Tools for Java" extensions, Eclipse is about to do the same in the Mobile Java application development space.

The DSDP Mobile Tools for Java (MTJ) project was created in 2005, and has since been providing extensions Eclipse to enhance the productivity of Mobile Application Developers.

In 2008 the MTJ project merged with the successful EclipseME mobile IDE project, resulting in a 0.9 release of MTJ in October 2008.

MTJ integrates with JavaME SDKs from all major device manufactures and include features such as:

* Build and package MIDlet Suite for deployment, * Run the MIDlet in one specific emulated device, * Debug the MIDlet in one specific emulated device.

Besides those device specific tasks, MTJ also enhances developer productivity by supporting common tasks such as:

* Built in pre-processor support for multiple target device support * Support for scripted ANT and ANTENNA builds * Packaging and Signing support

MTJ also helps the add-on developers. It provides a basic framework that can be used to customize some of MTJ main functionalities, such as the vendor-specific SDK integration and build process.

MTJ also has mechanisms which allow 3rd parties to package and distribute J2ME Libraries which can automatically be integrated into mobile development projects.

In this talk we will give a high level overview of the features of MTJ, and how it helps to increase the productivity of a Mobile Application Developers. This includes a hands on demo how to create, run and debug a J2ME application using MTJ.

At the end of the talk we will dive into more detail and explain how MTJ can be extended. We will demonstrate two common usecases:

* How to write simple adapters to add support for custom SDKs * How to package 3rd party libraries to publish them o MTJ projects.

Page 3: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Agenda

Who should attend this talk

Why Java development for mobile devices is different

Eclipse Mobile Tools for Java Overview

MTJ for the Mobile Application Developer

MTJ for the Add-on provider

MTJ for the SDK Developer/Tools Vendor

Eclipse Mobile Working Group (Pulsar)

Summary

Page 4: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

MTJ for Mobile Application Developers

Java is the most ubiquitous runtime platform for mobile devices:

Java 2 ME: Available on most phones in the market today

Andoid (with the Dalvik Java-like programming language)

Sprint Titan (Eclipse eRCP)

Eclipse is the leading IDE for Java development with support for the

end-to-end Development cycle of mobile applications

Project creation wizards (with device profile and library support)

Build tools integration (pre-verify, package, sign)

Runtime tools (Emulator control and on device deploy/debug)

Page 5: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

MTJ for Add-in Providers

There are many existing Eclipse extensions (plug-ins) which can also be very useful for mobile developers.

Most JDT related plug-ins can be used already with MTJ(or can be easily adapted)

Profilers, Static Analyzers, etc

MTJ has Extension Points to allow 3rd party plug-ins to register new libraries with are available to developers.

Set up compile paths/packaging, etc

Good time for Add-in providers to join API discussions. Join us in the MTJ BOF session Get involved in Mobile Industry Working Group

Page 6: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

MTJ for SDK creators, OEMs and mobile device manufacturers

MTJ is filling the void of tooling for many common “mobile” software development tasks:

Developers targeting a family of devices (touchscreen, keypad, etc)

Packaging, signing and deployment

Using MTJ gives you a headstart and allows to focus on device specific “value add” plug-ins

MTJ has a very flexible interface to integrate mobile device specific SDKs, emulators and proprietary build/deploy tools

Many off the shelf J2ME SDKs can be used with MTJ if they support the “Unified Emulator Interface” (UEI)

Other proprietary SDKs can be integrated by using the MTJ Device Import framework

Page 7: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Agenda

Who should attend this talk

Why Java development for mobile devices is different

Eclipse Mobile Tools for Java Overview

MTJ for the Mobile Application Developer

MTJ for the Add-on provider

MTJ for the SDK Developer/Tools Vendor

Eclipse Mobile Working Group (Pulsar)

Summary

Page 8: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

What is special about Java development tools for mobile devices?

Many mobile device SDK’s are command-line based:

Special build tools to compact/pre-verify/sign applications

Start and control emulators, deploy debug etc.

General Purpose “Java IDEs” do not support those custom tasks. Developers often have to do manual configuration/integration

A truly “integrated” development environment can significantly increase developer productivity!

Page 9: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Developing for a “portfolio” of mobile devices

More challenges for developers who target multiple devices.

Most devices support MIDP 2, but differences based on:

Device Capabilities (Screen Size, input keys, optional JSRs)

Carrier Restrictions (access to certain JSRs, Signing)

A good IDE will support the development, build, packaging, sign, deployment of applications to multiple phones

Integrate Solutions such as Antenna, possibly J2ME Polish etc.

Page 10: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Agenda

Who should attend this talk

Why Java development for mobile devices is different

Eclipse Mobile Tools for Java Overview

MTJ for the Mobile Application Developer

MTJ for the Add-on provider

MTJ for the SDK Developer/Tools Vendor

Eclipse Mobile Working Group (Pulsar)

Summary

Page 11: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

About IDEs and SDKs

A Software Development Kit (SDK) includes:

Build/Compile tools

Header files, libraries, anything needed for Compiling (and linking)

Other tools like: Packaging, signing, remote debugging, deployment tools, etc.

An Integrated Development Kit (IDE) includes:

An Editor, which interacts with the build environment to e.g.:

Highlight compile errors in Source Code, manage build files Integration of SDK

Allow “one click” build/package/deploy Integrate with the Emulator

Eclipse is the IDE, and Mobile Tools for Java (MTJ) is the integration “glue” to phone SDKs

Page 12: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

The Unified Emulator Interface (UEI)?

Defines the “interface” between a J2ME SDK and an IDE

“de-facto” standard for J2ME emulator commandline calling conventions

Published by SUN in 2006: https://uei.dev.java.net/

No activity since the 1.0.2 version (April 2006) of the Specification

Standardizes Directory Structure

Commands

Pre-Verifier Execution

Getting Information About the Emulator

Application Deployment

Debugging and Testing

Keytool Execution

Page 13: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

High level overview of a typical J2ME development environment

IDE (Eclipse)

Desktop OS (Windows, Mac, Linux)

Java Editor Extensions

Eclipse MTJ

Phone SDK•Emulator•Build tools•Runtime tools

Unified EmulatorInterface

(UEI)

Phone SDK•Emulator•Build tools•Runtime tools

Phone SDK•Emulator•Build tools•Runtime tools

Page 14: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

MTJ Legacy: EclipseME

EclipseME is an Eclipse plug-in for JavaME development Focus on CLDC/MIDP (other profiles could be supported) Provides all basic services (build, sign, obfuscate, etc.) Provide some extensibility, but it is not its main focus

First public releases in 2003 Around 600.000 downloads to date

Created and maintained by Craig Setera

Not a “Eclipse Foundation” project, but still distributed under the EPL By 2008 it was used by all major mobile device manufactures

Nokia, Motorola, Sony Ericsson, etc.

EclipseME uses Unified Emulator Interface to integrate with SDKs from Phone vendors, or the Wireless Toolkit (WTK) from SUN

Page 15: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

MTJ is the new EclipseME(www.eclipse.org/dsdp/mtj)

Eclipse MTJ has evolved in parallel with EclipseME, stronger focus on extensibility for tools vendors

In Jan 2008 new leadership (Motorola) and renewed focus on “developer experience” lead to merge of EclipseME and MTJ

Now, MTJ is the “official” JavaME development tool plug-in for Eclipse

Provide all necessary support to develop MIDP-based applications

Import SDKs (UEI and some proprietary formats supported)

Create Project / MIDlet Wizards

Edit MIDlet Suite Application Descriptor

Build MIDlet Suite Package

Run / Debug MIDlet

Page 16: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

MTJ Roadmap

EclipseME 1.7.8

MTJ 0.7 codebase

MTJ 0.9 MTJ 0.9.1 MTJ 1.0

• Adapt to Eclipse code standards• Setup build environment• Add Import from

•Netbeans •EclipseME

• Enhanced JAD Editor

• Bug fixes• Library Support• MIDlet Localization • Multiple Device Support

• MIDletTemplates• Re-structure code (increase flexibility)• Adapt code from MTJ 0.7

• Signing / Keystore• Deployment & Debugging

Q3/2008 Q4/2008 Q2/2009

Refactor

Galileo

Page 17: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Agenda

Who should attend this talk

Why Java development for mobile devices is different

Eclipse Mobile Tools for Java Overview

MTJ for the Mobile Application Developer

MTJ for the Add-on provider

MTJ for the SDK Developer/Tools Vendor

Eclipse Mobile Working Group (Pulsar)

Summary

Page 18: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Demo

Eclipse & MTJ in action

Page 19: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Title

Page 20: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Agenda

Who should attend this talk

Why Java development for mobile devices is different

Eclipse Mobile Tools for Java Overview

MTJ for the Mobile Application Developer

MTJ for the Add-on provider

MTJ for the SDK Developer/Tools Vendor

Eclipse Mobile Working Group (Pulsar)

Summary

Page 21: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Title

Slides about Library packaging/distribution functionality

Page 22: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Agenda

Who should attend this talk

Why Java development for mobile devices is different

Eclipse Mobile Tools for Java Overview

MTJ for the Mobile Application Developer

MTJ for the Add-on provider

MTJ for the SDK Developer/Tools Vendor

Eclipse Mobile Working Group (Pulsar)

Summary

Page 23: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

MTJ

Library A

Vendor SpecificSDK

MTJ as a Framework

UI

Core

DeviceImporter

DeviceEditor

JADAttributes

JADPages

Library

Library N

Page 24: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Title

Page 25: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Agenda

Who should attend this talk

Why Java development for mobile devices is different

Eclipse Mobile Tools for Java Overview

MTJ for the Mobile Application Developer

MTJ for the Add-on provider

MTJ for the SDK Developer/Tools Vendor

Eclipse Mobile Working Group (Pulsar)

Summary

Page 26: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Eclipse Mobile Working GroupThe “Pulsar” Package

Goal:

Lowering the “barrier to entry” for mobile developers

Making it easier to find, install and integrate mobile SDKs

Help to “standardize” development experience between handsets

Page 27: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Title

Page 28: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Agenda

Who should attend this talk

Why Java development for mobile devices is different

Eclipse Mobile Tools for Java Overview

MTJ for the Mobile Application Developer

MTJ for the Add-on provider

MTJ for the SDK Developer/Tools Vendor

Eclipse Mobile Working Group (Pulsar)

Summary

Page 29: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Summary Questions & Answers

IDE’s can help manage the complexity of CLDC development

Preprocessor for Device Properties etc.

Build for multiple targets

Pre verify

Sign

Deploy

EMULATE

Mobile Tools for Java (MTJ) extends Eclipse for JavaME development

Eclipse Pulsar working group is creating a pre-integrated “Eclipse for J2ME Developers” Galileo package

Page 30: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Backup

Page 31: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

MTJ as a JavaME ToolImport SDK

Any UEI or Java SE-based SDK

User can select which device to be imported

Devices are added to Device Management list

User is able to select one as the default

Page 32: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

MTJ as a JavaME ToolCreation Wizards

Select JAD Name

Select Current SDK & Device

Enable Preprocessing on that Project

Page 33: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

MTJ as a JavaME ToolJAD Editor

Page 34: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

MTJ as a JavaME ToolRun / Debug

Page 35: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

MTJ as a Framework

Original objective of MTJ 0.9 is to provide a tool for JavaME developers

Framework is not a primary focus, but a welcome “side effect” of proper design

But…

There are some ways to customize MTJ in order to

Support vendor specific JavaME SDK features

Enhance MIDlet environment with libraries

Page 36: MTJ Taking Mobile Java Developers to the Next Level

Copyright © 2009, Made available under the Eclipse Public License v 1.0

Similarities with Embedded Systems Development

Mobile Development is very similar to embedded systems:

Cross Compilers (even for Java, e.g. Pre-verifier, Dalvic compiler)

Remote deployment

Remote debugging

Developer needs an Emulator

And/Or

Target interface