SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2013】セッションレポート(AD)

【デブサミ2013】14-C-4 レポート
HTML5で高速なモバイルWebアプリ、3Dゲームの開発を可能にするカギとなる技術とは?

  • X ポスト
  • このエントリーをはてなブックマークに追加

 HTML5で高速なスマートフォン(スマホ)向けWebアプリおよび3Dゲームの開発ができる時代になってきた。では、どうすればそれが可能になるのか。実装方法についてネット上にはさまざまなアドバイスがあるが、玉石混合だ。本当に高速なスマホWebアプリを開発するにはどうすればいいのか。サイバーエージェントプラットフォーム部門のシモ・キンヌネン氏がシミュレーションを実施して得た知見を披露。また3Dゲームを実現する技術については、同アメーバ事業部フロンティアゲーム事業部のブルンナー・グンタ氏が解説した。

  • X ポスト
  • このエントリーをはてなブックマークに追加

スマホ向けHTML5アプリは3種類。よい実装方法は異なる

 最初に登壇したのは、サイバーエージェントで、ほとんどのコミュニティアプリに関わってきたシモ・キンヌネン氏である。キンヌネン氏はフィンランド出身。2010年に来日して、今回のデブサミが『初めての日本語でのプレゼンテーション』だという。実はキンヌネン氏は、現在も約130万ものWebサイトで使われているCanvas・VMLでのフォントレンダリングエンジン『cufon』の作成者。「もう古いので使わないで」と言い、会場の笑いを誘うほど、流暢な日本語でセッションを開始した。

株式会社サイバーエージェント プラットフォーム部門
シモ・キンヌネン氏
株式会社サイバーエージェント プラットフォーム部門 シモ・キンヌネン氏

 「より高速なHTML5のスマホ向けWebアプリを開発するには、どのような方法を採用すればよいのか。その答えを求めてネットを見ると、実にさまざまな情報が紹介されているが、いい実装方法もあれば悪いものもある。その理由はスマホのHTML5アプリには3種類あり、各アプリによって一番いい方法は変わるからだ」とキンヌネン氏は言う。

 スマホのHTML5アプリは『ブラウザアプリ』『ホーム画面に追加したWebアプリ』『ネイティブアプリに埋め込んだWebViewを使ったアプリ』という3種類がある(Androidの場合はブラウザアプリとWebViewを使ったアプリの2種)。

 この異なる3種のアプリの違いを把握するための方法としてキンヌネン氏が行ったのが、OCtaneベンチマークテストである。iPhone4、5およびAndroid4端末(Samsung GalaxyS3、Android4.0.4)の端末、さらにそれぞれ異なる3つのブラウザで各アプリのテストを実施したという。

 「Androidでは変わらなかったが、iOSではWebViewを埋め込んだネイティブアプリのパフォーマンスが約30%遅くなるということが分かった」とキンヌネン氏は語る。

イベントデリゲーション

 だからといって、「WebViewを埋め込んだネイティブアプリがダメだというわけではない」とキンヌネン氏。では、どうすればパフォーマンスを上げることができるのか。その方法として最初にキンヌネン氏が提示したのが、イベントデリゲーションである。

 「これを使うことでイベント管理が楽になることと、読み込み中のページも使えるようになるというベネフィットが得られる。しかしdomredyやonloadなどのイベントで設定すると、後者のベネフィットがなくなるので注意が必要だ」とキンヌネン氏。

3Dアクセラレーション

 第二にCSSの3Dアクセラレーションを使う方法も有効だ。「正しく使うと確かにアプリはスムーズに動くようになるが、使いすぎている場合が多い」と指摘する。どのくらい遅くなるのか、3Dなしと3D付きのスマホ画面を並べたシミュレーション動画を披露した。無駄に3Dアクセラレーションを使うと表示スピードが遅くなるだけでなく、デバイスによってはスクロールも遅くなるという。特に問題になるのが、コメントページなどJavaScriptで全ページを作っているようなケースだ。

 「コミュニティアプリで3Dアクセラレーションを使いたい場合は、エレメンツの数に気をつけること。ゲームの場合は問題なく使えると思う。ただしAndroidのデフォルトブラウザは3Dに弱いので、きちんとテストすべきだ」(キンヌネン氏)

レスポンシブ・タッチの考慮

 第三はレスポンシブ・タッチを考慮することだ。キンヌネン氏は、touchendと比べてクリックがどれだけ遅いかを示したグラフや検証動画を紹介。

 「クリックはtouchendより約300ms遅かった。だからといって、いつもtouchendを使うというのは問題がある。それはスクロール時の動きやズームのときに問題が出るからだ」

 最後にキンヌネン氏は「githubでパッチを公開している。3月はリリース祭りとなる予定なので、ぜひフォローしてほしい」と語り、前半のセッションを終えた。

Octaneベンチマークを実施。iOSではWebViewを埋め込んだ
ネイティブアプリのパフォーマンスが落ちるという結果に。
Octaneベンチマークを実施。iOSではWebViewを埋め込んだネイティブアプリのパフォーマンスが落ちるという結果に。

次のページ
3Dゲームの実現はAndroid4.2から実装されるWebGLに期待!?

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
【デブサミ2013】セッションレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7042 2013/03/22 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング