HTML/CSS/JavaScriptのWeb技術のみで様々なモバイル端末向けのネイティブアプリケーションを開発できる「PhoneGap」が注目を集めている。PhoneGapはもともとNitobi社によって開発され、同社がAdobe Systems(以下、Adobe)に買収されたことにともなってAdobe製品の一員に加わった。今回は、Adobeのシニア・テクニカル・エバンジェリストを務めるAlan Greenblatt氏と、プラットフォーム・エバンジェリストを務めるPiotr Walczyszyn氏に、PhoneGapの価値や今後のロードマップ、Adobeの戦略の中での位置づけなどを伺った。

左からAdobeのシニア・テクニカル・エバンジェリストを務めるAlan Greenblatt氏と、プラットフォーム・エバンジェリストを務めるPiotr Walczyszyn氏

1.PhoneGapで何ができるか

インタビューに先立って、Walczyszyn氏がPhoneGapの魅力や関連するサービス、PhoneGapで開発されたアプリの事例などを紹介してくれた。

「PhoneGapがどんなものかを理解するためには、まずハイブリッドアプリとは何かを理解する必要がある」と、Walczyszyn氏は指摘する。PhoneGapはモバイルアプリのための万能なツールではなく、あくまでもハイブリッドアプリを開発するためのフレームワークだからだ。

ハイブリッドアプリとは、モバイル端末向けのネイティブアプリと、Webブラウザ上で動作するHTMLベースのアプリを融合したものを指す。基本的な機能やUIパーツはWebブラウザベースのものを使用するが、実行時にはネイティブアプリとして動作する点が特徴で、HTMLやCSS、JavaScriptといったWeb標準技術で開発が行えるというメリットがある。一方で、あくまでもWeb標準技術で実現できる範囲が対象であるという点にも注意しなければならない。

では、具体的にPhoneGapでどのようなアプリが作れるのか。Walczyszyn氏によれば、バックグラウンドのシステムと連携するデータ指向アプリや、派手なグラフィックを必要としないビジネスアプリ、そしてシンプルなグラフィックのゲームやアニメーションなどは、PhoneGapで開発するのに向いている分野だという。一方で、現時点では3Dゲームのような高度なグラフィックスを利用するアプリの開発には向かないとのこと。そのような高度なグラフィックス表現にはネイティブの性能を最大限に活用する必要があり、Webベースの技術だけでは十分ではないからである。

2.実績を上げて急成長するPhoneGap

続いてWalczyszyn氏は、実際にPhoneGapを利用して作成されたアプリの例として、次のようなものを紹介してくれた。

・BBC Olympics(iOS版/Android版) - 英BBCによるロンドン・オリンピックの情報を受けとるための公式アプリ。残念ながらイギリス国内でしか利用できない。

・Wikipedia Mobile(iOS版/Android版) - Wikipediaを閲覧するためのモバイル向けの公式アプリ。

・Untappd - 飲み会などによる交流をサポートするSNS「Untappd」の公式モバイルアプリ。

・SS Insignt - Adobe社内でソリューションコンサルティングチームが利用しているタブレット用アプリ。Salesforce.comのシステムと連携し、スケジュールやコンタクト、オポチュニティ情報などの共有を行える。

上記のほかにも、2011年9月時点ではiTunes Storeで販売されているアプリのうちの4%ほどがPhoneGapで作られたものだったとのことで、PhoneGapが着実に実績を上げていることが分かる。

Walczyszyn氏によれば、PhoneGap SDKのダウンロード件数は月に10万件にのぼるほか、FacebookやSalesforce.com、IBMといった大手ベンダーもPhoneGapをベースとしたツールをリリースしているため、間接的なユーザー数はさらに多いとのこと。PhoneGapは今や非常に大きなマーケットに成長しつつある段階に入っている。

3.関連サービスも充実

PhoneGapの最大の強みは、HTMLを中心としたWeb標準技術による開発経験があれば、新たに追加のスキルを身につけなくても、各種プラットフォーム向けのネイティブアプリを開発できるという点だとWalczyszyn氏は言う。その上、JavaScriptベースの既存のライブラリやフレームワークとの併用も可能なため、Webアプリの開発経験はそのままPhoneGapでの開発に生かすことができる。

それに加えて、最近ではPhoneGapに関連したWebサービスも充実してきている。次の3つのサービスは、PhoneGapプロジェクトの一環として準備が進められているものだ。

