SlideShare a Scribd company logo
スマートフォンにおける
     実装の最先端
HTML5実装の最先端



17-A-3               紀平 拓男
                     株式会社ディー・エヌ・エー
                     CTO室


      Developers Summit 2012
自己紹介

 紀平 拓男
  DeNA CTO室 所属
  @tkihira http://nmi.jp/

   会社を2つ設立した、シリアルアントレプレナー
   HTML5によるFlash Player『ExGame』を製作
   「インストール」が大嫌い


             Developers Summit 2012
今回の話題はスマートフォンに限ります
 PCブラウザに関する話は一切しません。


現在出来ることについて話します
 将来こうなるかもしれない、ということは
 別途その旨はっきりとお伝えします。




       Developers Summit 2012
とは?
     とは
HTML5とは

 HTML + JavaScript
 今までに比べて豊富なAPI
  ドット単位の描画が可能なCanvas
  ベクターグラフィックスを扱えるSVG
  アニメーションなど豊富な表現力を持つCSS3
  クライアントにデータを保存出来るlocalStorage
  etc…


         Developers Summit 2012
描画能力の向上

 曲線のある図形を描画することが出来るよ
 うになった

 アニメーション能力も非常に高くなっている

HTML5でFlash並のアニメーションが達成可
能に

        Developers Summit 2012
Developers Summit 2012
アプリ機能の拡充
Webアプリ機能の拡充

 ApplicationCache機能
  一度アクセスすれば、二度目からはキャッシュ
  を利用することが可能


 localStorage機能
  スマートフォン端末の中に、アプリケーション特
  有のデータを保存することが可能


           Developers Summit 2012
iPhone専用
http://nmi.jp/ds/
    Developers Summit 2012
しかしアプリには敵わない

 アプリにくらべて劣っている点
  3D
  音楽
  速度




       Developers Summit 2012
と音楽
3Dと音楽

 OpenGLが使えない
  WebGLはFirefox for mobileのみサポート
 音楽に制限が多い
  音のタイミング調整が非常にシビア
  iPhoneは、画面がタッチされたタイミングでのみ
  音楽の再生が可能
  WindowsPhoneとiPhoneは、同時に2つの音
  源を鳴らせない

           Developers Summit 2012
速度

 HTML5の実行速度は、遅い

  描画が遅い
  JavaScriptの実行が遅い




          Developers Summit 2012
描画手段

 HTML5の描画手段
  Canvas: ラスターグラフィックス
  SVG: ベクターグラフィックス
  CSS3: 変形やアニメーション


 SVGはAndroid 2系列でサポート外
  うまくやればCanvasで代用可能


         Developers Summit 2012
Canvas

  Android > iPhone
  iOS4
    drawImageが遅い、いかに回数を減らすか
      キャッシュに綺麗に乗せたら勝ち
    DOM構造でCanvasの上に物をのせない
  iOS5: GPU support!

 じゃじゃ馬 使いこなせば優秀だがそれまでが大変
             Developers Summit 2012
CSS3

悪女 とっつきやすいが、いきなり裏切る

 基本的にGPUサポート
 同時に動く物体数が増えると急激に重くなる
 特にAndroidで、ブラウザバージョン間、端
 末間の互換性がないことが多い
  変形に関してはある程度互換性が期待できる
  アニメーションに関しては、、、
        Developers Summit 2012
メリット・デメリット

 Canvasが効力を発揮するのは
  シチュエーションに応じて変わるアニメーション
  同時に動くものが多い時


 CSS3が効力を発揮するのは
  1枚もののアニメーション
  同時に動くものが少ない時


        Developers Summit 2012
JavaScript Engine

  JavaScriptが重い理由
   アルゴリズムが重い
   JITが重い
   GCが重い


 JITが重い=eval、クロージャの生成を疑う



          Developers Summit 2012
Garbage Collection

  AndroidにおいてFull GCが走ることがある
   走るとシャレにならないほど止まる


  V8は世代別GCを利用している
   なるべく新世代にいるうちに参照を切る


  iOSは、メモリが足らなくなると落ちる

          Developers Summit 2012
メモリとの戦い:王道編
メモリとの戦い:王道編

 何度も使うメモリをあらかじめ確保する
  頻繁に使う画像は、最初に全部ロードしておく


 上限の決まっているオブジェクトは、初期化
 時に上限まで確保しておく
  オブジェクトの生成の回数を減らす



       Developers Summit 2012
