iPhone アプリの開発をやってみたいという方は、たくさんいらっしゃるのではないでしょうか? いざ Xcode をダウンロードして、開発者登録を行ったけど、 Objective-C というプログラミング言語が分からなくて投げ出してしまったという方もいらっしゃるでしょう。
そんなあなたの救世主になるかもしれないツール、それが Titanium Mobile (タイタニウム・モバイル、以下 Titanium) です。 Titanium は Web の世界で広く使われている JavaScript というプログラミング言語を使って iPhone や Android のアプリを開発することができます。この連載の第1回では Titanium について紹介します。
Titanium Mobile とは
Titanium はシリコンバレーにあるベンチャー企業 Appcelerator Inc. がオープンソースで開発しているツールです。 JavaScript という Web の世界ではごく当たり前に使われているプログラミング言語を使って、 iPhone, iPad, iPod touch をはじめとする iOS アプリ、 Galaxy S シリーズや Xperia シリーズに代表される Android アプリを作ることができます。
普通、 iOS アプリを作りたければ「Objective-C」を使い、 Android アプリを作りたければ「Java」を使います。これらは別のプログラミング言語なので、 iOS や Android に対応するアプリを作りたかったら両方の言語を覚え、別々にアプリを作る必要があります。
Titanium は JavaScript を使って iOS と Android のアプリを同時に開発することができます。実際に Titanium を使って開発されたアプリも多く App Store や Google Play に掲載されていて、ツールとしての実績も増えてきました。 iOS や Android のアプリを同時に作ることができる Titanium ですが、今回の連載では iPhone アプリ開発にフォーカスを当てて紹介します。
JavaScriptとTitaniumではじめる iPhone/Androidアプリプログラミング 【Titanium Mobile SDK 2.1 & Titanium Studio 2.1 対応】
何ができるの?
本来 iPhone アプリを開発したければ Objective-C を使う必要があります。しかし、 Titanium では JavaScript を使うわけですが、一体何ができて、何ができないのでしょうか? 道具の特徴をキチンと把握してみましょう。
できること
まずはできることを紹介します。
- GPS を使う
- カメラを使う
- OS ネイティブの UI を使う
- 動画を再生する
- 加速度センサーを使う
- 連絡先情報を使う
- 等々 …
実に多くのことが Titanium では行えます。決め手となるのは「OS ネイティブの UI を使う」です。 Titanium 最大の特徴はここにあります。 Titanium はネイティブアプリケーションを JavaScript で作るツールなのです。
世の中には HTML5 や JavaScript でモバイルアプリを作る為のツールもありますが、それらはあくまでもモバイル向け HTML5 アプリを作るツールであって、ネイティブなアプリケーションではありません。ネイティブでないということは、ユーザが使い慣れた見た目や使い心地を使うことができないということです。
Titanium ではネイティブなアプリケーションを作ることができるので、できあがったアプリは Objective-C で書かれたアプリと見た目上の違いはありません。つまり、使ってもらうユーザにとってはいつも使っているアプリと同じように操作して、体験してもらうことができるのです。
できないこと
うまい話ばかりではありません。もちろん、 Titanium にも欠点はあります。
- シビアなパフォーマンスが欲しい
- 画像に Instagram みたいなエフェクトをかけたい
- 音声や動画にエフェクトをかけたい
- 等々
Titanium は JavaScript を使ってアプリを開発することができる代わりに、 iPhone 全ての機能を引き出せるわけではありません。もう少し正確に言うと、 Titanium は Titanium SDK が提供している機能しか使うことができません。 SDK というのは Software Development Kit のことで、 Titanium アプリを作るための開発キットです。
Appcelerator Inc. が提供している SDK をベースに開発していくので、 SDK が提供している範囲内でしかアプリを作ることができないのです。 Objective-C を使う場合は iOS SDK という Apple が提供している SDK を使うので、 iPhone の機能を限界まで引き出すことが可能ですが、 Titanium は Titanium SDK ↔ iOS SDK ↔ iOS という流れになっているため、 Titanium SDK から呼び出せる範囲でしか iOS SDK の機能を使えないのです。
また、 JavaScript で書かれたコードを Titanium SDK が解釈し、 iOS で使える形に翻訳するため、 Objective-C だけで書かれたアプリよりも翻訳分、パフォーマンスが悪くなります。そのため、シビアなパフォーマンスが求められるアプリは苦手です。
弱点を補うモジュール
もちろん、弱点をそのままにしているわけではなく、最終的にはモジュールという形で解決を図ることができます。モジュールは Objective-C で書くことができ、 iOS SDK の機能を直接呼び出して Titanium から使えるようにするものです。そのため、上で挙げていた「画像に Instagram みたいなエフェクトをかけたい」という要望はモジュールを使って解決されています。
モジュールは GitHub や Appcelerator Inc. の Open Mobile Marketplace という Web マーケットからフリーや有料でダウンロードし、使うことが可能です。もちろん、モジュールは iOS や Android に最適化された形で提供されているので、これを組み込むことで両対応アプリを作ることが難しくなることもあるでしょう。
実際の開発
ここまでは Titanium の特徴を紹介してきました。次回は Titanium を使って iPhone アプリを開発する場合に必要なものと、初めてのアプリ開発を紹介したいと思います。
筆者 : Ryutaro Miyashita (http://imthinker.net/)
Titanium Mobile 歴は1年半。 imthinker.net という Titanium に関する情報を提供するブログメディアを運営しており、 Appcelerator Inc. の認定資格である Titanium Certified App Developer と Titanium Certified Mobile Developer を持つ。