スマートフォンは、それまでの携帯電話と違って、「
アプリ」を作ってインストールできます。このアプリこそがスマートフォンの命といってもいいでしょう。iPhoneもAndroidも、それぞれに専用のアプリマーケットを用意し、何十万ものアプリが流通しています。
これらアプリは、誰でも自分でアプリを作り、マーケットに登録して配布することができるようになっています。が、アプリの開発は、いずれも本格的なプログラミング言語を使う必要があるのです。iPhoneならば
Objective-C、Androidは
Javaが必須、なおかつ、それぞれのスマートフォンを利用するための
フレームワークに精通していなければアプリの開発は行えません。
これでは、ある程度のレベル以上の技術を持ったプログラマでなければとても作れません。もっと簡単に、そんなに高度な技術がなくてもアプリを作ることはできないか?と思った人。まさにそんな人のためにあるのが「
PhoneGap」なのです。
PhoneGapは、もともとはnitobiというところが開発したソフトウェアですが、現在は買収されてAdobeがリリースをしています。そう、あのFlashやPhoneshopなどを出しているAdobeです。
この
PhoneGapは「
HTMLと
JavaScript」でアプリの開発を行うことを可能にします。HTMLとJavaScriptといったら、ほとんどWebサイトですね。その通り、実は
PhoneGapは、Webのページとしてアプリの表示や機能などを用意し、これをアプリに変換して開発を行うものなのです。スマートフォンには、Webページをアプリ内に表示する機能があります。これをうまく利用しているのです。
したがって、
PhoneGapといえども、アプリの開発は本来の開発環境に依存します。つまり、iPhoneならば
Objective-Cの、Androidなら
Javaのプロジェクトを作成し、そこに
PhoneGapの機能を組み込んで利用することになります。ですから、「HTML+JavaScriptだけ、他の言語は一切見ることすらない」というわけではありません。それぞれのプロジェクトで、
PhoneGapの機能を組み込んで表示するための最小限のコードは書かないといけないのです。ただし、それはあらかじめ用意されたコードをコピー&ペーストすれば事足りる程度のものであり、
Objective-Cや
Javaなどほとんど知らなくても作業できます。
■TitaniumとPhoneGap
PhoneGapと似たようなアプローチを取る開発ツールとしては、「
Titanium mobile」というものも広く使われています。こちらは(HTMLは使わず)
JavaScriptでアプリの開発を行います。あらかじめ用意されたライブラリの機能を使ってJavaScriptのスクリプトを書き、それをもとにiPhoneやAndroid本来のプロジェクトに変換してアプリをビルドします。
いずれも「
JavaScriptでネイティブアプリが作れる」という点で似ていますが、しかし実際の開発スタイルは大きく違います。
PhoneGapは、あくまで「Webページと同じ感覚で画面を設計する」ことを考えています。これに対し
Titatiumは「JavaScript一本でさまざまなスマートフォンアプリを一度に作れる」というものです。HTMLによる表示などは一切利用せず、すべてのGUIもJavaScriptでごりごりとコードを書いて作っていきます。
Titaniumは、よりプログラマ向けのツール。
PhoneGapはWebデザイナーぐらいのプログラミング技術でも十分アプリが作れるツール。――と分けて考えるのがよいでしょう。