11
1 SynapseIndia Mobile Apps Tools for Java Platform The goal of the Mobile Tools for Java project is to extend existing Eclipse The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application development. frameworks to support mobile device Java application development. MTJ will enable developers to develop, debug and deploy mobile Java MTJ will enable developers to develop, debug and deploy mobile Java applications to emulators and real devices. applications to emulators and real devices. Scope of the doc: Focus on 1 st release (+ potential future features)

SynapseIndia mobile apps tools for jave platform

Embed Size (px)

Citation preview

Page 1: SynapseIndia mobile apps tools for jave platform

1

SynapseIndia Mobile Apps Tools forJava PlatformThe goal of the Mobile Tools for Java project is to extend existing Eclipse The goal of the Mobile Tools for Java project is to extend existing Eclipse frameworks to support mobile device Java application development. frameworks to support mobile device Java application development. MTJ will enable developers to develop, debug and deploy mobile Java MTJ will enable developers to develop, debug and deploy mobile Java applications to emulators and real devices.applications to emulators and real devices.

Scope of the doc:Focus on 1st release (+ potential future features)

Page 2: SynapseIndia mobile apps tools for jave platform

217.02.2006

Contents Eclipse High-Level Architecture Java Runtime Environments MTJ Ecosystem MTJ high-level layers MTJ Development by Milestone Device fragmentation Pre-processing Automated & manual testing Build management

Wizards

Runtime Launch

Debugging

Code Editor

Deployment

Device Management

Signing and Obfuscation

Localization

Application Flow

GUI Editor

Backup slides

Page 3: SynapseIndia mobile apps tools for jave platform

317.02.2006

Eclipse High-level Architecture

Tools PlatformTools

Platform

FrameworksFrameworks

Rich Client PlatformRich Client Platform

Technology Enablers

Technology Enablers

EcosystemEcosystem

Vertical Industry InitiativesVertical Industry Initiatives

Horizontal TechnologiesHorizontal

Technologies

SWTSWTSWTSWTWorkbenchWorkbenchWorkbenchWorkbenchRuntimeRuntimeRuntimeRuntime

UpdateUpdateUpdateUpdateProject ModelProject ModelProject ModelProject ModelWorkspaceWorkspaceWorkspaceWorkspace Multi-languageMulti-languagesupportsupport

Multi-languageMulti-languagesupportsupport

UI FrameworksUI FrameworksUI FrameworksUI FrameworksGraphical FrameworksGraphical FrameworksGraphical FrameworksGraphical FrameworksModeling FrameworksModeling FrameworksModeling FrameworksModeling Frameworks

Test and Test and PerformancePerformance

Test and Test and PerformancePerformance

C/C++ Dev. C/C++ Dev. ToolsTools

C/C++ Dev. C/C++ Dev. ToolsTools

Java Dev. Java Dev. ToolsTools

Java Dev. Java Dev. ToolsTools

Business Business Intelligence & Intelligence &

ReportingReporting

Business Business Intelligence & Intelligence &

ReportingReporting

Web ToolsWeb ToolsWeb ToolsWeb ToolsEmbedded & Embedded & Mobile ToolsMobile ToolsEmbedded & Embedded & Mobile ToolsMobile Tools

Modeling Modeling ToolsTools

Modeling Modeling ToolsTools

Data Data ManagementManagement

Data Data ManagementManagement

Service Service Oriented Oriented

ArchitectureArchitecture

Service Service Oriented Oriented

ArchitectureArchitecture

System System ManagementManagement

System System ManagementManagement

Desktop Desktop DomainDomainDesktop Desktop DomainDomain

Internet Internet DomainDomainInternet Internet DomainDomain

Enterprise Enterprise DomainDomain

Enterprise Enterprise DomainDomain

Embedded Embedded DomainDomain

Embedded Embedded DomainDomain

Mobile Mobile DomainDomain Mobile Mobile DomainDomain

Page 4: SynapseIndia mobile apps tools for jave platform

417.02.2006

Java Runtime Environments

Desktop Low-enddevices

Enterprise High-enddevices

SmartCards

Optionalpackages

Optionalpackages

Optionalpackages

MIDP

Optionalpackages

CLDC

Foundationprofile

CDC

Personalprofile

JavaCard

Card VMKVMKVMJava Virtual MachineJava Virtual Machine

Java Micro Edition (J2ME)

J2EE J2SE

Legend

Java JRE runtime dependencies

Not used Javaruntime

J&C and MTJ runtime scope

The MTJ projects focus in Mobile runtimes is in the J2ME area.

Page 5: SynapseIndia mobile apps tools for jave platform

517.02.2006

MTJ Ecosystem

MTJ context

EclipseEclipseEclipseEclipse

Operating Systems: Win32, Linux, MAC.

Operating Systems: Win32, Linux, MAC.

