Mobile Experiential Track

Post on 21-Nov-2014

2.455 views 2 download

Tags:

description

 

Transcript of Mobile Experiential Track

Help You Manage and ControlHelp You Manage and Control

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Mobile Experiential on Java #1Mobile Experiential on Java #1

Frans ThamuraFrans Thamura

Arief PurnamaArief Purnama

Rahmat AzhariRahmat Azhari

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

AgendaAgenda

• Java Mobile Technology Overview

• Nokia Devices

• J2ME Development Concept

• Developing with J2ME

• User Interface Programming

• Persistence Storage

• Nokia UI Development

• The Future

Help You Manage and ControlHelp You Manage and Control

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Java Mobile Technology OverviewJava Mobile Technology Overview

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Java TechnologyJava Technology

• Write Once carefully Run Anywhere optionally (WORA)

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

J2ME and MIDPJ2ME and MIDP

• For Wireless Devices

- Commonly use CLDC Configuration• Connected Limited Device Configuration

• 128kb ROM for JVM and system classes• 32kb RAM (min) for application classes

- MIDP Profile• Mobile Information Device Profile• Provides:

• Simple LCD based GUI classes• Basic networking facilities• Persistent data

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

CDLC FeaturesCDLC Features

• Fundamental packages re-specified

• Most package removed

- java.lang• System has no in field

- java.io• No buffered classes

- java.util• Greatly reduced• Just 9 classes

• there are 41 in Java 1.4.0

• No dynamic byte code verification

- J2SE verifier too expensive on memory

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Mobile TrendMobile Trend

• Multipurpose Trend

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Mobile DevelopmentMobile Development

• From Java to Streaming

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Mobile Services Value ChainMobile Services Value Chain

• Content Deliverable Concept

ContentOwner

ContentOwner

Help You Manage and ControlHelp You Manage and Control

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Nokia DevicesNokia Devices

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Nokia DevicesNokia Devices

• Nokia devices grouped according to capabilities:

- Series 30

- Series 40

- Series 60

- Series 80

- Series 90

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Nokia Series 30Nokia Series 30

• Cost driven devices

• Nokia OS

• MIDP 1.0, CLDC 1.0

• Nokia UI API

• XHTML, MMS

• Example: 6310i

• Maximum size of one MIDlet suite: 30 KB

• 96x65 pixels

• Maximum data storage space for MIDlet: 20 KB

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Nokia Series 40Nokia Series 40

• Size driven colour platform

• Nokia OS

• MIDP 1.0, CLDC 1.0

• Nokia UI API

• XHTML, MMS

• Example: 7210

• Maximum size of one MIDlet suite: 64 KB

• 128x128 pixels

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Nokia Series 60Nokia Series 60

• One hand operated feature platform

• Symbian OS

• MIDP 1.0, CLDC 1.0

• Nokia UI API (not backlight or vibrate)

• XHTML, MMS

• Example: 7210

• Memory available to Midlets : 4MB (max)

• 176x208 pixels

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

... basic functionality originates from Series 60 platform on

Symbian OS

Nokia 7650 Nokia 3650 Nokia N-Gage TM mobile game deck device

Siemens SX1

Samsung SGH-D700

Nokia Series 60 devicesNokia Series 60 devices

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Nokia Series 60 UINokia Series 60 UI

• Nokia UI Screen

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Nokia Series 80Nokia Series 80

• One hand operated feature platform

• QWERY Keyboard

• Symbian OS

• MIDP 1.0, CLDC 1.0

• Personal Java, JavaPhone API

• MIDP 2.0 (Nokia 9500 and 9300)

• XHTML, MMS

• Example: 9210

• Memory available to Midlets : ~14MB

• 640x200 pixels

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Input method

One-hand operation Pen input

Display size

176 x 208 208-240 x 320

Applications • Multimedia messaging• Imaging• Entertainment, downloading• Personal Information Management• Office connectivity

• Business applications • Entertainment, downloading• Personal Information Management• Web browsing• Multimedia messaging, Imaging

Series 60 PlatformUIQ

Symbian OS support V7.0 and onwardsV6.1 and onwards

Complementary UI designsComplementary UI designs

UIQ