メモリとの戦い:邪道編
メモリとの戦い:邪道編
    の戦い:邪道

 何とか実機上でのメモリ使用量を確認する
  どの部分がどれだけメモリを消費するか



注意:iPhone Simulatorは信用できない
   UIWebViewも信用できない



          Developers Summit 2012
実機でのプロファイル

 ExGameなどでは自作プロファイルを使用
  関数単位で count, total, self を取得
  どの関数のプロファイルを取るかを指定
   CanvasなどのビルトインAPIも指定可能
  プロファイルのタイミングを設定可能
   最初から、もしくは二本指タッチで開始・終了など
  結果をサーバに送信



           Developers Summit 2012
実機でのデバッグ

 JsConsole
   http://jsconsole.com/
   nmi.jpでも紹介しています


 console.log
   iPhoneでも設定を操作すれば参照可能
   console.error hack


               Developers Summit 2012
ngCore on HTML5




        Developers Summit 2012
の将来
HTML5の将来

 インストールソフトの時代は終わる
  歴史はくりかえす



 将来あるべき姿はどのようなものか
  10年後に通用するエンジニアであるために



       Developers Summit 2012
御清聴ありがとうございました。

     紀平 拓男
     @tkihira
    http://nmi.jp/



     Developers Summit 2012

More Related Content

What's hot (20)

PDF
2014年くらいにやる Adobe AIR スマフォゲーム開発
Tatsuya Koyama
 
PDF
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
Kazuaki Hidaka
 
PDF
2016/11/21 社内LT Android TV
Jun Hosokawa
 
PDF
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
一希 大田
 
PDF
BlackJack
yanoojapan
 
PPTX
PhoneGapユーザー会@大阪 講演資料
Monaca
 
PPTX
NfC ckaiki
一佳 海木
 
ODP
Unity ネイティブプラグインの作成について
Tatsuhiko Yamamura
 
PPTX
HTML5/JavaScriptで作るAndroidアプリ開発seminar
kujirahand kujira
 
PDF
クリスマス直前! HTML5 で作る♥ はじめての iOS & Android アプリ開発
Osamu Monoe
 
PDF
Developers Summit 2013【14-E-3】Windows 8デザインガイド
Yuya Yamaki
 
PDF
あるゲームアプリケーションの構成とアップデートサイクル
Kentaro Iizuka
 
PDF
Windowsフォームで大丈夫か?一番良いのを頼む。
Yuya Yamaki
 
PDF
AndroidStudioのインストールをゼロからしてみる
Shigeo Ueda
 
PDF
Unity sdk-plugin
Elias Hasnat
 
PDF
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
Shinichi Tomita
 
PDF
無償でここまで使えるアドビのWeb制作ツール for デブサミ2013
Keisuke Todoroki
 
PDF
「フォームアニメーションで満足度向上!モバイルアプリ改善術」
Embarcadero Technologies
 
PDF
デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革
Yuya Yamaki
 
2014年くらいにやる Adobe AIR スマフォゲーム開発
Tatsuya Koyama
 
ネイティブとHTML5を スマートに連携させる設計と 実装のノウハウについて
Kazuaki Hidaka
 
2016/11/21 社内LT Android TV
Jun Hosokawa
 
Windows 10 対応のデスクトップアプリを 作る技術(事前公開版)
一希 大田
 
BlackJack
yanoojapan
 
PhoneGapユーザー会@大阪 講演資料
Monaca
 
NfC ckaiki
一佳 海木
 
Unity ネイティブプラグインの作成について
Tatsuhiko Yamamura
 
HTML5/JavaScriptで作るAndroidアプリ開発seminar
kujirahand kujira
 
クリスマス直前! HTML5 で作る♥ はじめての iOS & Android アプリ開発
Osamu Monoe
 
Developers Summit 2013【14-E-3】Windows 8デザインガイド
Yuya Yamaki
 
あるゲームアプリケーションの構成とアップデートサイクル
Kentaro Iizuka
 
Windowsフォームで大丈夫か?一番良いのを頼む。
Yuya Yamaki
 
AndroidStudioのインストールをゼロからしてみる
Shigeo Ueda
 
Unity sdk-plugin
Elias Hasnat
 
モバイルHTML5サイトでの写真アップロードの最適化と業務アプリへの適用
Shinichi Tomita
 
