パッケージアプリとは?

Chrome拡張機能、特にパッケージアプリの大幅な強化がGoogle I/Oで発表されました。有り体に言えば、ブラウザの枠から出て、ネイティブアプリのように見えるウェブアプリを開発することができるようになります。

これってなかなかアツい話だと思うんですが、意外に話題に登っていない気がするので、とりあえずオフィシャルの説明ページを勝手に訳してみました。

http://code.google.com/chrome/extensions/trunk/apps/about_apps.html

・・・

パッケージアプリとは?

パッケージアプリはネイティブアプリのようにパワフルでありつつ、ウェブページのように安全な体験を提供します。ウェブアプリと同じく、パッケージアプリもHTML5JavaScriptCSSで記述されます。しかし、パッケージアプリは見た目も動作もネイティブアプリ同様で、ウェブアプリよりもずっと強力な機能を持ちます。

これまでのウェブアプリには不可能だったChrome APIやサービスへのアクセスが利用可能になったことにより、ネットワークやハードウェアデバイスと相互作用するパワフルなアプリ、メディアアプリを構築できます。以下はその簡単な例です:

  • シェル(VMWare、Citrix、SSH、RDP、VNCクライアントなど)
  • 音楽/動画ストリーミング
  • 画像/動画/音楽編集

どのような見た目か

ユーザーがパッケージアプリを開くと、アプリに関係したタスクにしっかりと焦点が合わされます。パッケージアプリには従来のような装飾はありません。オムニボックス(アドレスバー)も、タブも、その他のブラウザインターフェースはもはや存在しないのです。ネイティブアプリと同じく、もうブラウザに閉じ込められてはいません。起動すると、パッケージアプリはウィンドウの中で開き、次のような見た目になります。(もちろん全く違うスタイルのウィンドウにもできます)

http://code.google.com/chrome/extensions/trunk/images/editor.png

どのように動作するか

パッケージアプリのページは常にローカルに読み込まれます。これによりアプリのネットワークへの依存が少なくなります。ユーザーはアプリをインストールすると、そのアプリのライフサイクルを完全に制御できます。アプリの起動と終了は高速で、システムはパフォーマンス向上のためにいつでもアプリをシャットダウンできます。ユーザーはアプリを完全にアンインストールできます。

あなたがなにもしなくても、アプリはオフラインで起動します。しかし、オフラインの間確実にユーザーデータをローカルに保存し、データサーバーがオンラインになったときにバックアップを同期するにはいくらかの作業が必要です(オフラインファースト参照)。

どのように開発するか

パッケージアプリはウェブアプリの変形です。アプリを記述するにはウェブプラットフォームと同じコード・フレームワーク・ツールを使います。しかしブラウザの機能のいくつかは除かれ、セキュリティやプログラミングの慣習を改善するためにウェブAPIは削除されたり変更されたりしたものもあります。

よりネイティブに近いアプリを作成する助けになるように新しい機能も追加されています。アプリコンテナとプログラミングモデルはパッケージアプリの見た目と動作を規定します。これらのモデルはユーザーによりネイティブに近い体験を提供することを目的としています。強力なAPIが追加されているので、アプリはネイティブ同様の機能を持つことができます。また、厳格なセキュリティモデルはAPIの悪用を禁止します。

パッケージアプリの開発についてより詳細を学ぶには

  • アーキテクチャを理解するではアプリコンテナ、プログラミング、セキュリティのモデルを説明しています。
  • 基礎ではこのアーキテクチャをどのように利用するか、オフライン、データ管理、外部コンテンツの組み込みの実現方法について説明しています。
  • 高度な技術ではパワフルなネットワークやハードウェアAPIの使い方と、ウェブインテンツを利用してアプリとアプリを繋ぐ方>法について説明しています。
  • 停止される機能では禁止されるウェブの機能と、代わりになにを用いればいいかを説明しています。