礒山 賢司

今回のサンプル・プログラムのダウンロードはこちら

 今回はiアプリのサンプル・プログラムを作成しましょう。その前に,重要なことを解説しなければなりません。それはADF(Application Descriptor File)です。ADFはアプリケーションの名前,URL,ファイルのサイズなど,iアプリの属性を定義するファイルで,iアプリに不可欠のものです。ADFで定義する属性の内容を表1に示します。

キー省略内容
AppName×アプリケーション名(最大16バイト)。携帯電話で一覧表示した時に表示される名前
AppVerアプリケーションのバージョン
PackageURL×アプリケーション(JARファイル)のURL(最大255バイト)
AppSize×Jarファイルのサイズ。アプリケーションは最大10240バイトに制限されています
AppClass×アプリケーションのメイン・クラス名
AppParamメイン・クラスの起動パラメータ
KvmVer動作可能なKVMのバージョン。指定がない場合は,すべてのバージョンで動作可能と判断されます
SPsizeScrachPadのサイズで,バイト単位で整数値を指定します
LastModified×アプリケーションの最終変更日時(JST)
例:Sun,1 Apr 2000 00:00:00
UseNetworkネットワーク機能使用の有無
TargetDeviceターゲットとする携帯電話の機種名をコンマで区切って指定します
例:D503i, F503i, N503i
LaunchAt自動起動時間
表1●ADFで定義する属性

 携帯端末は,iアプリをダウンロードするに先立って,まずADFをダウンロードし,ダウンロード可能なサイズ(決められたサイズ内)であるか,バージョンが新しくなったか,といったiアプリの妥当性を評価します。そのほかにも「PackageURL」で,ダウンロードするiアプリのURLなども定義します。これがないと,ファイルをダウンロードできません。iアプリを作成する場合は,Javaで作成したアプリケーションと共に,必ずADFを作成しなければならないのです。

●iアプリはIApplicationクラスを基に作成する

 では,さっそく実践に移りましょう。リスト1が,今回作成するプログラムのソース・コードです。携帯電話の画面上に,赤い文字で“Hello 503i”と表示します。Java言語を知らない人には難しい言葉が並んでいると思いますが,気にせずに,そのまま打ち込んでみてください。

 では,ソース・コードを解説していきましょう。まず,

public class List1 extends IApplication

の行を見てください。ここでは,iアプリの本体となる「List1クラス」を作成しています。この中の「IApplication」は,iアプリのひな型となるクラスです。このクラスにいろいろな機能を追加した新しいクラスを作成したものがiアプリとなります(Javaでは“継承”と呼びます)。Javaを知っている方には,「IApplication」を継承してiアプリを作成することは,Internet ExplorerやNetscapeなどのWebブラウザ上で動作するJavaアプレットが「Appletクラス」を継承して作成することとよく似ている,と思うでしょう。

 このList1クラスは,先ほど説明したADFの「AppClassキー」に指定しなければなりません。 IApplicationクラスを継承して作成したクラスは,iアプリの中心となるクラス(メイン・クラス)となり,iアプリ実行時に最初に呼び出されます。

public void start( )

がiアプリの実行を開始する命令です。{ }で囲まれた中に記述した処理を実行します。

図1●プロジェクトの一覧から,目的のプロジェクトを選択する

●iアプリの画面描画の基礎

 iアプリの画面は,「Panelクラス」または「Canvasクラス」のどちらかを使って記述します。それぞれの描画クラスの特徴については,次回解説します。今回は,Canvasクラスを使っています。リスト1の

class TestCanvas extends Canvas

では,Canvasクラスを継承して,Canvasクラスの機能を持ったTestCanvasクラスを作成しています。

 次に,少しリストを逆戻りして,

Display.setCurrent( new TestCanvas( ) );

をご覧ください。「Display」はクラスの名前です。Displayクラスは,携帯端末の画面やキー(ダイヤル・キー,ソフト・キーなど)を抽象化したクラスです。iアプリで表示画面を切り替える場合は,DisplayクラスのsetCurrent( )メソッドを使って,「Canvas」と「Canvas」,「Canvas」と「Panel」などのように切り替えます。

図2●「ビルド」ボタンを押して,プログラムをコンパイルする
 画面への描画は,Canvasクラスが持つpaint( )メソッドを使います。詳しい解説は省略しますが,

public void paint( Graphics g )
{
・・・
}

には,携帯電話の画面の中央に赤い字で“Hello 503i”と表示する命令を記述しています。このiアプリは,こちらからダウンロード可能なので,503iシリーズをお持ちの読者は,ぜひダウンロードして実行してみてください。

●サンプル・プログラムを実行してみよう

 では,サンプル・プログラムをエミュレータで動作させてみましょう。ここでは,すでに「List1」というプロジェクトを作成してあることを前提にして解説します。

図3●エミュレータ上でのサンプル・プログラムの実行画面
 ツール・バーの「開く」を選択すると,現在,J2ME Wirelessエミュレータの環境下にあるプロジェクトの一覧が表示されるのでここから目的のプロジェクトを選択します(図1)。

 プログラムはすでに完成しているので,「ビルド(B)」ボタンをクリックします。エラーがなくコンパイルが完了したら,図2[拡大表示]のように表示されます。エラーがある時は,このウィンドウにエラーの内容が表示されます。

 次に動作環境の設定です。標準では4種類の端末機が提供されています。実行すると図3[拡大表示]のような画面が表示されます。

 次回は,iアプリの「顔」とも言える,描画について解説していきます。