KDDI がまともな Java アプリを再びサポート

KDDIは10月27日、au端末のアプリケーション「EZアプリ」に、Javaを使ったプラットフォーム「EZアプリ (J)」を追加すると発表した。2011年春の提供を予定。春モデルの「T006」に加え、対応端末は順次拡大する。

ITmedia プロフェッショナル モバイル - KDDI、Javaで開発できる「EZアプリ (J)」を来春に追加

いまだに W51CA を使っている僕にとっては、かなり「おおっ! ついに!?」と思わせられるニュースだ。

ってこれ前に書いたのと同じ展開じゃね?


……気をとり直して KDDI のサイトを見ると、プレスリリースが出ている。

KDDI - プレスリリース - 「EZアプリ」における新プラットフォームの追加について
http://www.kddi.com/corporate/news_release/2010/1027a/index.html

仕様も既に公開済みだ。

EZfactory - EZアプリ (J)
http://www.au.kddi.com/ezfactory/tec/spec/ezapplij.html

どんな仕様?

今回の仕様は、4 年前に登場した「オープンアプリ」のバージョンアップ版と考えるのがわかりやすい。サービス名称こそ「EZ アプリ (J)」に変更されているものの、基本的な仕様はオープンアプリと同じ。その上で、各種サイズ制限を大幅に緩和し、SD カードへの読み書きにも対応するなど、これまでオープンアプリ開発の足かせとなっていた部分がかなり解消されているのが EZ アプリ (J) でのポイントだ。
前回の記事ではオープンアプリとその前身の「ez アプリ (Java) Phase 3」仕様を比較した。今回は、そこに EZ アプリ (J) を追加してみることにしよう。

項目 EZ アプリ (J) オープンアプリ ez アプリ (Java) Phase 3
標準 API MIDP 2.0+CLDC 1.1 MIDP 2.0+CLDC 1.1 MIDP 1.0+CLDC 1.0
拡張 API あり (MascotCapsule、OpenGL ES) なし あり (KDDI Profile)
配布形式 jad+jar jad+jar kjx
jarサイズ上限 2MB (jad 込み) 300KB 150KB
レコードストア容量 256KB 32KB 10KB
拡張領域 なし なし 200KB
SD カード対応 × ×
通信制 なし プレイヤー全体で 3MB/日 アプリごとに 3MB/日

オープンアプリでは独自仕様の KDDI Profile を省き、携帯電話向けの Java ME 標準である MIDP+CLDC のみを使用していた (なお、オープンアプリ 1.0/1.1 でも、システムプロパティ経由で端末情報が取得できたり、JAD で画面サイズを指定できるなど、小規模な拡張機能はあった。EZ アプリ (J) でもこの部分はおおよそ同じ)。今回の EZ アプリ (J) では、 FileConnection API が追加され、外部メモリ (具体的には SD カード) に対する読み書きが行えるようになった。これは、ウィルコムなどの Java アプリ実行環境と同じ構成だ。
また、新たに MascotCapsule と OpenGL ES への対応が追加されている。これはドコモの i アプリなどでも使われている 3D 描画のための API で、勝手アプリでの利用例はそれほど多くないものの、すでに i アプリ向けのゲームなどを持っている開発者であれば、おそらくそれほど苦労せずに EZ アプリ (J) への移植が可能になるだろう (この部分については KDDI のサイトに現時点で仕様が置かれていないので詳細は不明)。
サイズ上限などの数値的なスペックについては、制限が非常に厳しかったオープンアプリに対して、EZ アプリでは大幅に増量されており、MIDP+CLDC の実行環境としては十二分と言っていい。上表には載せていないがヒープサイズ (アプリが使用できるメモリ容量) も 16MB あることが仕様に明記されており、他社の環境を上回るとまではいかないものの、オープンアプリではわずか 1.5MB 程度だったそうなので、やはり大増量であることは間違いない。

ネットワーク通信の制限が撤廃