PhoneGap Build
PhoneGapを利用したアプリケーションのビルド環境をオンラインで利用できるWebサービス。でHTML/CSS/JavaScriptによるコードやプロジェクトをアップロードすると、サーバ上に用意されたPhoneGapビルド環境を利用して各種モバイルプラットフォーム向けのパッケージを生成してくれる。ローカルに開発環境を用意しなくてもアプリのビルドを行うことができる。

PhoneGap Debug
PhoneGap製のアプリをデバイス上でデバッグすることができるサービス。Webブラウザからデバイス上のアプリにアクセスして情報を取得するため、実機での挙動を元にしたデバッグを行うことができる。

PhoneGap Emulation
7月にプロトタイプ版が公開されたばかりの、Webブラウザ(Google Chrome)上で動作するエミュレータによってアプリの検証が行えるサービス。RIMが開発しているRipple EmulatorというGoogle Chrome向けのエミュレータを利用しており、様々なデバイスの動作をエミュレートして検証することができる。ユーザインタフェースだけでなく、デバイス固有の機能や、ネットワークの状態なども設定可能。PC上にエミュレータを用意できない状況でも利用できる点が大きなメリットである。

4.長期的なゴールは、Web標準にネイティブ機能を組み込むこと

本稿執筆時点でのPhoneGapの最新版は7月20日に公開された「PhoneGap 2.0」になる。2.0における主な新機能は『様々なモバイル向けのアプリを開発できる「PhoneGap 2.0」が公開』にまとめられている。特にiOSプラットフォーム向けには、プロジェクトウィザードが削除されるという大きな変更があった。これはすべてのプラットフォームでプロジェクトの作成方法を共通化するという目的によるものだという。そのために、2.0では新たにマルチプラットフォームに対応したコマンドラインツールが導入されている。

今後は、アプリの作成からデプロイメント、デバッグなどをより細かくサポートできるように、このコマンドラインツールをさらに充実させていく予定だという。また、より長期的なゴールとしては、モバイルデバイスのネイティブ機能もWeb標準の中に組み込んでいくことを目指しているとWalczyszyn氏は語っている。

「デバイス固有の機能にアクセスするためのAPIは、現在はそれぞれのプラットフォームごとに拡張機能として提供されていますが、将来的にはそれらのAPIをWeb標準の技術だけで実装したいと考えているわけです。そのために、まずはデバイスごとに必要となるAPIを柔軟に追加できるようなメカニズムを構築する必要があります。それは、オンラインサービスから必要に応じてプラグインを見つけて追加するような仕組みです。この機能は、現在cordova-clientプロジェクトで実装が始められています」

それと同時に、現在のAPIの見直しも進めていかなければならないと同氏は指摘する。例えば、現在は独自APIとして提供されている機能の中にも、すでにW3Cによる標準化が進められているものがある。HTML5に付随するDevice Orientation APIやMedia Capture API、Web Audio APIやVibration APIなどだ。これらのひとつひとつを検証し、PhoneGap固有のAPIとして残すべきが否かを判断していくという。

そのほかに、現在はプラットフォームごとに分かれているJavaScriptファイルを単体のものとして統一することや、WebWorkerによるマルチスレッドのサポートなどといった拡張が提案されているとのことだ。

5.Walczyszyn氏「マルチプラットフォーム向けに開発を行っている人たち全てがPhoneGapを使うべき」

ここからは、Walczyszyn氏とGreenblatt氏の両名にマイナビニュース編集部からの質問に答えていただいた。

──2011年9月のNitobiの買収は、Adobeの戦略上どのような位置づけにあるのでしょうか。

Walczyszyn氏: HTML5への取り組みを強化する上で必要な投資だったということです。Edgeのようなツールも開発していますが、それだけでは十分とは言えませんでした。より深くHTML5をサポートしていくためには、PhoneGapのような強力なツールが不可欠だと判断したわけです。それに加えて、Adobe自体がもっとHTML5の発展に貢献していきたいという思いもありました。新しいテクノロジーを自分たちの手で作り、拡張していきたかったのです。

Greenblatt氏: 現在、Webスタンダードの実装はWebKitという形で存在しており、これがWebによってできることの範囲を大きく拡大させています。そうやって成長した技術をPhoneGapによってモバイルで使えるようにするというのが我々の目標です。Adobeはこれまでにも、PhotoshopやPDFなどによって、ユーザの世界を広げることに貢献してきました。そして今ではそれらの技術は業界標準として使われています。PhoneGapでもそのようなライフサイクルを実現したいと考えています。

──日本では先日PhoneGapユーザグループが設立され、これから盛り上げていこうという段階に入りました。その上でお聞きしたいのですが、まずはどのようなユーザがPhoneGapを使うべきだと思いますか?

