写真1●米Appcelerator社の増井雄一郎氏
写真1●米Appcelerator社の増井雄一郎氏
[画像のクリックで拡大表示]
写真2●Titanium Mobileのアーキテクチャ
写真2●Titanium Mobileのアーキテクチャ
[画像のクリックで拡大表示]

 「スマートフォン用アプリケーションのソースコードをJavaScriptで記述できるので、以前よりもプログラミング作業が楽になり、開発生産性が大きく向上する。これがTitanium Mobileの特徴だ」。米Appcelerator社でプラットフォーム・エバンジェリストを務める増井雄一郎氏はスマートフォン2011春の「iPhoneアプリとAndroidアプリを同時開発する Titanium Mobile」と題した講演で、こう語った。

 Titanium Mobile(タイタニウム・モバイル)は、JavaScriptによるソースコードを、iPhoneアプリやAndroidアプリに変換するツールだ。Appceleratorが開発を手がけ、オープンソースソフトとしてインターネット上に公開している。

 スマートフォン用アプリは通常、「Objective-C」や「Java」といったプログラミング言語を駆使して開発する。具体的には、iPhoneアプリの開発でObjective-C、Androidアプリの開発でJavaを使う必要がある。「どちらの言語も非常に高機能で幅広く使われているが、習得のための時間やコストがかかるので、開発を始めて間もない人にとってはハードルが高い」と増井氏は指摘する。

 一方のJava ScriptはWebアプリケーションに多用されている簡易的な言語だ。Objective-CやJavaよりもソースコードの記述量が少なくて済み、より簡単にアプリを作れるというメリットがある。増井氏は「Objective-Cで開発したアプリと同等のアプリをJava Scriptで開発したところ、ソースコード量を8割以上削減できたケースもある」と話す。

 またTitanium Mobileでは、ロジックだけでなく画面の定義もすべてJavaScriptで行い、Webアプリケーションで一般に使われているHTMLやCSSは使わない。従って、「ハードウエアボタンや画面上のデザインなども、iPhoneやAndroidの標準的なユーザーインタフェース(UI)を使えるようになっている」(増井氏)という。

 プログラミング言語をJavaScriptに統一できるため、iPhoneとAndroidの両方にアプリケーションを提供したい開発者にもメリットが大きい。Objective-CとJavaでそれぞれ開発する必要がなくなるからだ。

得意なジャンルはWebアプリケーションのフロントエンドツール

 ただしTitanium Mobile では、iPhone向けに書いたコードが修正なしで、全く同じようにAndroid上で動くわけではない。同じコードでもアプリの画面構成は少々異なる。また、物理的なボタンの数や位置、標準UIの違いもあるため、完全なワンソース・マルチユース(one source, multi use)が実現できるわけではない。増井氏は「OS標準のUIを用いる場合、感覚的にはソースコードの7~8割を共有し、2~3割を対象のOSごとにチューニングしていくようなイメージになる」と語る。

 また現時点では「Titanium Mobileで作るのに向いているアプリと、そうでないアプリがある」と、増井氏は述べる。Titanium Mobileが得意なジャンルは、Webアプリケーションのフロントエンドツールだ。一方でゲームなど、高度な画像処理が必要だったり、高いリアルタイム性が求められるジャンルは不得手だという。また、処理速度やメモリーの利用効率の点では、Objective-CやJavaで開発したアプリには及ばない、としている。

 このほか講演では、日本におけるTitanium Mobileの利用実績や、競合製品との違いについても説明があった。増井氏によれば米国では既に大手企業を含めて多数の採用例があるものの、日本での事例はまだ少ない。とはいえ一部の開発者がTitanium Mobileを使ったTwitterクライアントや交通案内、映画情報の提供などのアプリをリリース済みだと言う。

 競合製品については、「iPhoneとAndroidのアプリを同時に開発できる」ことをうたったTitanium Mobile以外のツールとして、米Ansca社の「Corona」や米Unity Technologies社の「Unity」などを挙げる。増井氏は「例えばゲームアプリなら、Flash技術が流用できるCorona、3Dを表現する機能が充実しているUnityなどが向いている。開発者がアプリの用途に応じて使い分けるのが現実的だろう」と語った。


■この記事について他の読者と意見を交換する
  トピック「iPhone/Androidアプリの統合開発ツール「Titanium Mobile」
  コミュニティサイト「Android Developer Lounge」トップ