Help You Manage and ControlHelp You Manage and Control

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

J2ME Development ConceptJ2ME Development Concept

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

J2ME DevelopmentJ2ME Development

• Can use basic J2ME tools to build apps

- Tool support makes development simpler

• Automated verification and packaging

- Sun J2ME Wireless Toolkit

- Sun Java Studio Mobile Edition

- Borland JBuilder Mobile Toolkit

- Eclipse

- Websphere Devices Developer

• Comes bundled with wireless toolkit

• Simple integration with Nokia SDK

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Tool supportTool support

• Nokia Developer’s Suite

• Integrates with JBuilder, or Sun One Studio 4

- Run as standalone

- Includes Nokia emulators

- 6310i

- Symbian

• Download more emulators

- Series 40 and 60

• Others

- Jakarta Ant?

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Developing with MIDPDeveloping with MIDP

• MIDP applications are called Midlets

- Conceptually similar to Applets

• Can be downloaded

• Executed in host environment

- Subclass the MIDlet class

• Provide no argument constructor

• Must not implement main method

• Implement lifecycle methods

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Developing MidletsDeveloping Midlets

• The Midlet lifecycle

- A device will call the methods shown here as appropriate

• Midlet can control its own lifecycle

- notifyPaused()

- notifyDestroyed()

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Developing with MIDPDeveloping with MIDP

• Development process

1. Subclass MIDlet class

2. Override lifecycle methods

3. Compile

4. Pre-verify

5. Package• Create jar file• Create application descriptor (jad file)

6. Install and run, or emulate

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

MIDP application structureMIDP application structure

• A MIDP application comprises two files

- jad file (application descriptor)

- jar file

- a Midlet suite is a collection of related Midlets

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

The jad fileThe jad file

• A file describing the Midlet suite

• Must include:

- MIDlet-Name• name of the Midlet suite

- MIDlet-<n>• A name for each Midlet in the suite

- MIDlet-Version

- MIDlet-Vendor

- MIDlet-Jar-URL

- MIDlet-Jar-Size

• Information regarding the Midlet suite

- May include:• MIDlet-Description

• MIDlet-Icon

• MIDlet-Info-URL

- MIDlet-Data-Size• Minimum persistent storage required by

suite

• Default is Zero

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

The jar fileThe jar file

• Follows standard jar file format

- Manifest to include all data found in jad file• Except: MIDlet-Jar-Size

- Can include other resources• E.g: Images

- Must also contain:• MicroEdition-Profile• MicroEdition-Configuration

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

DemoDemo

• Sun Java Wireless Toolkit

• Nokia J2ME Toolkit

Help You Manage and ControlHelp You Manage and Control

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Developing with J2MEDeveloping with J2ME

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Developing with J2MEDeveloping with J2ME

• Elementary MIDP

- User Interface Programming

- Persisting Data

- Networking

• Extension packages

- Nokia UI API classes

Help You Manage and ControlHelp You Manage and Control

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

User Interface ProgrammingUser Interface Programming

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

User Interface ProgrammingUser Interface Programming

• Limitation of display devices

- Colour or Black and White

- Display size & device memory

- Forget about AWT or Swing!• Too big• Overly complex• Tables, Dialogs, Multiple windows

• New API for user interfaces with MIDP

- Lightweight

- Designed for use with small screens• Based upon single display areas

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

User Interface ProgrammingUser Interface Programming

• LCD user interface API

- In package:• javax.microedition.lcdui

• Simple structure

- Add Displayable items to a Display!

• Each Midlet has a single Display to use

- Use static method on Display class:• Display.getDisplay();

• User interface class hierarchy

- Screens are high level

- Canvas low level (see later)

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

User Interface Programming (List)User Interface Programming (List)

• A List example:

- list = new List("Select artist:", List.EXCLUSIVE);

- list.append("B2K",null);

- list.append("Babyface",null);

• List types include:

- EXCLUSIVE

- MULTIPLE

- IMPLICIT

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

User Interface Programming (TextBox)User Interface Programming (TextBox)

• A TextBox example:

- TextBox textBox = new TextBox("Email address:","Text", 30,TextField.EMAILADDR);

