Firefox OSのアプリ開発は思ったより簡単?〜関東Firefox OS勉強会レポート:UXClip(34)(2/2 ページ)
モバイルOSの新勢力として、Firefox OSが注目を集めている。このオープンソースOSの開発環境はどのようなものだろうか。本稿では、ユーザー勉強会の様子をレポートする。
3、Firefox OSでLINEは作れるか?(@sys1yagiさん)
このセッションのテーマになっている「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さん)と締めくくりました。
4、Firefox OS App Dev(@dynamisさん)
Mozillaのエバンジェリストである@dynamisさんのセッションです。冒頭では、これまでのセッションの中で挙がった疑問点に答えていただきました。さすがです。
- クロスドメイン制約はHTTP access control(CORS)の仕組みを使い、Access-Control-Allow-Originヘッダを送信することで制限解除が可能
- WebSocketが動くのかという質問に対しては問題なく動く
- VoIPはもうすぐ対応可能になる
- WebRTC対応は今年の秋以降になる見込み
- 実機を用いたデバッグについては、OS側の実装変更にWebブラウザのデバッガが対応できていないため、今は動かなくなっている
セッションの本題に入ります。まず「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やパッケージ型アプリを参考にしましょう。
5、モバイルクリエーターズについて&おさわり会
各セッション終了後は、今回の勉強会を主催したモバイルクリエーターズについての紹介とFirefox OS端末のおさわり会が開催されました。モバイルクリエーターズでは、今後プラットフォームに依存せず、横断的な技術情報の取りまとめや発信を行っていきたいと意気込みを語っていました。今回の勉強会の資料を含めさまざまな情報がこちらのWebサイトで公開されているので、ぜひチェックしてみてください。
おさわり会は大盛況でした。主催者側が用意したFirefox OSの端末に加え、参加者が持参したさまざまな端末、計30台以上がテーブルに並び、参加者全員で触り倒しました。
Geeksphone KEONは多数の人が持ち寄り、誰のものか分からなくなるため、写真のようにシールを貼って区別していました。
6、おわりに
最後に、有志が立ち上げたFirefox OSコミュニティを紹介します。今回の勉強会も含め、全国各地の勉強会情報やイベントレポート、ユーザー/開発者向けのさまざまな情報を発信しています。ぜひチェックしてみてください。直近の勉強会としては、7月には東京と大阪で開催されます。まだ参加されていない方は、お近くの勉強会に参加してみてはいかがでしょうか。
著者プロフィール
仲 裕介(なか ゆうすけ)
NTTコミュニケーションズ 先端IPアーキテクチャセンタにて、
最新Web技術の調査研究やスマホ向けサービスの開発などを行っています。
Twitter:@Tukimikage
- 「その発想はなかった」が12連発! アプリ・Webサービス・ものづくり・おばかの最先端がここにある〜MA9決勝戦レポート
- スマホアプリの検証環境改善を目指すNTTレゾナント、クラウド検証サービス提供の背景を語る
- “オフラインファースト”を実現する、ストレージ系APIライブラリ10選
- HTML5時代のWeb開発者が知らないとガチヤバな3つの未来予測と6つの脆弱性対策
- Firefox OSのアプリ開発は思ったより簡単?〜関東Firefox OS勉強会レポート
- 和製GitHubの「gitBREAK」は「儲からなくてもいい」
- テストを通じて「より良いWebの実現」に貢献〜Test the Web Forwardレポート
- 日本の開発者へのエール、HTML5標準化貢献への期待を語る〜W3C Developer Meetup - Tokyo 2013レポート
- アドビの終了したサービスは別の形で生かされる
- Google I/Oでユーザーに優しいモバイルアプリの条件を考えた
- JavaScriptのテストを開発工数に入れてもらうには?
- WebSocketでスマートテレビをリアル接続するぷらら
- 高速軽量なフレームワーク、FuelPHPって何?
- HTML5に本腰を入れ始めた任天堂―GDCで見えてきたゲームビジネスのゆくえ
- ビギナー向けデバッグツールで効率的に開発しよう
- さまざまなデバイスがWebと結び付いていく
- オフラインWebの活路はモバイルアプリにある
- ケータイ王国日本、復活の狼煙となるか? 世界最大の携帯電話見本市
- なぜ「enchantMOON」を、どうやって作ったのか?
- 九州で開催された、2つのHTML5のお祭り
- Webサイト高速化のプロセスだって自動化したい
- LEGOのロボットから全方位ビデオカメラまで CESで見付けたオモシロガジェット
- 2013年、Webがこうなったら面白い
- Chrome Tech Talk Night #4に行ってきたよ!
- Maker達のお祭りがやってきた! Maker Faire Tokyo 2012
- Coda 2かSublime Text 2か。あなたはどちらのエディタ派?
- ロボットも日本の国技に! 25年目の高専ロボコン
- FlashPlayerを自作するSWF研究会
- これからが本番、Windows 8アプリ開発
- 「TechCrunch Tokyo2012×MA8」まとめレポート
- ユーザーを魅了するUIはまぐれでは生まれない
- プログラムを「どや!」と発表し合う、明治大学アブノーマルプログラミング
- Flashゲームのパフォーマンス解析ツールMonocleとは?
- Web制作の現場で培ったノウハウを一挙に共有
- グリーの最新ソーシャルアプリ開発フレームワーク
- 自分の時間にテクノロジで遊ぼう!〜Make:Ogaki Meeting 2012レポート
- PhoneGap、新しいCSS開発、jQueryのコミットまで〜アドビインタビュー:モバイル系エンジニアがアドビシステムズのHTML5戦略を聞く
- 表示が速過ぎても、誰も文句は言いません〜CSS Nite「表示速度最適化」レポート
Copyright © ITmedia, Inc. All Rights Reserved.