レポート

「第36回 HTML5とか勉強会 ~2013年,Web開発の進化を探る」活動報告

この記事を読むのに必要な時間:およそ 3 分

2013年2月18日,第36回のHTML5とか勉強会はサイバーエージェントさんに会場をお借りして開催しました。

今回は「2013年,Web開発の進化を探る」をテーマに,Web標準の進化,⁠オフライン・ファースト」というコンセプトによるアプリ開発の進化,HTML5の現状における使われ方とこれからの使い方について講演いただきました。

本稿では,HTML5とか勉強会スタッフの本間がその内容についてレポートします。

画像

勧告候補になったHTML5.0の仕様についてと,HTML5.1の始まり

はじめにW3C(World Wide Web Consortium)Michael Smithさんより,HTML5.1で追加されるAPIの中からNavigationControllerとtemplateを中心に講演いただきました。

画像

appcache

オフラインWebアプリケーション用のAPIとしてHTML5.0ではappcacheが提供されています。これは,Webアプリケーションのリソースファイルをブラウザでキャッシュし,オフライン時にこのキャッシュを利用することでサービスへのアクセスを可能にするものです。

ただし現状のappcacheはユーザがオフラインの時だけではなく,オンラインのときもキャッシュからデータを取得するという仕様で,使いにくく問題も多いとのこと。これを解決するため,最近1年間で3回の会議が行われ,その結果NavigationControllerという新しいAPIが登場することが発表されました。このAPIにより,既存のappcacheの問題は解決されることが期待されます。

現状のappcacheではすべてのリクエストに対し,キャッシュされたリソースが用いられるという動作をします。一方,NavigationControllerを使うと,すべてのネットワークリクエストはコントローラを通して行われるため,オフライン時の動作を柔軟に制御できると指摘しました。これは,プロキシと考えると分かりやすいとのことです。

Navigation Controllerは,appcacheと比べて低レベルのAPIであり,使うに当たって必要なコードの量は増えるがパワフルであると言及しました。

さらに,Navigation Controllerはオフラインへの適用だけではなく,他の用途にも利用できるとし,例えば,デバイスのディスプレイに応じて適切なサイズの画像を表示するレスポンシブイメージの仕組みもNavigation Controllerで可能になるだろうとのことでした。

Navigation Controllerは現状ではまだアイデアですが,実装は迅速に進められると言います。講演前半の締めくくりとして,今年実装される最高のHTML5の仕組みとなるだろうとの見解を示しました。

Web Components

講演の後半はWeb Componentsの一つであるtemplateタグの紹介から始まりました。

Web ComponentsとはWebのUIをコンポーネント化するための仕組みです。時間の関係で講演の中では詳しい説明はありませんでしたが,白石さんの記事が参考になりますので,こちらを参照ください。

Web Componentsはとても強力な機構であり,Ajaxの登場がWebの概念を大きく変えたように,Webアプリケーションの概念を大きく変えるものになるであろうとの見解を示しました。ぜひ,W3Cが公開しているWeb Componentsの紹介資料を読んでほしいと述べていました。

最後に,W3CのGithubレポジトリを紹介し,⁠誰でもHTMLの仕様やHTMLのテストケースの製作に関与することができる。特にテストケースは10~20万個ほど必要となるため,ぜひ協力してほしい」と講演を締めくくりました。

詳しい内容は動画資料をご覧ください。

オフライン・ファーストの思想と実践

続いて,株式会社オープンウェブ・テクノロジー白石俊平さんから「オフライン・ファーストの思想と実践」と題して,オフラインWebアプリケーションの作り方や,そのために必要な考え方について講演いただきました。

画像

発表タイトルにもある「オフライン・ファースト」とは,Webアプリケーションを作るときにオフラインを最初に検討するという思想のことで,2012年11月26日のJoe Lambertさんの記事から有名になったそうです。

2010年5月15日に言葉が誕生し,約一年半後の2012年にブレイクした「レスポンシブデザイン」と対比して,2014年の半ばくらいに「オフラインWeb時代」がくるのでは,と指摘する白石さん。

オフラインWebアプリケーションは,データをあらかじめローカルにキャッシュし,まずはそこにアクセスを行うため,オフラインでも使用可能という恩恵だけでなく,アクセススピードも速くなり,ユーザビリティの向上が見込まれます。しかし,すべてのアプリケーションをオフラインに対応すべきというわけではなく,オフラインは「機能」であり,アプリケーションによって必要か否かを選択すべきものであると述べていました。

では,どのようなアプリケーションにオフラインという機能を入れるべきなのか。白石さんはその基準を「読む中心のWebサイト」「編集中心のWebアプリ」かで判断すると良いと解説していました。

情報量が非常に多く,また最新性が重要であるニュースサイト等ではオフライン化するコストの方がメリットを上回ります。しかし,最近オフライン機能を追加したGoogle Slidesのように,ユーザの編集結果がいかなるときも保持されるべきアプリケーションの場合は,コストよりもメリットが大きくなります。その上で,オフラインの活路はモバイルアプリにある,と述べていました。

続いて,Joe Lambertさんの記事の内容をまとめて,オフライン・ファーストの勘所として,次の3つを挙げました。

  1. アプリケーションとサーバを切り離す
  2. ラッパーを通じてWeb APIを呼び出す
  3. 抽象化したオブジェクトを通じてデータを操作する

普通のWebアプリとオフラインWebアプリでは作り方が全く異なり,Web開発者にとってはパラダイムシフトが必要であるため,この中でも一つ目が一番重要であると述べられていました。

講演の後半では,オフラインでも動くメモ帳アプリのデモがありましたが,白石さんによると,データの同期処理の実装はとても難しいとのこと。同期処理中にオフラインになった場合どうするか,同期量を「必要最小限」に留めるにはどうしたらよいかなど,考慮すべきことが多いからだそうです。

しかし近い将来,このAPIを使用してデータを保存すれば自動で同期してくれる,というようなオフラインWeb対応のAPIが提供され,そのようなAPIの登場により2014年にはオフラインWebの時代が来るのではないか,と講演を締めくくりました。

講演動画資料はこちらで公開されています。

著者プロフィール

本間咲来(ほんまさき)

NTTコミュニケーションズ 先端IPアーキテクチャセンタ所属。

html5jスタッフ。

twitter:@sakkuru

コメント

コメントの記入