連載
» 2009年08月17日 00時00分 UPDATE

“BREW”アプリケーション開発入門(1):ケータイアプリ開発の第一歩を踏み出そう!! (1/2)

BREWの基礎から開発環境の構築・アプリケーション開発までを詳しく解説。BREWアプリケーション開発の世界を体験しよう。

[末永貴一(エイチアイ),@IT MONOist]

携帯電話アプリケーション開発とは?

 はじめに、現在の携帯電話のアプリケーション開発を2つのタイプに分類したいと思います。

 1つは、携帯電話内に最初から実装されるアプリケーションの開発です。具体的には、携帯電話の標準機能(電話帳、スケジューラ、カメラなど)や標準サービス機能(Webブラウザ、メーラー、ミュージック・プレーヤなど)などのアプリケーション開発です。携帯電話自体に最初から組み込まれている機能になります。

 もう1つが携帯サイトなどから任意にダウンロードして、インストールを行うことができるアプリケーション(ゲームや情報サービスアプリなど)の開発です。日本の場合、各携帯キャリア(NTTドコモ、KDDI、SoftBankなど)が提供するアプリケーション実行環境ごとに開発方法が異なり、大きく「Java系」と「ネイティブ系」に分かれています。本連載で解説する『BREWでのアプリケーション開発』は、この追加インストールタイプのネイティブ系アプリケーション開発に属します。

最近ではiPhone、Android端末などのスマートフォンで採用されているオープン・プラットフォームがありますが、これらは個々の開発環境や実行環境が提供されています。このように、プラットフォームが多様化すると対応が煩雑化するためアプリケーション開発者は一苦労です……。



BREWとは?

 「BREW(Binary Runtime Environment for Wireless)」とは、米Qualcomm Incorporated(以下、Qualcomm)が提供する携帯電話用プラットフォームのことで、「アプリケーション実行環境」「各種ツール」「運用システム」などが含まれています。携帯電話のアプリケーション開発・配信にかかわるビジネス全体を包括できる“フレームワーク”といってもいいでしょう。また、BREWは同じくQualcommが提供する携帯電話用のベースバンド・チップ「Mobile Station Modem(MSM)」シリーズ上で動作することが前提となっています。このように、Qualcommはハードウェア/ソフトウェアの両方をカバーする携帯電話開発、アプリケーション開発、さらにアプリケーション配布の仕組みまでも構築可能なトータル・パッケージを提供しているのです。

 一方、開発者の視点から考えるとBREWは、「携帯電話上でネイティブ・アプリケーションを追加でインストール可能なアプリケーション実行環境」だといえます。BREW登場以前には、追加インストールのアプリケーションの実行環境は「Java(NTTドコモのDoJa、旧J-フォンのMIDP+JSCL)」でしか提供されていなかったので(注1)、携帯電話上でのネイティブ・アプリケーション開発を可能にするBREWの期待値は大きなものでした。

※注1:KDDIも当初は、MIDPによるJavaプラットフォームでアプリケーション実行環境を提供していました。


 BREWの詳しい情報については、BREWのサイトを参照してください(本稿では、BREWアプリケーションプログラミングに必要な知識にフォーカスして解説していきます)。

関連リンク:
BREW