アプリやデータ、メモリのサイズが拡張されているのは嬉しいことだが、もっとも注目すべきなのはやはり、ネットワーク通信の制限が撤廃されていることだろう。
これまでのオープンアプリや ez アプリ (Java) では、回線への負荷を抑えるために「1 日あたりの通信料は 3MB まで」という制限が設けられていた。3MB というとそれなりに大きいようにも思えるかもしれないが、使い方によってはあっという間に超えてしまうのが 3MB というサイズだ。au 公式メニュー内サイトのアプリにすら制限がかかっており、「ゲーム中に通信料制限にひっかかったら翌日まで待ってください」という告知がなされていたりした。
しかし、今回の EZ アプリ (J) ではこの通信制限がなくなり、スマートフォンなどと同様に、自由に通信が行えるようになった。従来は「今日はこれまでに 3MB のうちどれくらい使ったか」を取得するための API まで用意されていたのだが、EZ アプリ (J) ではこれも廃止されている。
この変更により、これまでは実現が難しかったようなアプリも開発可能になりそうだ。常に通信を行うフルブラウザ系のアプリや、大容量のデータファイルを取得するゲームアプリなどは、オープンアプリではいろいろ「我慢」「断念」しなければならなかったが、今後は他のキャリア同様の使い勝手が実現できる。ネットでの有名どころでいうと、ニコニコ動画モバイルのように「独自のアプリで大量に通信したい」という需要にも応えられるようになるだろう。
また、1 回あたりの通信で取得できるデータサイズも、オープンアプリでは上限がわずか 32KB。画像 1 枚すら収まるか怪しいサイズだし、オープンアプリでは通信する度に確認のダイアログが表示される仕様だったため、分割してダウンロードするように実装してもユーザはその都度ボタンを押さなければならなかった。EZ アプリ (J) では 1.2MB まで受信できるようになったため、この部分も大きく改善されるはずだ。

配布方法はオープンアプリ互換

オープンアプリの配布時には、(X)HTML ページに下のような独自形式のリンクを置く必要があった。EZ アプリ (J) ではこの方式が踏襲されているため、既存のオープンアプリは ほとんどの場合、EZ アプリ (J) 対応機種でもそのまま利用できそうだ。

<a href="device:jam?http://example.com/example.jad">ダウンロード</a>

オープンアプリ 1.1 で追加された、パラメータ付きの URL にも対応している。

<a href="device:jam?http://example.com/example.jad#param=value">ダウンロード</a>

KDDI の意図は?

以上、主に一般開発者から見た EZ アプリ (J) の強化ポイントと、それによってどんなアプリが登場するかを書いてみた。スマートフォンが普及し始め、キャリアも対応を進めている昨今、従来の厳しすぎる機能制限はもはや意味のないものになっていた。大きく機能強化された新仕様に喜んでいる開発者は多いはず。ユーザにとっても今後登場する「勝手アプリ」が期待大なのは間違いない。
しかし、ここでひとつの疑問がわき上がる。なんでまた急に、こんな大規模バージョンアップがやってきたのだろうか?
実のところ、EZ アプリ (J) にはもうひとつ見過ごせないポイントがある。それは、公式メニュー内サイトでの Java アプリ復活だ。
かつて ez アプリ (Java) が廃止されてから、au 公式メニュー内サイトでは BREW 製のアプリしか提供できないというルールが設けられていた。「BREW アプリは Java と違ってネイティブで動作するので高性能。ここが他のキャリアとの差別化要因になる」というのが KDDI の主張だったわけだ。
後に、一般の開発者向けに公開する (=オープン) 仕様としてオープンアプリを追加したのだけれども、公式メニュー内では引き続き BREW 必須とされており、コンテンツプロバイダは「au でリリースするためだけに Java アプリを BREW に移植する (変換する)」という作業を余儀なくされていた。ネイティブアプリは作りによっては端末を壊してしまうため、問題がないか KDDI が審査することになっており、審査料が必要な上に審査に時間がかかるという問題点もあった。そういった諸々を、これまではコンテンツプロバイダが負担していた。当然、その分がアプリの価格に反映されたり、リリースが遅れる原因になったりするため、ユーザにとってもデメリットが少なくなかった。
今回「オープンアプリ 2.0」ではなく「EZ アプリ (J)」という名称になったのは、公式メニュー内でも Java アプリが使えるようになったことを示している。冒頭で紹介した KDDI のプレスリリースにも、そのことがはっきり述べられている。

「EZアプリ (J)」は、(中略) Java™アプリ実行環境を、公式コンテンツプロバイダーおよび一般のアプリケーション開発者に提供します。

KDDI - プレスリリース - 「EZアプリ」における新プラットフォームの追加について

つまりこれは、「BREW 一本で行くのは諦めました」「開発がしやすくなりましたよ」「他のキャリア向けの Java アプリをぜひうちにも出してください」という KDDI からのアピールなのだ。この新たな一歩から KDDI がどんな方向に進んでいくのか。結構楽しみかもしれない。