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

Google AMPとPWAをさらっと紹介

Avatar for NAKANO Hideo NAKANO Hideo
September 16, 2016

Google AMPとPWAをさらっと紹介

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

Avatar for NAKANO Hideo

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がギャップを埋める