- Text constraints include:• ANY• EMAILADDR• NUMERIC• PHONENUMBER• URL

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

User Interface Programming (Form)User Interface Programming (Form)

• Forms

- Like other Screen subclasses• occupies whole screen• can have tickers set• etc...

- Allow multiple items to be added• there are many subclasses of Item

• A Forms example:

- form = new Form("Default settings");

- form.append(new Gauge("Earpiece volume:",true,10,5));

- form.append(new Gauge("Ringer volume:",true,10,5));

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

User Interface Programming (Command)User Interface Programming (Command)

• Notify user generated events

- J2SE applications use an event delegation model• Explicitly attached to event sources• Typically results in many anonymous classes

• More efficient to re-use objects

- J2ME applications use Commands• Many predefined types• Can be extended with custom types

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

User Interface Programming (Command)User Interface Programming (Command)

• A Commands example:Form f = new Form(...);

f.addCommand(new Command("Exit", Command.EXIT, 0));

f.setCommandListener(new CommandListener() {

public void commandAction(Command c, Displayable d)

{

if (c.getCommandType() == Command.EXIT) {

notifyDestroyed();

}

}

});

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

MIDP Development HierarchyMIDP Development Hierarchy

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

DemoDemo

• User Interface Programming

Help You Manage and ControlHelp You Manage and Control

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Persistence StoragePersistence Storage

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Persistent StoragePersistent Storage

• Midlets will need to persist data

- Users name

- Mail host address

- High score for a game

• MIDP includes a specification for Persistent Storage

- Record Management System (RMS)

- Simple database model

- Holds unique records for each Midlet suite

- Device responsible for storing data

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Persistent StoragePersistent Storage

• Each Midlet suite shares records

- Care should be taken with concurrent access• multiple active Midlets• multi threaded Midlets

• writes to records guaranteed to be atomic• program defensively

• Very simple API

- javax.microedition.rms

- Only contains one class!• and four interfaces

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Persistent StoragePersistent Storage

• Records are stored in a Record Store

- Use the RecordStore class

- Each record store is named• max 32 Unicode chars

RecordStore rs = null;

try {

rs = RecordStore.openRecordStore("my-data",false);

} catch(RecordStoreNotFoundException e)

{

// doesn't exist

} catch(RecordStoreException e){

// some other error

}

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Persistent StoragePersistent Storage

• To create a new record

- specify the bytes you want to store

- each record within a store will have a unique number (id).

RecordStore rs = ...;

byte[] data = ...;

int id = -1; //record ids will always be > 0

try {

id = rs.addRecord(data, 0, data.length);

} ...

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

DemoDemo

• Persistence Storage Development

Help You Manage and ControlHelp You Manage and Control

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Nokia UI DevelopmentNokia UI Development

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Nokia UI DevelopmentNokia UI Development

• MIDP 1.0 UI limited

• Nokia address this with custom UI classes

- Included in upcoming MIDP2.0 specification

• New classes

- FullCanvas

- DirectGraphics

- DirectUtils

- DeviceControl

- Sound

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Nokia UI OtherNokia UI Other

• Nokia UI supports other features

- Sound

- Device control• Volume of device• Backlight• Vibration

• User preferences may prevent these from being accessible

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Application DesignApplication Design

• Screens are organized into a flow:

- Most require simple behavior

- Some more complex

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Adapting to DevicesAdapting to Devices

• Different devices have different capabilities

- Must cater for these

Help You Manage and ControlHelp You Manage and Control

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

The FutureThe Future

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

J2ME FutureJ2ME Future

• Wireless Messaging (WM API, JSR 120)

• Mobile Media (MM API, JSR 135)

• Bluetooth API (JSR 82)

• SyncML

• MMS API (WM API 2.0)

• SIP API

• Game API

• 3D API

Help You Manage and ControlHelp You Manage and Control

© 2004, Intercitra. All rights reserved. Proprietary and Confidential - Not to be Copied or Distributed.

be a Part ofbe a Part ofEmotionalEmotional

RevolutionRevolution

Thank YouThank You

Frans ThamuraFrans Thamura

Arief PurnamaArief Purnama

Rahmat AzhariRahmat Azhari

contact@intercitra.comcontact@intercitra.com