Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Google AMPとPWAをさらっと紹介

NAKANO Hideo
September 16, 2016

Google AMPとPWAをさらっと紹介

2016年9月13日ウェブチップ社内勉強会資料です。

NAKANO Hideo

September 16, 2016
Tweet

More Decks by NAKANO Hideo

Other Decks in Programming

Transcript

  1. Google AMPとは • Accelerated Mobile Pageの略 • AMP dramatically improves

    the performances of mobile site on the web • ホームページ: https://www.ampproject.org/ • 静的コンテンツを⾼速でレンダリング • AMP HTML • 幾つかの専⽤タグ • AMP JS • 唯⼀使⽤可能なJavaScriptライブラリ。 • JQueryは使⽤できない(使⽤する⽅法がないこともない) • Google AMP Cache • Google社が提供するCDN • HTTP 2.0を使⽤ 2016/9/16 2
  2. 広義の意味では(個⼈的な解釈) • Webページを⾼速に表⽰するためのベストプラクティスを集めたもの • ベストプラクティス: • https://www.ampproject.org/ja/docs/get_started/technical_overview.html • ⾮同期スクリプトのみ使⽤を許可する •

    すべてのリソースサイズを静的に決定する • 拡張機能によるレンダリング ブロックを回避する • サードパーティの JavaScript をすべてクリティカル パス から外す • CSS はすべてインライン スタイルにしてサイズを固定する • フォントのトリガーを効率化する • できるだけスタイルを再計算しない • GPU アクセラレーションが有効なアニメーションのみ実⾏する • リソースの読み込みに優先順位をつける • ページを瞬時に読み込む • AMP の⾼速化に貢献する 2016/9/16 3
  3. 2016/9/16 5 AMP HTML <!doctype html> <html ⚡ lang="en"> <head>

    <meta charset="utf-8"> <title>Hello, AMPs</title> <link rel="canonical" href="http://example.ampproject.org/article-metadata.html" /> <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"> <style amp-boilerplate>body{-webkit-animation:-amp-start 8s... <style amp-custom> /* any custom style goes here */ body { background-color: white; } amp-img { background-color: gray; border: 1px solid black; } </style> <script async src="https://cdn.ampproject.org/v0.js"></script> </head> <body> <amp-img src="welcome.jpg" alt="Welcome" height="400" width="800"></amp-img> <h1>Welcome to the mobile web</h1> </body> </html> ⬅なんと絵⽂字 ⬅CSS Initに似たboilerplate ⬅独⾃のスタイルはHTML内にインラインで書く ⬅画像専⽤タグ
  4. 性能 ैདྷ ".1 1回⽬ 2770 ms ‒ DOM: 642 ms,

    Load 2240 ms 736 ms ‒ DOM: 255 ms, Load 677 ms 2回⽬ 2820 ms ‒ DOM: 629 ms, Load 2310 ms 666 ms ‒ DOM: 249 ms, Load 623 ms 3回⽬ 2580 ms ‒ DOM: 609 ms, Load 2090 ms 730 ms ‒ DOM: 265 ms, Load 706 ms 平均 2723 ms ‒ DOM: 627 ms, Load 2213 ms 711 ms ‒ DOM: 256 ms, Load 669 ms 2016/9/16 8
  5. ネット環境 • シェア • Androidのシェアが80%を超えている • そのほとんどはAndroid 1や2。 • iPhoneは⾼くて買えない。

    • 回線が遅い • 2Gを使っている。 • 回線が⾼い • プリペイド式で、毎⽉500MBをチャージするような使い⽅。 • 機内モードにすぐ切り替えるらしい。 • こんな中、ちょっと試したいだけのアプリ( 50MB)をダウンロードするか? • アプリをアップデートするか? 2016/9/16 14 Google IO Extend 報告会 in 神⼭より
  6. 特⻑ • Instant Loading ‒ 即時読み込み • どんなネットワークを使っていようともほぼ即時読み込み。 • Add

    to Home Screen ‒ ホーム統合 • ホーム画⾯に追加できて、アプリのように振る舞う • Push Notifications ‒ プッシュ通知 • エンゲージメントの強化 • Fast - 速い • なめらかなアニメーション / スクロール / ナビゲーション • Secure ‒ 安全 • https • Responsive ‒ レスポンシブ • モバイルフォン、タブレット、ラップトップ 2016/9/16 18
  7. ネイティブアプリ vs ウェブアプリ ωΠςΟϒΞϓϦ • 操作性が良い・速い • デバイスの機能を100%使える • エンゲージメントが⾼い

    • オフラインでも使える ΢ΣϒΞϓϦ • ⼿軽に試せる(インストール不 要) • 常に最新(アップデート不要) • 容易なマルチデバイス展開 • 課⾦する場合の⼿数料が最低 2016/9/16 19 PWAがギャップを埋める