Tooling RuntimesJRE 1.4 .. 5.0, J9Tooling RuntimesJRE 1.4 .. 5.0, J9

XX

UEI

UEI

Vendor Y SDKVendor Y SDK

JavaDocsJavaDocs

APIAPI

Real DeviceReal DeviceReal DeviceReal Device

Download / Download / Update sitesUpdate sites

EclipseEclipse

Download / Download / Update sitesUpdate sites

EclipseEclipse

Sun / IBM Sun / IBM (tooling runtime(tooling runtime

JRE 5.0 / J9 )JRE 5.0 / J9 )

Sun / IBM Sun / IBM (tooling runtime(tooling runtime

JRE 5.0 / J9 )JRE 5.0 / J9 )

Vendor X Vendor X (for SDK download)(for SDK download)

Vendor X Vendor X (for SDK download)(for SDK download)

Different Different vendorvendor

products products based based

on Eclipse on Eclipse MTJMTJ

Different Different vendorvendor

products products based based

on Eclipse on Eclipse MTJMTJ

Generic SDKGeneric SDK

APIAPI

JavaDocsJavaDocs

MTJMTJMTJMTJ

JavaDocsJavaDocsJavaDocsJavaDocs

APIAPI

APIAPIAPIAPI

A List of A List of JVMSJVMS

A List of A List of JVMSJVMS

Vendor Y Vendor Y (for SDK download)(for SDK download)

Vendor Y Vendor Y (for SDK download)(for SDK download)

UEI

UEI

Vendor X SDKVendor X SDK

JavaDocsJavaDocs

APIAPI

Page 6: SynapseIndia mobile apps tools for jave platform

617.02.2006

MTJ high-level layersMobile IDE ComponentsMobile IDE Components

Mobile IDE Extensibility Framework LayerMobile IDE Extensibility Framework Layer

Eclipse PlatformEclipse Platform

Eclipse Modeling FrameworkEclipse Modeling Framework

OSGIOSGIOSGIOSGI

Eclipse Tool ServicesEclipse Tool Services

Operating Systems: Win32, Linux, MACOperating Systems: Win32, Linux, MAC

Deployment Deployment ManagementManagementDeployment Deployment ManagementManagement

SWTSWTSWTSWT WorkbenchWorkbenchWorkbenchWorkbench

Visual Visual EditorEditorVisual Visual EditorEditor

Web Tools Web Tools ProjectProject

Web Tools Web Tools ProjectProject GEFGEFGEFGEF

Testing & Testing & Profiling Profiling Tools Tools

Testing & Testing & Profiling Profiling Tools Tools

EMF EMF EMF EMF

Build Build ManagementManagement

Build Build ManagementManagement

Runtime Management

Runtime Management

Device Management

Device Management

BIRTBIRTBIRTBIRT Workflow Workflow ToolboxToolbox

Workflow Workflow ToolboxToolbox

Data Tools Data Tools Data Tools Data Tools

Graphical Graphical Modeling Modeling

Framework Framework

Graphical Graphical Modeling Modeling

Framework Framework

JDTJDTJDTJDT

GUI Builder GUI Builder ManagementManagementGUI Builder GUI Builder

ManagementManagement

Multi-Multi-language language supportsupport

Multi-Multi-language language supportsupport

Multimedia Multimedia ToolsTools

Multimedia Multimedia ToolsTools

Security Security ManagementManagement

Security Security ManagementManagement

Obfuscation Provider

Obfuscation Provider

Device Description

Provider

Device Description

Provider

Device Platform Provider

Device Platform Provider

Packaging Provider

Packaging Provider

Signing ProviderSigning Provider

Device Platform Provider

Device Platform Provider

Build Provider

Build Provider

Pre-processing

Provider

Pre-processing

Provider

GUI Builder Provider

GUI Builder Provider

Deployment Provider

Deployment Provider Ant ProviderAnt Provider xx

Page 7: SynapseIndia mobile apps tools for jave platform

717.02.2006

MTJ Development by MilestoneMobile RAD / IDEMobile RAD / IDEMobile RAD / IDEMobile RAD / IDE

Provider ComponentsProvider Components

IDE Extensible Framework LayerIDE Extensible Framework LayerIDE Extensible Framework LayerIDE Extensible Framework Layer

Eclipse PlatformEclipse PlatformEclipse PlatformEclipse Platform

Mobile SDK Mobile SDK EmulatorEmulator

Mobile SDK Mobile SDK EmulatorEmulator

WizardsWizardsWizardsWizards

Create Create ApplicationApplication

Create Create ApplicationApplication

Create Create ClassClass

Create Create ClassClass

Code Code PackagingPackaging

Code Code PackagingPackaging

Create Create ProjectProjectCreate Create ProjectProject

BuildBuildBuildBuild

DeploymentDeploymentDeploymentDeployment

Deployment providers

