HTML5やデスクトップ同様のアドオン機能も
モバイル版FirefoxがAndroidにやってくる!
2010/07/02
「もはやモバイル版だからといって機能を限定する必要はない。われわれMozillaとしてはそう考えています」。
まだアルファ版のAndroid版のFirefoxをデモンストレーションしながら、こう語るのはMozilla Japanでテクニカルアドバイザを務める加藤誠氏だ。
現在のスマートフォンや携帯電話は、10年前のPCと同等かそれ以上のCPU性能、メモリ容量を備える。画面サイズも横800ピクセル程度の端末が増え、エントリクラスのPCとの差が縮まっている。従って、モバイル向けのFirefoxは、デスクトップ版と同じユーザー体験を提供するのだという。
これまでモバイル向けでは出遅れた感のあるFirefoxだが、iPhoneやAndroidの普及が本格化の兆しを見せる中、いったいどのようなブラウジング体験をユーザーに提供しようとしているのか。東京・麹町のMozilla Japanで話を聞いた。
Android版はC++によるネイティブとのハイブリッド
モバイル版のFirefoxの取り組み自体は数年前にさかのぼる。2007年1月にはノキアが“インターネット・タブレット”と呼ぶジャンルの製品「Nokia N800」としてFirefoxベースのブラウザを統合。その後、後継機種のN900などにも搭載され、2010年1月にはプロジェクト名「Fennec」の名前のもと、バージョン1.0をリリースしている。
これまでFennecの対応プラットフォームはLinuxベースのモバイル向けプラットフォーム「Maemo」(現在はインテルのMoblinと統合しMeeGoに改名)のみだったが、2010年末から2011年にかけて登場するFennecのバージョン2.0はAndroid 2.1以降にも対応する。
「Android版のFirefoxは、デスクトップ版と同じC++で書かれたレンダリングエンジン、JavaScriptエンジンを搭載しています」(加藤氏)
x86とARMの違いなどアーキテクチャ依存の部分はもちろんコードが分かれているが、基本的にはまったく同じエンジン(GeckoやTraceMonkey)が動いているため、レンダリング結果は同じになるという。
Androidアプリは通常、Dalvik VMと呼ばれるJavaVM上で稼働するが、「Android NDK」と呼ばれるネイティブコードの開発キットを使えば、Linux向けのライブラリなどは、大きな改変なしに再コンパイルするだけで使える。UI部分はJava(Dalvik VM)、エンジン部分はC++(NDK)という構成だ。Android NDKはネイティブアプリを開発するためのものではないが、高速なアプリに欠かせないライブラリなどはCやC++で開発できる。
Windows Mobile版は開発を凍結
Firefoxがターゲットにし得るもう1つのモバイル・プラットフォーム、Windows MobileについてもMozillaでは取り組んでいた。ただ、実際に稼働するビルドも存在したものの、Windows Phone 7以降でマイクロソフトがネイティブアプリをサポートしない方針を明らかにしたため、MozillaではWindows Mobile(Windows Phone 7)向けの開発を凍結したのだという。
日本ではWindows Mobileがビジネス用途で普及していたが、iPhoneの出現でコンシューマー向けスマートフォンが伸び、Androidの動きも活発化してきたという状況の変化もある。Mozilla Japan代表理事の瀧田佐登子氏は「グローバルでMozillaとしてどういう環境でやっていくのか。ノキアのLinux(MeGoo)と合わせて、Androidを中心に攻めていくという状況です」と話す。ただ、もしマイクロソフトがポリシーを変更してネイティブアプリの開発を許容するようになるのであれば、Mozillaとしては再びWindows Mobile向け開発を再開するだろう、という。
ちなみに、iPhone版Firefoxは当面望み薄だ。iPhoneのSDKには「ダウンロードしたコードの解釈」「バイナリの実行、呼び出し」を禁じる条項があるため、Webブラウザを開発してもApp Storeでの配布はできない。Opera SoftwareはiPhone版のOpera Miniを提供しているが、これはサーバ側でレンダリングした結果を表示するだけのビューワーという位置付けなのだという。
HTML5やCSS3はデスクトップ版と同等のサポート
Fennec 2.0は、年内にリリース予定のデスクトップ版「Firefox 4」と同じGecko 1.9.3を搭載しており、HTML5やCSS3のサポートなども、すべて同等だという。CanvasやSVG、MathMLなど、デスクトップ版がサポートする機能はすべてFennecでも利用できるほか、CSS3のtext-shadowやWebFontsもサポートするという。
「デスクトップのブラウジング体験を、そのままモバイルでも提供したい。あれが動かない、これが動かないというのはユーザーにとって不幸」(瀧田氏)というのが、モバイル版Firefoxに込めたMozillaの思いという。このため、Fennecというプロジェクト名は正式名称や愛称とはならずに、あくまでもプロジェクト名という扱い。モバイル版もFennecという名前ではなく、「Firefox」という名称でリリースするのだという(本記事中では便宜上Fennecという名称も併用している)。
HTML5やCSS3に加え、傾きセンサーやカメラ機能のAPIからのアクセスも可能になるといい、「HTML5のvideoタグとスマートフォンのカメラ機能を組み合わせて何か面白いことができるのではないかという話をしているところです」(加藤氏)という。ブラウザからカメラ機能にアクセスするAPIはAndroid 2.2標準搭載のブラウザでも利用できようになるため、モバイルWebの世界では案外早くカメラ利用のWebアプリが登場してくるのかもしれない。
アドオンもデスクトップと“ほぼ”共有可
Firefoxがユーザーに広く受け入れられた理由の1つでもあるアドオン機能についても、モバイル版でデスクトップ版と同等のものが使える。XMLベースのUI記述言語「XUL」(ズール)とJavaScriptを使って行うのはデスクトップ向けと同じ。UIの違いがあるため、そこだけは書き換える必要があるものの、これはアドオン開発者にとっては大きな魅力だろう。もしモバイル版Firefoxで多数のアドオンが利用できるとなれば、標準搭載ブラウザとの大きな差別化要因となるかもしれない。
カスタマイズ機能については「デスクトップ版ほど自由度は高くない」(加藤氏)ものの、細かなパラメータの調整などができる「about:config」も、デスクトップ版同様に搭載するという。
Android版は最初からマルチプロセス
Fennecの実装で興味深いのはデスクトップ版よりも、モバイル版で先に実装されている機能があることだ。GPSを利用したGeolocation APIやカメラ機能、傾きセンサーAPIの統合がモバイル版で先行しているのは当然だが、ブラウザ全体の「マルチプロセス化」もモバイル版が先だという。
Google Chromeはタブごとにプロセスを別とすることで、クラッシュ耐性や応答性の高さなどを実現しているが、Mozillaでもマルチプロセス化する計画は2009年5月頃から存在していた。
Android版Firefoxでは、レンダリングエンジンなどはデスクトップ版と同じだが、アーキテクチャ上、レンダラーとアプリのUIは切り離されている。このため、もともとレンダリングした画像をいったんメモリ上に置いてそれを描画するという構成となっていて、マルチプロセス化がやりやすかったのだという。
クラウドによるブラウザ間の同期
モバイル版Firefoxでは、もう1つ注目すべき機能がある。クラウド経由でのユーザーデータの同期機能だ。これは正確にはモバイル版固有の機能ではないが、モバイル版の登場でがぜん説得力を持ってくる機能となりそうだ。
ユーザーデータの同期機能はOperaやGoogle Chromeではすでに実現されているものだが、Firefoxでは、
- ブックマーク
- 閲覧履歴
- パスワード
- 開いているタブ
など幅広い種類のユーザーデータを同期させられるという(ちなみにChromeではブックマークのみ。Operaではブックマーク、スピードダイヤル、パーソナルバー、メモ、入力したブラウズ履歴、カスタムサーチを同期できる)。
この中で、特に興味深いのは「開いているタブ」の同期だ。
例えばデスクトップで調べ物をしていて、そのまま外出し、続きをモバイル端末で読むということができるようになる。これまで自分宛てにURLをメールしたり、Evernoteに転送したりしていたことが、自然な連携でできるようになりそうだ。閲覧履歴を共有しておけば、どの端末でアクセスしたかによらず、URL入力欄に数文字入れれば補完が効いてアクセスできるようになるだろう。
これはもともと「mozilla weave」という名前で2007年12月から実験的に提供してきたもの。ロゴも新たに「Firefox Sync」と改名されて現在に至っている。今のところ、Firefox 3.6ではプラグインで明示的にインストールする必要があるが、Firefox 4では標準搭載となる。つまり、Firefox 4とFennec 2.0が出る年末には、標準でデスクトップとノートPC、モバイル端末の同期が標準でできることになる。
閲覧履歴やパスワードなど、かなりセンシティブな情報をサーバ側に送ることになるが、「通信はすべてAES256で暗号化していて、サーバ側で見ることはできません」(マーケティング部 テクニカルマーケティング担当 浅井智也氏)という。非営利団体のMozilla Foundationとしては、ユーザーデータを集めてマネタイズするインセンティブがないため、こうした設計になっている。
Firefox Syncは仕様も実装もオープンというのも特徴という。サーバ側もMPLに基づくオープンソースであるため、改変して自社サーバとして運用することもできる。また、User APIもSync APIもRESTで実装されていて、自由にクライアントやWebサービスと連携させることができるという。ユーザーとしてはOperaやChromeの同期データと連携してほしいと思うが、そうしたことも、これらサービスのAPIがオープンである限り、今後は可能になってくるかもしれない。
iPhoneには閲覧専用の「Firefox Home」を提供開始!
Firefox Syncに対応するブラウザは、
- デスクトップ版Firefox 3.6+プラグイン
- デスクトップ版Firefox 4(未リリース)
- Android版Firefox(未リリース)
だが、iPhone向けには「Firefox Home」という閲覧専用のアプリを提供する。2010年7月1日にアップルのApp Storeに申請されたばかりで、まもなく一般にダウンロード可能となりそうだ。現在のところUIは英語のままだが、すでに日本語の扱いには問題がないという。
モバイルとデスクトップの境目が消える?
ここまでの話をまとめると、モバイル版Firefoxが実現しようとしているのはデスクトップ版とUIこそ異なるものの、基本的にはデスクトップ版Firefoxそのものの移植だ。むしろWindows版、Mac版、Linux版に続くマルチプラットフォーム化と見ることができる。
そして、スマートフォンを使ったネット利用が広まっている現在、ユーザー名とパスワードを入れる限り、すべてのFirefoxで同じブックマーク、同じ履歴、同じタブという、シームレスなブラウジング体験を実現できる。これがMozillaがFirefoxで目指す方向性と言えそうだ。
iPhoneやAndroidが急速に伸びていることから、Mobile SafariをはじめとするWebKit系ブラウザの存在感が増している。遅れてやってきたFirefoxに勝算はあるだろうか?
Android版Firefoxについて言えば、今のところダブルタップによるズームの精度や、操作の軽快感では、まだまだiPhoneなど先行するデバイスに及ばない、というのが私の個人的な印象だ。もちろん正式リリースまでまだ日があるので、この点は改善が期待できるだろう。
一方、クラウドとの連携や斬新なタブのUI、アドオンによる機能拡張など、iPhoneの標準ブラウザにないような魅力も備えている。
瀧田氏は、こう指摘する。
「確かに(iPhoneの)Safariが伸びています。でもFirefoxのような対抗ブラウザが出てくることで、けっしてブラウザ戦争というのではではなく、お互いのクオリティや機能が向上していくはずです」
モバイルWebの世界では、iPhoneやiPad、Androidの印象が強いために誤解しがちだが、今でもワールドワイドではOpera(Symbian)やBlackBerryのトラフィックが多い。日本ではケータイを始めとする組み込み端末に広く使われているNetFrontも有力だ。つまり、モバイルWebの世界は、まだデファクトと呼べるほど唯一の勢力が確定していない。
より高性能で能力的にPCに近づいたスマートフォンが本格的な普及期に入ろうかという今、Operaに続いてモバイル版Firefoxという対抗馬が登場し、モバイルの世界でもWebブラウザ間の競争が起こってくれることを期待しつつ、Android版Firefoxの正式リリースを楽しみに待ちたいと思う。
関連記事
情報をお寄せください:
- プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る (2017/7/20)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。最終回は、Linuxカーネルの中では、プログラムの起動時にはどのような処理が行われているのかを探る - エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね? (2017/7/13)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。今回は、プログラムの終わりに呼び出されるexit()の中身を探る - VBAにおけるFileDialog操作の基本&ドライブの空き容量、ファイルのサイズやタイムスタンプの取得方法 (2017/7/10)
指定したドライブの空き容量、ファイルのタイムスタンプや属性を取得する方法、FileDialog/エクスプローラー操作の基本を紹介します - さらば残業! 面倒くさいエクセル業務を楽にする「Excel VBA」とは (2017/7/6)
日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。本稿では、業務で使うことが多い「Microsoft Excel」で使えるVBAを紹介する。※ショートカットキー、アクセスキーの解説あり
|
|
キャリアアップ
- - PR -
転職/派遣情報を探す
「ITmedia マーケティング」新着記事
プログラマティック広告はどう変化? 米国レポートから見える「今後の動向」
CTVとプライベートマーケットプレイスへの広告支出のシフトにより、米広告業界ではプログ...
「顧客体験」の重要性高まる 2024年「CX」関連の人気記事TOP10を紹介
今回の記事では、2024年「ITmedia ビジネスオンライン CX Experts」のアクセスランキング...
SNSの情報がアルゴリズムで最適化されていることを「知らない」が6割超 年代別では?
ロイヤリティ マーケティングは、10〜60代のSNS利用者を対象に、SNS情報の信用度に関する...