Walczyszyn氏: マルチプラットフォームをターゲットとして開発を行っている人たち全てですね。その中には、予算が少ないためにひとつのプラットフォームにしか対応できないというような状況の人も含まれます。PhoneGapは複数のプラットフォームに向けたアプリの開発効率を飛躍的に向上させてくれるはずです。また、Web開発のスキルを有しており、ネイティブのモバイルアプリの開発経験がない開発者も、PhoneGapの恩恵を強く受けられる人だと思います。Web標準技術さえ使えれば、新たなスキルを習得せずにネイティブアプリの開発が行えるからです。

少し違った見方としては、これからHTML5をターゲットにしようと考えている人にとっては、手始めにPhoneGapから着手してみるというアプローチも有効ではないかと思います。PhoneGapがブラウザ間の実装の違いなどを吸収してくれるため、純粋にHTML5やJavaScriptのことだけを考えればいいからです。

──逆に、PhoneGapには向いていない分野や、PhoneGapを使う上での注意点などはあるでしょうか。

Walczyszyn氏: 現時点では、3Dゲームなどのように、高度なグラフィックス機能を必要とするようなアプリの開発には向いていません。GPUや物理エンジンなど、デバイスの持つ性能を最大限に生かさなければならないようなケースでは、ネイティブの言語での開発が適していると思います。ただし、Webの世界でもそのような分野に対する取り組みも活発に行われているので、現状でも2.5Dくらいのグラフィックスであれば問題なく作れますし、将来的には3Dゲームでの使用にも耐えるようになると期待しています。

もうひとつの注意点としては、PhoneGapは決してネイティブのユーザエクスペリエンスを100%再現するフレームワークではないということです。jQuery Mobileのようにネイティブのものと同一のルックアンドフィールを実現できるフレームワークもありますが、PhoneGapはそのような用途に向いているものではありません。

──モバイルのネイティブアプリ開発という位置づけとしてはAdobeにはFlash/AIRがありますが、これらのプラットフォームとPhoneGapはどう使い分けていけばいいのでしょうか。

Walczyszyn氏: 先ほどPhoneGapの苦手分野と言った、3Dゲームなどのネイティブのパワーを最大限に生かすようなアプリの開発ですが、これはまさにFlash/AIRを使うことでカバーできる分野です。Flash/AIRは高度なグラフィックスや物理エンジンを利用することができ、ゲームやアニメーションのための技術も成熟しています。また、AdobeのFlashプラットフォーム戦略の中でも、これらは重要項目として位置づけられいる分野です。

一方でPhoneGapは、よりビジネスライクなアプリの開発の向いていると言えます。データ集約型のアプリや、ソーシャル機能を利用したアプリなど、Web上の様々なリソースと連携するような分野で強みを発揮することができます。

──Flash Professional CS6(以下、Flash Pro)では、CreateJSを利用することでFlash技術を用いてHTML5/JavaScriptアプリを作ることができるようになりました。これとPhoneGapはどういう関係になるのでしょうか。

Walczyszyn氏: そのふたつは決して競合するようなツールではないと思っています。PhoneGapは既存のWeb技術と組み合わせて使うこともできますから、Flash Proで作成したWebコンテンツを、PhoneGapでネイティブアプリ化して配布するという形も可能なのです。位置づけとしては、Flash Proはオーサリングであり、PhoneGapはランタイムだと思ってください。両者をうまく組み合わせれば、より可能性は広がっていくはずです。

──最後に、日本の開発者に向けてメッセージをお願いします。

Walczyszyn氏: Phongapを使ってみようと少しでも考えた人は、ぜひ実際に試してみてください。私自身も、もともとはFlash開発を手掛けていましたが、そこからPhoneGapに挑戦したひとりです。これは非常にエキサイティングなチャレンジでした。皆さんにもぜひ経験していただきたいと思います。

Greenblatt氏: 私としては、まずは「html.adobe.com」を覗いて、PhoneGapやHTML5にどんなイニシアチブがあるかということを確認して欲しいと思います。html.adobe.comはAdobeによるHTML関連の技術やツールに関する情報を集約したサイトです。様々な技術の情報があります。もちろんPhoneGapのコンテンツもあり、PhoneGapがいかに簡単に利用することができるかということも実感していただけるはずです。

合わせて読んでほしい記事
【レポート】「PhoneGap Build」で一層手軽になったモバイルアプリ開発
【レポート】Web標準技術でモバイルアプリ開発可能なフレームワーク「PhoneGap」を試す