Developing and deploying java applications for blackberry
Download
1 / 33

Developing and Deploying Java Applications for BlackBerry - PowerPoint PPT Presentation


Developing and Deploying Java Applications for BlackBerry. Making Sense of it All. Eric Giguère Senior Software Architect giguere@ianywhere.com. Overview. Understanding J2ME in general The BlackBerry perspective on J2ME Gathering the necessary pieces Programming tips

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha

Download Presentationdownload

Developing and Deploying Java Applications for BlackBerry

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Developing and deploying java applications for blackberry l.jpg

Developing and Deploying Java Applications for BlackBerry

Making Sense of it All

Eric GiguèreSenior Software Architectgiguere@ianywhere.com


Overview l.jpg

Overview

  • Understanding J2ME in general

  • The BlackBerry perspective on J2ME

  • Gathering the necessary pieces

  • Programming tips

  • Moving beyond the BlackBerry


About ianywhere l.jpg

About iAnywhere

iAnywhere is the acknowledged leader in mobile databases, mobile middleware, and mobile management


About eric l.jpg

About Eric

  • Practicing software developer, extensive experience with mobile platforms and with all kinds of Java-based technology

  • Author of three books, including the first book on Java 2 Micro Edition -- over 5 years of J2ME!

Don’t buy these, they’re way out of date!


A question l.jpg

A Question

Q: Why did the chicken cross the road?

A: She was too busy browsing her AvantGo channels on her BlackBerry.

Point your BlackBerry Browser to:rim.avantgo.com


At the sybase booth l.jpg

At the Sybase Booth

  • Visit the Sybase booth in the Solutions Showcase for a demonstration of the new MobiLink Client API

    • Sync relational data down to the device and back

      • SQL Server, Oracle, DB/2, ASE, SQL Anywhere

    • Ask for Liam

    • Or talk to me after the session (my code)


Slide7 l.jpg

Understanding J2ME


Understanding j2me l.jpg

Understanding J2ME

  • Java 2 Micro Edition (J2ME) is an umbrella term for a set of Java technologies created to run Java on less capable devices

  • Key concepts of configurations, profiles and optional packages:

    • configuration = VM + runtime classes (horizontal)

    • profile = domain-specific classes for building standalone applications (vertical)

    • optional package = domain-specific classes that expose specific functionality but not applications (horizontal or vertical)


Configurations l.jpg

Configurations

  • Only two configurations defined:

    • Connected Limited Device Configuration (CLDC)

    • Connected Device Configuration (CDC)

  • CLDC is a stripped-down VM and runtime environment

    • no finalization, no reflection, only a few classes

    • CLDC 1.0 didn’t even support floating-point

  • CDC is a superset of CLDC

    • full language and VM support

    • a much broader set of standard Java 1.3 classes


Profiles l.jpg

Profiles

  • Profiles built on the CLDC:

    • Mobile Information Device Profile (MIDP)

    • Information Module Profile (IMP)

      • “Headless” MIDP (no UI)

  • Profiles built on the CDC:

    • Foundation Profile

    • Personal Basis Profile

      • Built on top of Foundation Profile

    • Personal Profile

      • Build on top of Personal Basis Profile

      • The transition profile for the old PersonalJava


Optional packages l.jpg

Optional Packages

  • Many released or in development, some examples:

    • PIM Optional Package

    • File Connection Optional Package

    • Wireless Messaging API

    • Mobile Media API

  • Problem: not every device supports every optional package


Who does all of this l.jpg

Who Does All Of This?

  • All J2ME standards are developed using the Java Community Process (JCP) using formal Java Specification Requests (JSRs)

  • JSRs developed by an expert group (EG) representing the J2ME community at large

  • RIM is on the EGs for several of the important standards

  • For more info, see http://www.jcp.org


Slide13 l.jpg

The BlackBerry Perspective


Blackberry and j2me l.jpg

BlackBerry and J2ME

  • BlackBerry devices (Java-based) run MIDP and CLDC

    • MIDP 1.0/CLDC 1.0 for 3.6/3.7 devices

    • MIDP 2.0/CLDC 1.1 for 3.8/4.0 devices

    • Custom Java VM

  • Additional APIs available

    • Some optional packages

    • Many BlackBerry-specific APIs (vendor extensions)

  • Built-in apps written in Java

    • RIM eats it’s own food


Application models l.jpg

Application Models

  • MIDlets

    • Applications built using MIDP application lifecycle and user interface classes

    • Portable to other platforms unless BB APIs used

  • BlackBerry applications

    • Standard “public static void main( String[] args )” entry point

    • Tied to BlackBerry, but more control over the application

    • BlackBerry-specific UI classes

    • Can run in background (no UI), on startup, etc.


How applications are built l.jpg

How Applications Are Built

  • Classes are compiled as usual

  • CLDC requires a separate preverification step

  • Output then transformed using RIM tools into a .COD file that can be installed on the device

  • Applications can be loaded directly through BlackBerry Desktop Manager, the javaloader tool, or wirelessly via over-the-air (OTA) provisioning


