Appceleratorの開発者が語るTitaniumとPhoneGapの比較
iOSとAndroidのクロスプラットフォームなアプリケーションをする際に使われるTitanium MobileとPhone GapをTitaniumの開発元、Appceleratorの開発者Kevin Whinnery氏が比較した記事が話題になっていました。
Kevin氏は「上空1万フィートから見ればTitaniumとPhone Gapは似ているように見える。どちらもクロスプラットフォームでJavaScriptとWebの技術を要求し、オープンソースライセンスを採用している。しかし似ている所はそれぐらいしかない。どちらも思想や問題を達成する為のアプローチは異なっている」という書き出しで二つのプラットフォームがかなり異なっている事を強調した上でいくつかのポイントを比較しています。
Phone Gapについて
- 実現する事
HTMLベースのWebアプリケーションをネイティブアプリとして配布、インストールできるようにする。 - ワークフロー
HTML,CSS,JavaScriptを静的なサイトのようにローカルで編集する。ネイティブのツールセットは不要。 - 動作原理
各プラットフォームのWebブラウザコンポーネント(Web View)などを立ち上げ、作成されたHTMLを読み込んで表示する。 - 拡張方法
JavaScriptから呼び出されるインタフェースを作成し、そこから呼び出されるネイティブコードを作成して登録する。(How to Create a PhoneGap Plugin for iOS) - 強み
Web Viewをサポートしていればどんな環境でも動作する。プラグインによる拡張がシンプル。 - 弱み
UIのクオリティがWeb Viewのクオリティに依存する。特にAndroidでは制限がある。ネイティブのUIを使った拡張ができない。
Titaniumについて
- 実現する事
クロスプラットフォームなJavaScriptランタイムとモバイル向けのAPIを提供する。 - ワークフロー
各プラットフォームのツールをセットアップした後にTitaniumのツールのみ使う。このツールをIDEから利用する事もできる。 - 動作原理
ネイティブコード上でJavaScriptの実行環境(iOSではJavaScriptCore、AndroidではデフォルトのV8またはRhino)が動作し、JavaScriptのソースコードを実行時に解釈して動作する。 - 拡張方法
UIを含む視覚的なコンポーネントも拡張できる。ネイティブ側、JavaScript側の双方から呼び出し可能なプロキシオブジェクトを実装し、ブリッジとして利用できる。 - 強み
高レベルなAPIが提供されていて、さまざまなネイティブの機能を利用できる。 - 弱み
新たな環境に対応させるのが難しく、iOS、Android、Webにしか対応していない。
元の記事はかなりの長文ですが、Phone Gapが本来はWebブラウザから利用できない機能(カメラやセンサーなど)を使えるようにするという機能はWebブラウザの機能そのものが強化されると意味がないものになる可能性があるなど、若干Titanium寄りに見える部分があります。また双方のプラットフォームの思想的な違いやビジネスモデルについても言及している部分がある点もユニークな内容です。
それぞれのプラットフォームの動作原理の解説は興味深い内容ですので読んでみて頂ければと思います。
さてみなさんはどちらのプラットフォームを使いますか?
訂正
Kevin氏を元開発者と表記しておりましたが、現在もAppceleratorの開発者であるとのご指摘を頂きました。訂正させて頂きます。誤訳により誤解を招いてしまい申し訳ありませんでした。
via:http://kevinwhinnery.com/post/22764624253/comparing-titanium-and-phonegap
Kevinは「元」じゃなくて、今もAppcの開発者ですよー。
Yuichiro MASUI (@masuidrive)
2012/05/17 at 10:11
どこにもそんな事書いていないのに辞めたのかなと読んでいました。現在完了形。。。
ご迷惑をお掛けしてすみません。
yandod
2012/05/17 at 22:54
私は手軽に作れるものであればPhoneGapを使いそうでなければ各ネイティブ環境で作るといった感じですね。
Akira Sugimoto
2012/05/17 at 10:58