This version of is deprecated.
If you are not redirected to the new web site in 3 seconds, please click on the following link


Introduction to the J2ME Cousin iAppli Java
by Jason Lam

What and Why i-mode

i-mode is owed by NTT DoCoMo in Japan and is the world's largest cell phone provider with a subscriber base over 46.6 million users. It is not only dominant in Japan but slowly spreading to other parts of the world, such as France, Germany, Italy, Taiwan and Spain. In more recent significant news NTT DoCoMo has recently released a secure eWallet solution that allows mobile users to perform bank withdrawals, credit card purchases or make airline reservations.

In short i-mode is made up two technologies the first is iHTML which is DoCoMo own propriety markup language, essentially an extension of cHTML. cHTML is W3C standard commonly referred to has compact HTML, but because NTT DoCoMo originally launched i-mode with cHTML most people remember cHTML over iHTML.

Okay onto the Java part, the second main technology that makes up i-mode is Java iAppli which NTT DoCoMo own Java API extensions along with Sun Microsystems CLDC. It is not quite J2ME but almost with a few differences. Unlike, porting to Brew, MoPhun, Symbian or MS SmartPhone it is almost seamless, mainly because it is still Java. The example below will demonstrate how similar the two really are.

Why did they make their own well at the time there was no WAP 2.0 nor xHTML only WAP and as we all know WAP provides a limited visual appeal. As well, J2ME wasn't even finalized at the time. In addition, NTT DoCoMo made other advancements such as the invention of WTCP, which is now apart of the WAP 2.0 specification.

Granted there are some difference between iAppli and J2ME the advantages of porting your existing J2ME applications/games onto i-mode environment will pay off. There are already several game studios that have launch their titles to i-mode, such as MacroSpace ( ) and THQ Wireless ( ). To get feel for some the other services provide on i-mode check out this link

Lets Get Started!

Well now that you know a little about i-mode, Java iAppli and the benefits of porting or making for scratch games/applications for i-mode lets checkout development kit with the classic Hello World.

First we can download the Toolkit, documentation and JavaDoc from, go to the developer section. Yes that's right AT&T supports i-mode, well its been re-branded and modified to become mMode. Here are some news articles about this and,1367,51878,00.html .

Here is a simple HelloWorld example you can make with Java iAppli:

import com.nttdocomo.ui.IApplication;

public class HelloWorld extends IApplication  {
    public void start() {
      System.out.println("Hello World");

The toolkit is similar the Sun WTK, start it up and “Create New Project”, copy and paste the above source code and name the file Place the file in [iappli-install-home]\apps\HelloWorld\src. Click on the ADF configurations and fill in the appropriate data, this is similar to the JAD file configurations except creates what is called a JAM file instead of a JAD file. For the bare minimum, you will need to fill in the “AppName” and “AppClass”, see screen shot below:

Now you can press “Build” and then “run” to see it in action. Because this is a simply hello world to the console there is nothing to see in the emulator itself just “Hello World” in the console display area.

Now you know enough to get started, of course there are a lot more too but that would take an entire book. Refer to the developer guide and Java API Doc for more programming details.

Tips and Hints

  • Same mobile constraints apply screen size, memory, color, frame rates… etc For example for DoJa 1.5 in Europe applications have 30 kb maximum size and 100 kb of scratch pad memory (we know this better as RMS).
  • For deployment on a web server you use the HTML OBJECT tag with a link to the JAM file:
    <OBJECT DECLARE ID=”HelloWorld” data= type=”application/x-jam”></OBJECT><a jam=”HelloWorld” href=”HelloWorld.html”>Download HelloWorld Demo</a>
  • To access the local persistence data (Scratch Pad) you need to use the Generic Connection Framework ie: "scratchpad:///0"
  • If you are developing for money, its best you check with your aggregator, operator and/or wireless agent to see what opportunities are there for you to get your application/game into the i-mode market.


Related News

Fix Point Math Library



| Home | Tutorials | Tips / Hints | Books | Links |
| Resume | Portfolio | Services | Contact |

The contents of this webpage are copyright © 2003 - 2006
Jason Lam All Rights Reserved