イベントレポート

de:code 2017

PWA、WebVR、Web Assembly……ウェブ最新技術の実装でGoogle、Mozilla、Microsoftが協調

 日本マイクロソフト株式会社の主催による開発者向けイベント「de:code 2017」で、GoogleとMozillaからゲストを迎えて5月23日に行われたセッション「War is over:ブラウザエバンジェリスト達とWebの未来を語ろう」をレポートする。

 セッションは、PC・スマートフォンを問わず、現在の主要なウェブブラウザーエンジンと言えるGoogle開発のChrome、Mozilla開発のFirefoxから、Google Developer Advocateの北村英志氏と、Mozilla Japan技術戦略マネージャーの浅井智也氏が参加。日本マイクロソフトの物江修氏(株式会社デベロッパーエバンジェリズム統括本部エバンジェリスト)が司会を務めた。

 現在、3社では協調してウェブ標準技術の採用を進めている。この状況について、Googleの北村氏は、「これまで培ってきたのはAPIだけではなく、標準化プロセスの作り方や議論。合意形成の作り方が世の中で一番進んでいる」とした。

 日本マイクロソフトの物江氏がテーマに挙げたのは、Web Payment API、WebVR、Web Assembly、Progressive Web Appsといった最新のウェブ技術への対応状況だ。

Web Payment API

 Web Payment APIは、Windows 10 Creators Updateに搭載のMicrosoft Edge 15で新たに対応したウェブ標準API。同様に、ウェブサイト向けに決済機能を提供しているPayPalやStripeなどとは異なり、ブラウザーのネイティブUIでデータをやり取りできるAPIとして定義されているのが特徴だ。

 Googleの北村氏は、「フォームに生のクレジットカード情報を入力して、そのまま送るという状態でいいのかという課題に応え、ネイティブにデータをやり取りできる方法」とし、ChromeはAndroid版ではChrome 53で、今後デスクトップ版とiOS版でも対応予定であることを紹介した。

 一方、Firefoxは、「バージョンは明言できないがサポートの方向で進んでいる」(浅井氏)とのことだ。物江氏は「2017年中あるいは2018年初頭には、気軽に決済に使えるようになるのではないか」との見通しを示した。

WebVR

 WebVRは、3Dグラフィックスの表現技術である「WebGL」を用いてウェブブラウザーでVRコンテンツを表示するための技術。もともとはMozillaが開発したもので、MozillaやGoogleなどがWebVR構築用のライブラリを提供している。Firefoxがいち早くサポートしており、続いてChromeがバージョン「56」で対応。その後、スマートフォンを用いて安価にVRコンテンツを楽しめる「Google Cardboard」のサポートが追加されている。

 Microsoftでは、Edge 15で新たにWebVRをサポート。WebGLベースのゲーム開発向け3Dライブラリである「Babylon.js」を提供している。また、VRコンテンツをPCで楽しめる「Windows Mixed Reality」に対応するヘッドマウントディスプレイ(HMD)開発者キットが日本エイサーから4万円で国内販売されることも発表されている。

 Mozillaでは、HTMLタグなどを用いてウェブページに3Dコンテンツを挿入できるフレームワーク「A-flame」を開発している。また、Googleでは、「DayDream」内でChromeを起動可能にすることを5月に開催されたイベント「Google I/O 2017」で発表している。

 VRの用途は、現状ではゲームが筆頭だが、ウェブブラウザーで利用可能になることで「CADや、例えば商品を3D表示するECサイトなどでの利用も将来的には視野に入っている」(物江氏)とした。

Web Assembly

 Web Assemblyは、ほかの言語で書いたプログラムをコンパイルしてブラウザー上で動かす技術。Mozillaの浅井氏によれば、もともとJavaScriptは動的な言語であるという側面などから、その仕様上、速度面に問題があった。asm.jsはJavaScriptのサブセットとしてMozillaが提案したもので、C言語に近いかたちでコンパイルを行う。これにより、スクウェア・エニックスのオンラインカードバトルRPG「乖離性ミリオンアーサー」などは、これを用いて開発されているという。

 浅井氏は「Web Assemblyはコンパイル済みのバイナリーフォーマットで、これによりブラウザー実行時のパフォーマンスを向上し、C言語の2割減程度の速度を実現している。現在では主要なブラウザーが足並みをそろえて開発を進めており、C++もしくはMozillaがブラウザーエンジンの開発に採用しているLAST言語などからコンパイルして利用できる」という。

 Web Assemblyは、すでにFirefox、Chrome双方で対応が済んでいる。一方、Edgeでは、Insider PreviewのEdgeにおいて、正式採用に至っていない“実験的”なAPIを有効化できる「about:flags」の設定を変更することで、利用できる状況とのことだ。

 しかし、asm.jsは「高機能な計算が必要になるものを動かすためのもので、JSの代わりではない」(物江氏)という。「わざわざJavaScriptを書きにくくしたようなもので、あくまでコンパイルターゲットとしての言語仕様。人間が書くためのものでない」(浅井氏)とのことだ。

 そして浅井氏は、「ゲームばかり注目されているが、Cの既存のライブラリ資産をウェブで使えるようになる。これを連携させる方法を定義している」とし、「(コンパイラ基盤である)LLVMでコンパイルできるものなら、標準ライブラリをちょっと追加実装すれば動く」とのことだ。

Progressive Web Apps

 Progressive Web App(PWA)は、主にGoogleが開発を進めている「モバイルウェブの新しいかたち」(北村氏)だ。すでに提供されているものとしては、mobile.twitter.comにアクセスすると利用できる「Twitter Lite」が挙げられる。北村氏は、「まず、ウェブサイトがホーム画面から起動でき、プッシュ通知にも対応。オフラインでも動く。体験としては、ネイティブアプリと見分けがつかない」とPWAの特徴を紹介した。

 浅井氏は「(PWAでは)データ通信量を7割程度削減できる。今後、毎年1億人程度ユーザーの増加が見込まれるインドやインドネシアなど、データ通信料が前払い課金の地域では、新規ユーザー獲得などが容易になる。その意味ではグローバルビジネスでも重要」とした。

 PWAに対応するブラウザーでは、オフラインで利用し、ネットワークが接続されると自動的にバックグラウンドで通信を行う「service worker」の仕組みも利用できる。

 FirefoxでもすでにPWAへの対応が済んでおり、「ホーム画面へのインストール、フル画面表示などが間もなく入る」(浅井氏)とのことだ。そして「(対応ブラウザーでは)インストールできるマニフェストをウェブサイトに登録しておくと、自動的にホームにメニューを追加などができる」という。

 物江氏は「モバイルというとアプリという印象が強いが、PWAならブラウザーなので、URL共有などが気軽にできる。検索エンジンでもヒットさせやすくなる」としたほか、「ウェブサイト構築の手間も1つで済み、古いブラウザーでは通常のウェブとして表示されるのでサービスが阻害されない」とその利点を紹介。Edgeでも、2017年夏の開発者向けビルドで試せるようになる見込みだという。

 このPWAにより「ウェブアプリはブラウザーフレーム内でしか動かず、ネットワークがつながっていないとだめ、という印象が変わる」とした。浅井氏は「イントラネットでも、キャッシュで通信負荷が減る」ことを指摘。「シングルページアプリのビューがローカルにあり、強力なキャッシュが効くようなもの」(物江氏)でもあるという。

 北村氏は「(PWAで使われている)個別のテクノロジーはオープンスタンダード。特にservice workerはブラウザーが起動してなくてもリクエストを受け付ける。Ajaxの次に来る革命に値する。プッシュ通知とかは特に便利なので、ぜひ使ってみてほしい」とした。さらに物江氏は「PCでもモバイルでも、対応ブラウザーであればデバイス問わず動作する」とした。

 PWAの使われ方について北村氏は、「エンドユーザーには意識させないことが重要」とした。一方、浅井氏は「PWAは、ストアでインストールするネイティブアプリの障壁を取っ払える。ブッキング(予約)やショッピングのために、わざわざアプリを入れる人はいない。新規ユーザーはウェブの方が3~4倍多く、(PWAのように)ウェブを使っている中で自然とインストールできる方が確実にユーザーが増える。リンクを送るだけでプロモーションへの誘導が簡単にできるので、すごく広がりがある」とした。

 物江氏は「インターネットを利用するクライアントは、IoT機器に代表されるように多様化してきており、ブラウザーを必要としない用途も増えていく。ただし、それによってウェブがなくなることはない。ウェブは時代の要求に合わせた進化を続けており、例えば、スマートフォンではウェブよりもアプリが使われるといった状況も、PWAによって変わるかもしれない」との見方を示した。