How applications are built17 l.jpg

How Applications Are Built

  • Standard tool is the Java Development Environment (JDE)

    • integrated editor, debugger

  • Can also use Ant with Antenna tasks

    • See http://antenna.sourceforge.net

  • Eclipse also possible using Ant+Antenna

    • Getting the classpaths right can be tricky

    • See http://eclipseme.org for the EclipseME project


Blackberry apis l.jpg

BlackBerry APIs

  • Rich set of BlackBerry-specific classes

    • Utility classes to deal with missing J2SE classes

    • Different UI model than MIDP

    • Encryption classes

    • A persistent object model loosely patterned on Java serialization

    • More communication protocols, not just HTTP

    • Many APIs require your app to be signed


Gotchas l.jpg

Gotchas

  • Occasionally classes are documented but not implemented until someone pesters RIM

  • Only documentation is from RIM

    • Javadocs needs some work, lacking many details

    • The only BlackBerry books available so far are about using the device or making blackberry wine.

      • But at least one BlackBerry programming book is coming

  • Pester RIM for better docs and tool enhancements!


Slide20 l.jpg

Gathering the Necessary Pieces


Getting started l.jpg

Getting Started

  • Download the JDE from http://www.blackberry.com

    • Versions for 3.7 or 4.0

    • If you’re going to target 3.6 or 3.7, use JDE 3.7

    • You’ll also need Java SDK 1.4.2

      • http://java.sun.com/j2se/1.4.2/download.html

  • New to Java? Find some old books

    • Ideally covering Java 1.1, not 1.2 or higher

      • You won’t get seduced by all the new classes, especially new 1.5 features like generics and enums

      • But important concepts like inner classes are covered


Do you need a bes l.jpg

Do You Need a BES?

  • RIM ISV partners can purchase a BES for development purposes

    • useful for testing apps

    • can enable things that corporate BES disallows

    • and for understanding how things are done

    • IT may raise concerns

    • not that easy to setup

      • don’t forget a mail server is required

      • Exchange needs its own NT domain


Code signing l.jpg

Code Signing

  • Most “interesting” APIs protected, app won’t run on device without being signed

    • But you can run them in the simulator

  • Signing requires certificates obtained from RIM

    • Small fee ($100) involved

    • Certificates needed for each build machine

  • Signing is an online-only process

    • Communicates back to RIM

    • Certificate owners gets email every time


Slide24 l.jpg

Programming Tips


Reduce reuse recycle l.jpg

Reduce, Reuse, Recycle

  • Don’t create lots of objects

    • Garbage collection eats up CPU time

    • Can run out of object handles

  • Look for opportunities to reuse objects

    • Invariant classes good in theory, but more realistic to allow changes

    • Remember arrays are objects!


Use threads l.jpg

Use Threads

  • Always do I/O operations on an application-defined thread

    • Don’t block the system event thread

      • Not only slows things down, but may also cause the app to freeze as system tries to prompt user for permission

    • Java threading mechanisms are quite good

      • Take the effort to learn them

      • Good book is Concurrent Programming in Java by Doug Lea


Keep applications small l.jpg

Keep Applications Small

  • Don’t go overboard with inner and nested classes

  • Think carefully about class interactions and dependencies

  • Can you get away with using a built-in class instead of your own?


Http or sockets l.jpg

HTTP or Sockets?

  • If you’re using MDS, sockets are a great option

    • Can also open a server socket and listen for data to be pushed to your app

    • Extra complexity of defining your own protocol

  • For non-MDS, HTTP is the best

    • Easier to get through the firewall

    • Support varies greatly by carrier, though

    • HTTPS may also be available

    • Easy to write servlet that shares the same data classes (Java on both ends)


Start the mds simulator l.jpg

Start the MDS Simulator!

  • If you’re doing network I/O, remember to start the MDS simulator before you run your app in the device simulator


Moving beyond the blackberry l.jpg

Moving Beyond the BlackBerry

  • Non-BlackBerry J2ME devices becoming more powerful

    • Still mostly consumer-oriented

    • In the future, more will be running the BlackBerry environment (BlackBerry Built-In) as well

      • Your BlackBerry apps will work on BlackBerry Built-In without any changes

  • Things you take for granted in an MDS environment are not there

    • Have to get through the firewall

    • Not as secure


Midp only is one option l.jpg

MIDP-Only Is One Option

  • You can write an application that only uses APIs from MIDP and perhaps an optional package or two

  • Application gets packaged as JAR file and an accompanying JAD file

  • Will run on most J2ME-enabled cellphones

    • Except that there are many buggy implementations


Other option split the source l.jpg

Other Option: Split the Source

  • Alternatively, build two different apps, one for BlackBerry, one for MIDP

  • Split code into three parts

    • One common (no BlackBerry APIs, no user interface)

    • One for BlackBerry

    • One for MIDP

    • More complex code due to use of factories and more interfaces and abstract classes


Slide33 l.jpg

Q & A


ad
  • Login