このセッションのテーマになっている「LINE」アプリでは、モバイル端末が有する主要機能(UI関係、チャット、VoIP、電話帳、GPS、各種センサ、QRコードリーダー、課金、プッシュ通知など)がほぼ全て利用されています。その点に着目し、「Firefox OSで同等のアプリを開発できれば、現在市場に出回っている大抵のモバイル端末向けアプリは、Firefox OSで実現可能である」という証明になるとして、今回、Firefox OSでの実装に挑戦したそうです。セッションでは、チャットとVoIPの機能について、取り組んだ成果がデモを交えて紹介されました。
チャット機能に関しては、WebブラウザではおなじみのLocalStrageを利用し、データをローカルに保存しつつ、Node.jsで構築したチャットサーバを介して実現可能とのことです。しかしながら、制約が1つあり、先ほど紹介したPackaged Appではクロスドメイン制約が働き、Ajaxでの外部サーバとのHTTP通信ができないそうです。Packaged AppになるとローレベルなAPIまで操作できるため、セキュリティの観点から当然の措置ではあります。なお、この場合のクロスドメインは該当アプリ内をローカルドメインとして定義しているため、Firefox OS上の他のアプリと連携する場合でもクロスドメインの制約が発生するようです。
これらの制約を回避する方法としては、Hosted Appにするか、Packaged Appで特権タイプのアプリにするかの2択があります。アプリのタイプには標準、特権、公認の3種類があり、マニフェストファイルで設定が可能です。ただ、当然のことながら、特権タイプのアプリは、Mozillaの審査が厳しくなります。必要な機能を確認し、適切なアプリタイプを設定する必要がありそうです(後述する@dynamisさんのセッションでは、CORSの仕組みを使えば制限を解除可能との説明がありました)。
次はVoIP機能を使った通話に関する説明です。VoIP通話通話を可能にするには、SIPやPtoPといった接続技術が必要になります。今のWeb業界で注目の技術としては、WebRTCでしょうか。今回は、WebRTCを利用したHTML5のSIPクライアントである「sipML5」をFirefox OSで動かしてみたようです。
ただし、MozillaのWebサイトによれば、公認アプリの許可設定にVoIPという項目があることや、WebRTCがFirefox OSでも近々サポートされるとの情報があるため、今後に期待です。Mozillaのエバンジェリストである@dynamisさんも「今年の秋以降には対応するのでは?」と述べていました。
セッションの最後には、これらの状況を踏まえたうえで、「LINEは作れる!(はず)」(@sys1yagiさん)と締めくくりました。
Mozillaのエバンジェリストである@dynamisさんのセッションです。冒頭では、これまでのセッションの中で挙がった疑問点に答えていただきました。さすがです。
セッションの本題に入ります。まず「Firefox OSのアプリはWebアプリです」と強調していました。つまり、OS専用アプリではないため、利用できるAPIは全てWeb標準であり、Webアプリに専用のマニフェストファイルを用意するだけでFirefox OSアプリになります。WebOSと呼ばれるOSは基本的には同じようなことがいえるのですが、Firefox OSの場合は徹底的にWeb標準にこだわっているのが特徴のようです。
開発環境については、先述のFirefox OSシミュレータに関する情報をこちらにまとめているそうです。興味がある方はぜひご覧ください。また、「Firefox Nightly」と呼ばれる開発版で動作する最新開発ツールのデモンストレーションも行われました。このツールは、先月から開発版に入ったばかりで、まだ動作が不安定とのことです。Gaiaのリポジトリにソースファイルがあり、導入方法も今回のセッションで紹介されていますので、興味がある方は使ってみてください。
次にアプリを開発する際の注意事項が紹介されました。具体的には、Webブラウザ機能はないこと、ドメインごとに別ウィンドウを生成する仕様であること、UserAgentがAndroidとは異なること、一部のAPIにはContent Security Policy(CSP)が適応されることが挙げられました。Webブラウザ機能については、例えば「戻るボタン」がないため、画面を戻す必要があれば、開発者がUIとして作り込む必要があるようです。
CSPについては、さらに詳しく説明がありました。今までのセキュリティポリシーであるSOP(Same Origin Policy)はドメインごとにアクセス制限を実施するという考え方(先に述べたクロスドメイン制約のこと)でしたが、CSPはJavaScriptやCSS、画像などファイルの種類ごとにドメイン制限が可能になっています。また、クロスサイトスクリプティング(XSS)防止のため、HTMLファイル内にインラインスクリプトとしてJSを書くことが禁止されている点も注意が必要とのことです。なお、これらCSPの設定はマニフェストファイルで書き換えられますが、審査では個別の説明が必要になるとのことです。アプリ開発をこれから始める方はIntroducing Content Security Policyやパッケージ型アプリを参考にしましょう。
各セッション終了後は、今回の勉強会を主催したモバイルクリエーターズについての紹介とFirefox OS端末のおさわり会が開催されました。モバイルクリエーターズでは、今後プラットフォームに依存せず、横断的な技術情報の取りまとめや発信を行っていきたいと意気込みを語っていました。今回の勉強会の資料を含めさまざまな情報がこちらのWebサイトで公開されているので、ぜひチェックしてみてください。
おさわり会は大盛況でした。主催者側が用意したFirefox OSの端末に加え、参加者が持参したさまざまな端末、計30台以上がテーブルに並び、参加者全員で触り倒しました。
Geeksphone KEONは多数の人が持ち寄り、誰のものか分からなくなるため、写真のようにシールを貼って区別していました。
最後に、有志が立ち上げたFirefox OSコミュニティを紹介します。今回の勉強会も含め、全国各地の勉強会情報やイベントレポート、ユーザー/開発者向けのさまざまな情報を発信しています。ぜひチェックしてみてください。直近の勉強会としては、7月には東京と大阪で開催されます。まだ参加されていない方は、お近くの勉強会に参加してみてはいかがでしょうか。
著者プロフィール
仲 裕介(なか ゆうすけ)
NTTコミュニケーションズ 先端IPアーキテクチャセンタにて、
最新Web技術の調査研究やスマホ向けサービスの開発などを行っています。
Twitter:@Tukimikage
Copyright © ITmedia, Inc. All Rights Reserved.