無償でここまで使えるアドビのWeb制作ツール for デブサミ2013
Keisuke Todoroki
 
「フォームアニメーションで満足度向上!モバイルアプリ改善術」
Embarcadero Technologies
 
デスクトップアプリ開発者が押さえておくべきWindows 8 時代の変革
Yuya Yamaki
 

Viewers also liked (6)

PPT
Social Web Japan from goo
Tomoya Hashimoto
 
PDF
Scrum changes an organization
Takeshi Kaise
 
PDF
HBase at Ameba
Toshihiro Suzuki
 
PDF
デブサミ関西2012[A-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
Yusuke Suzuki
 
PDF
大規模BIクラウドWebサービスの裏側
Mitch Okamoto
 
PDF
【17-A-2】 10年後も通用する開発環境の秘訣 <デブサミ2012>
智治 長沢
 
Social Web Japan from goo
Tomoya Hashimoto
 
Scrum changes an organization
Takeshi Kaise
 
HBase at Ameba
Toshihiro Suzuki
 
デブサミ関西2012[A-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
Yusuke Suzuki
 
大規模BIクラウドWebサービスの裏側
Mitch Okamoto
 
【17-A-2】 10年後も通用する開発環境の秘訣 <デブサミ2012>
智治 長沢
 
Ad

Similar to The forefront of html5 implementation (20)

PDF
HTML5@iPhoneゲーム開発
h_kishi
 
KEY
HTML5でスマートフォン開発の理想と現実
Takumi Ohashi
 
PDF
Devsumi2013 gunta 2_pdf
Gunther Brunner
 
PDF
iPhoneとAndroidのアプリ開発最新潮流
Rakuten Group, Inc.
 
PDF
devsumi17 d-2
dikehara
 
PDF
Devsumi 17 d-2
Daizen Ikehara
 
PDF
Web os最新動向20130209
Akira Sasaki
 
PDF
Firefox OS - Blaze Your Own Path
dynamis
 
PPTX
スマートフォンの方式検討に関する基礎知識
Yugo Yamamoto
 
PDF
スマホ開発でも活きたこと、まだ活かせていないこと 170325 1043
Takashi Hirayama
 
PDF
The return of Mobile5 #mobile5
Yusuke Hirano
 
PDF
モバイルWebアプリのこれまでとこれから
dsuke Takaoka
 
PDF
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
Kazuho Oku
 
PDF
HTML5 ゲームフレームワーク開発について
Drecom Co., Ltd.
 
PDF
20110824 android apps_tanaka
一般社団法人メディア事業開発会議
 
PDF
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
Osamu Shimoda
 
PDF
Kddi mugen lab
Kazuya Hiruma
 
PDF
Arctic.js開発者から見るFlasherの未来
chikathreesix
 
PDF
Aiming study#6pdf
Koutaro Chikuba
 
KEY
1.29.user,user,user
Tonny Xu
 
HTML5@iPhoneゲーム開発
h_kishi
 
HTML5でスマートフォン開発の理想と現実
Takumi Ohashi
 
Devsumi2013 gunta 2_pdf
Gunther Brunner
 
iPhoneとAndroidのアプリ開発最新潮流
Rakuten Group, Inc.
 
devsumi17 d-2
dikehara
 
Devsumi 17 d-2
Daizen Ikehara
 
Web os最新動向20130209
Akira Sasaki
 
Firefox OS - Blaze Your Own Path
dynamis
 
スマートフォンの方式検討に関する基礎知識
Yugo Yamamoto
 
スマホ開発でも活きたこと、まだ活かせていないこと 170325 1043
Takashi Hirayama
 
The return of Mobile5 #mobile5
Yusuke Hirano
 
モバイルWebアプリのこれまでとこれから
dsuke Takaoka
 
ウェブブラウザの時代は終わるのか 〜スマホアプリとHTML5の未来〜
Kazuho Oku
 
HTML5 ゲームフレームワーク開発について
Drecom Co., Ltd.
 
第3回企業Webシステム開発セミナー「業務システムにHTML5を上手に取り入れるためには?」
Osamu Shimoda
 
Kddi mugen lab
Kazuya Hiruma
 
Arctic.js開発者から見るFlasherの未来
chikathreesix
 
Aiming study#6pdf
Koutaro Chikuba
 
1.29.user,user,user
Tonny Xu
 
Ad

The forefront of html5 implementation