フリーで入手できるiモード対応Java互換エミュレータが登場した。福野泰介氏が開発,Web上で公開した「iEmulator 」である。一部のAPIには未対応なものの,ドコモが公開した技術文書と,このエミュレータにより,iモード対応Javaによるプログラム開発が一般の開発者にも可能となった。

 NTTドコモは2000年12月26日,「iモード対応Java」の仕様を一般に公開したが(関連記事あり),開発作業に必要なソフトウエア類(エミュレータ)は現時点ではドコモのIP(情報提供業者)に限り配布中である。このため,IP以外の一般の開発者は,開発に着手できない状態が続いている。

 NTTドコモの「iモード対応Java」では,プログラムを「iアプリケーション」と呼ぶ独自の実行形態で動作させる。このため,プログラマは,ドコモが提供するクラス・ライブラリを利用し,プログラム本体は「IApplication」と呼ぶクラスを継承して作る必要がある。さらに,ユーザー・インタフェース用のクラスもNTTドコモ提供のものを使う。したがって,開発作業にはドコモ仕様のクラス・ライブラリが不可欠となる。

 今回公開したiモード対応Javaエミュレータは,一部のAPIを除けばドコモ提供のクラス・ライブラリとほぼ互換の環境を提供する。エミュレータの稼働環境はJDK1.2以降で,J2MEは不要である。エミュレータは,開発した「iアプリケーション」を,Javaアプレット中に組み込む形で動作させる。開発したプログラムは,Internet Explorerなどブラウザ上で動作させることが可能。このエミュレータを利用して開発したJavaアプレットを,インターネット上で公開することもできる。

 実用レベルのプログラムを開発する場合には,このエミュレータで開発したプログラムが,実機の上で同じ動作をするとは限らないことは注意しておく必要があるだろう。実際に「iモード対応Java」上のプログラム開発を進めているソフト・ベンダーの間では,機種ごとの挙動の違いが目立つとの声が上がっている。例えば表示フォントの違い,動作速度の違い(アクション・ゲームなどで特に問題となる)などである。また,当然ながら,このエミュレータは,NTTドコモが公開した技術文書に基づいて「クリーン・ルーム開発」したものなので,NNTドコモのサポート対象とはならない。

 今回のエミュレータは,一人の開発者が1週間にも満たない期間で開発したもの。開発者の福野泰介氏は,ドコモの仕様公開直後に,公開された技術文書に基づきエミュレータの開発に着手。3日後の12月29日には「Release1」を公開した。当初は,iモード対応JavaのAPI中で「低レベルAPI」と呼ぶ部分だけに対応していたが,2001年1月1日公開のRelease4では,「高レベルAPI」の一部を除いて,ほとんどのAPIをカバーするに至っている。もし,ドコモによる開発キットの公開が先送りになるようなことがあれば,他の互換エミュレータが登場してくる可能性もあるだろう。

●iモード対応Java互換エミュレータ(iEmulator ) http://uni.himitsukichi.com/iap/index.html

●関連記事: NTTドコモが「iモード対応Java」の仕様を公開 (2000-12-26)