BREWの特徴

 BREWには、大きく以下のような特徴があります。

  • BREW APIにより、端末ごとのハードウェア構成の相違を吸収
  • ネイティブ(C/C++)アプリケーションによるソフトウェアの軽量化、実行速度の高速化を実現
  • ハードウェア機能を利用可能な開発の柔軟さ

 一般的に、携帯電話などの組み込み機器では、端末ごとにハードウェア構成、性能、OSなどが異なるため、これらの差異を実行環境がすべて吸収することは基本的に難しいものとされています。

 また、C/C++で開発されたいわゆるネイティブ・アプリケーションとなるとAPIはもちろんのこと、メモリ管理、アドレス指定などのさまざまな要素を管理しないといけません。そのため、初期の携帯アプリケーション実行環境では、これらの問題が最初からカバーされている「Java」が採用されるケースが多かったのです。

 一方、BREWはそれらを携帯電話のアプリケーション開発に特化したAPI、プログラミング規約、独自OSの提供などで吸収し、この問題を解決しています(若干のハードウェア依存性は残っていますが)。そして、実行環境だけではなく配布の仕組みも含めてのプラットフォームとして提供することで、これまでJavaプラットフォームでしか提供されていなかった携帯アプリケーションの配布を、C/C++によるネイティブ・プログラムでも可能にしたことは大きな特徴といえます。このような特徴により、携帯電話自体を開発する人以外にも、ネイティブ・アプリケーション開発、配布できる環境としてBREWが広く受け入れられるようになったのです。

 また、基本的に携帯電話のアプリケーションはいわゆる“組み込みソフトウェア”であり、PCと違って動作保障やセキュリティなどをシビアに考える必要があります。BREWは、C/C++のアプリケーション開発をサポートする環境であるため、ハードウェアに影響を与えるようなプログラムを厳密に管理する必要があります。しかし、アプリケーション開発者自身にそのような負担を強いると、チェック漏れの危険性があり、携帯電話利用者に損害を与えかねません。

 そこで、これを回避するためにBREWは実行環境としてだけではなく、「BREW検証(日本では、KDDI検証)」という仕組みを導入し、ソフトウェアの正当性をチェックする“第三者機関”を設けることによって、この問題を回避しています。これにより、アプリケーション開発者は高速かつ自由度の高いC/C++による携帯電話のネイティブ・アプリケーション開発・配布を行うことができるのです。

BREW AEEとBREW Extension

 それでは、具体的に携帯電話の中に搭載されているBREWの要素について見ていきましょう。携帯電話の中にあるBREWの構造は大きく以下のようになっています。

BREWの構造 図1 BREWの構造

 アプリケーションの実行環境を構成する要素として、特に重要なのが「BREW AEE(Application Execution Environment)」です。BREW AEEは、BREWアプリケーションの実行環境であると同時に、プログラマが主にかかわる「BREW APIセット」を提供する部分でもあります。BREW AEEは、イベント・ドリブン型のアーキテクチャを採用しており、キー操作などのイベントに対して、アプリケーション側でイベント処理を記述していくという形でプログラミングを行います(詳しくは後述)。

 また、「BREW Extension」というBREW AEEを拡張する要素もあります。本来、BREW AEEにはない機能を、BREW Extensionを追加することで実現できます。つまり、BREWは後から機能をダイナミックに追加できる柔軟な構造を持っているといえます。

KCPとKCP+

 ご存じの方も多いかもしれませんが、日本で唯一、BREWプラットフォームを採用しているのがKDDIから発売されているau端末です。

 現在、KDDIからリリースされているauブランドの携帯電話には、基本的にBREWが搭載されています。BREWがあればアプリケーション開発環境および実行環境が提供されます。だたし、BREWが提供するのはあくまでもアプリケーションをダウンロード・追加する仕組みと実行環境です。携帯電話自体の開発がカバーされているわけではありません。

 また、日本の携帯電話市場では、より高度化されたハードウェアやアプリケーション、サービスが必要とされるため、BREWの基本機能だけではカバーできないソフトウェア開発が多くあります。そこで、KDDIとQualcommはau端末上での開発効率化と自由度の高い開発を目的に「KCP(KDDI Common Platform)」を共同開発しました。

 KCPは「BREW 3.1」をベースにKDDI用にBREWを拡張したものです。そして、「BREW 4.0」をベースにKCPをさらに発展させたのが「KCP+」です。KCP、KCP+は、携帯端末開発を行う端末メーカーのコスト削減、工期の短縮などを実現できるプラットフォームとして注目されています。

KCPとKCP+ 図2 KCPとKCP+ 
※KDDIのプレスリリース資料を基に作成

 KCP、KCP+には標準のBREW APIで提供されていない独自機能も含まれていますが、通常のアプリケーション開発を行う程度であればBREW APIの範囲でも十分です。このように同じBREWといっても日本では独自の拡張が施されており、より高度化された市場に対応できるような工夫がなされています。

       1|2 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.