Deployment providers

Signing providerSigning provider

SnippetsSnippets

DebuggingDebugging

DesktopDesktopDesktopDesktop DeviceDeviceDeviceDevice

Runtime launchRuntime launch

DesktopDesktopDesktopDesktop DeviceDeviceDeviceDevice

GUI builders GUI builders

HelpHelp

LCDUI LCDUI EditorEditor

LCDUI LCDUI EditorEditor

eSWT eSWT EditorEditoreSWT eSWT EditorEditor

Game EditorGame EditorGame EditorGame Editor

Flow EditorFlow EditorFlow EditorFlow Editor

Custom Components

Custom Components

LocalizationLocalization

J2ME NatureJ2ME Nature

Audio converter

Audio converter

LegendLegend

11stst Iteration Iteration

22ndnd

Iteration Iteration

11stst Release Release

Future designFuture design

Runtime Management Framework

Runtime Management Framework

Deployment FrameworkDeployment FrameworkBuild FrameworkBuild Framework

Device Management Framework

Device Management Framework

GUI Builder FrameworkGUI Builder Framework

Security Management Framework

Security Management Framework

Obfuscation providers

Obfuscation providers

XxXx Editor Editor

XxXx Editor Editor

JAD EditorJAD Editor

Code EditorCode Editor

J2ME project builders

J2ME project builders

Symbian Symbian templatestemplatesSymbian Symbian templatestemplates Create UICreate UICreate UICreate UI

Pre-processing

Pre-processing

PackagingPackaging

Antenna providerAntenna provider

Project Build Other

Page 8: SynapseIndia mobile apps tools for jave platform

817.02.2006

Device fragmentation Different characteristics of devices must be taken into account

Physical device characteristics, e.g. display resolution,-size and buttons, processing power and memory

Quirks in the OS, API and Java virtual machine implementations Variation comes also from APIs supported by each device

Flavours of Symbian (S60, S80, S90) and other mobile OS versions J2ME profiles and configurations CLDC 1.0/1.1 and MIDP 1.0/2.0 Optional APIs for Bluetooth, 3D, Multimedia, Web Services, etc. Proprietary APIs from device manufacturers and operators

In addition, there are other operator and market requirements Localisation, branding, billing, etc.

New devices and APIs are introduced frequently

Huge amount ofconfigurations

VaryingdevicesVaryingdevices

Differingassets

Differingassets

Operatorrequirements

Operatorrequirements

Page 9: SynapseIndia mobile apps tools for jave platform

917.02.2006

Device fragmentation, Mobile value chain

Application Application DevelopersDevelopersApplication Application DevelopersDevelopers

Content Content aggregators and aggregators and

DistributorDistributor

Content Content aggregators and aggregators and

DistributorDistributor

Network operatorsNetwork operatorsNetwork operatorsNetwork operators

End-user / End-user / consumer consumer End-user / End-user / consumer consumer

Infrastructure Infrastructure providersproviders

Infrastructure Infrastructure providersproviders

Device Device manufacturesmanufactures

Device Device manufacturesmanufactures

RetailRetailRetailRetail

This diagram represents the major players in the wireless industry. Application- and Content providers have partnered with Network operators to design and develop Java solutions for consumers. Content aggregators license content from it’s creators and format it to be used with specific devices and networks.Content distributors create the revenue by providing the distribution channels.Network operators (carriers) and Infrastructure providers control the wireless network and own the customer information. Device manufactures drive the technical innovation through the new hardware.The application developers and content aggregators needs most tools against the device fragmentation.

LegendLegend

Information exchangeInformation exchange

Cash flow exchangeCash flow exchange

Page 10: SynapseIndia mobile apps tools for jave platform

1017.02.2006

Device fragmentation, pre-processing Definition: Pre-processing changes the source code before it is compiled.

It allows conditional compilation and inclusion of one source file into another and is helpful when trying to maintain a single source for several devices, each having its own bugs, add-on APIs, etc. and it enables device optimization.

The Eclipse JDT could add support for pre-processing, alternative could be e.g. J2ME Polish, which can be integrated to Eclipse (licensing must be checked) or re-implementing the similar functionality.

One key feature is the device description database, that helps to create tasks or actions against similar devices. The device description database enables that developers can identify and group devices with an keyword, that can be used e.g. in pre-processing.

DeviceDevice

Emulator

Device

Emulator

Device

Real

Device

Real

Device1..n

1

Device Platform Device Platformi/f

Fragmentation Definition

Fragmentation Definition

1

Runtime Platform Definition

Runtime Platform Definition

Can be seen as one definition

Page 11: SynapseIndia mobile apps tools for jave platform

1117.02.2006

Application Flow The Application Flow creates kind a action diagram, where the visible and

invisible actions are drawn on a graphical editor. The AF-editor enables that developer can design e.g. mobile application UI flow.