PWAって何?
by
tsukun
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
PWAって何? 株式会社ソニックガーデン 野本 司
Slide 2
Slide 2 text
Feedbacker ● 発表に対する感想と質問を投稿するウェブアプリ ● http://bit.ly/2EASrrZ
Slide 3
Slide 3 text
自己紹介 ● 野本 司(のもと つかさ) ● 兵庫県出身 ● 1年前にソニックガーデンに新卒で入社
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
自己紹介 ● 大学までがっつり文系 ● プログラミング歴:1年ちょい ● 「HTML とは」「Ruby とは」状態 ● 最近Vue.js & Firebaseを触ってる
Slide 6
Slide 6 text
PWAに興味をもったきっかけ ● 「モバイルアプリも作れるのでは?」 ● Web、Android、iOSでそれぞれコードが違うことに絶望 ● 友達から「3つ一気に作れる方法がある」と聞きPWAに興味が 湧いた
Slide 7
Slide 7 text
今日の発表のゴール ❏ PWAについてなんとなくわかってもらう ❏ PWA作ってみよう!と思ってもらう
Slide 8
Slide 8 text
今日話すこと ● PWAとは? ● PWA vs Native App ● PWA導入事例 ● 具体的に何をしたらPWAなの? ● 次のアクション
Slide 9
Slide 9 text
PWAとは?
Slide 10
Slide 10 text
PWAとは ● ネイティブアプリっぽいウェブアプリ ● 既存の技術 + PWAに合わせて出した技術の集合体 ● ウェブでサイトを訪れる→ホームに追加→PWA
Slide 11
Slide 11 text
Twitter Lite ● 「ホーム画面に追加」バナー ● Push通知 ● オフラインでも使える
Slide 12
Slide 12 text
PWAの特徴は?
Slide 13
Slide 13 text
Responsive, connectivity-independent, app-like, fresh, safe, discoverable, re-engageable, installable, linkable web experiences
Slide 14
Slide 14 text
(;´д`)ゞ
Slide 15
Slide 15 text
PWAとは ● Responsive → いろんなデバイスに対応 ● Connectivity independent → ネット環境が悪くても動く ● Applike → アプリっぽい
Slide 16
Slide 16 text
PWAとは ● Fresh → アプリ自身とコンテンツをオンライン時に更新 ● Safe → 改ざん、覗き見防止のためHTTPS経由で配信 ● Discoverable → 検索エンジンから発見
Slide 17
Slide 17 text
PWAとは ● Re-engageable → プッシュ機能 ● Installable → リンクをホーム画面に登録 ● Linkable web experience → URLでの共有
Slide 18
Slide 18 text
どんな技術を使ってるの?
Slide 19
Slide 19 text
Service Worker ● ブラウザがWeb ページとは別でバックグラウンドで実行するス クリプト ● APIとの組み合わせでキャッシュ、Push通知、バックグラウンド でデータの同期などを実現
Slide 20
Slide 20 text
App Manifest ● アプリ自身の設定ファイル ● name、short_name、start_url、display、icon等の設定 ● html内で読み込み
Slide 21
Slide 21 text
レスポンシブ ● レスポンシブ対応は必須 ● Vuetify.jsがオススメ ○ 雛形用意してくれる ○ vue init vuetifyjs/pwa my-project
Slide 22
Slide 22 text
https ● こちらも必須 ● Firebase Hostingなら無料で簡単
Slide 23
Slide 23 text
PWA vs Native App
Slide 24
Slide 24 text
PWAのメリット ● コードが一つでいい(?) ● ストア審査なし ● ユーザーからみた利用までの手順の少なさ ● 軽量
Slide 25
Slide 25 text
PWAのデメリット ● デバイスの機能が使えないものがある ○ アラーム ○ 電話帳 ○ 設定変更
Slide 26
Slide 26 text
● Chrome → 対応 ● Firefox → ほぼ対応(一部使えない機能あり) ● Safari → Service worker対応開始(通知、バナーはまだ) 対応ブラウザ
Slide 27
Slide 27 text
PWAを選べない場合? ● PWAで利用できないネイティブAPIが必要な場合 ● ユーザー登録なしでサブスクリプションを利用したい場合(スト ア決済を利用したい場合) ● アプリストアに並べることに価値がある場合
Slide 28
Slide 28 text
PWAを選べない場合? ● iOSでpush通知が必要な場合 ● サーバーを用意したくない場合(個人利用)
Slide 29
Slide 29 text
PWA導入事例
Slide 30
Slide 30 text
Twitter Lite ● 以前のウェブ版と比較して ○ セッション毎のページ閲覧が65%アップ ○ 直帰率20%向上 ○ 投稿が75%増加
Slide 31
Slide 31 text
楽天レシピ ● 1ユーザーあたりのPVが3.1倍 ● AMP to PWA ○ AMP = モバイルページの高速表示(制限あり) ○ 平均滞在時間50%向上 ○ 回遊率3倍
Slide 32
Slide 32 text
AMP to PWA 1. 検索からAMPページにユーザが訪問 2. 訪問中にバックグラウンドでService Workerインストール 3. サイト内の別ページに移動→PWA
Slide 33
Slide 33 text
楽天レシピ ● 1ユーザーあたりのPVが3.1倍 ● AMP to PWA ○ AMP = モバイルページの高速表示(制限あり) ○ 平均滞在時間50%向上 ○ 回遊率3倍
Slide 34
Slide 34 text
具体的には何をしたらいいの?
Slide 35
Slide 35 text
PWAには2段階ある ● PWAにもレベルがある ● Baseline(最低限の) ● Exemplary(模範的な)
Slide 36
Slide 36 text
Baseline ❏ HTTPSで配信されている ❏ レスポンシブ対応されている(モバイル&タブレット) ❏ オフラインでも何か表示させる
Slide 37
Slide 37 text
Baseline ❏ 「ホーム画面に追加」バナーを表示できる ❏ App Manifestでname、short_name、アイコン、start_url が登録されている ❏ Service Workerが登録されている ❏ HTTPS
Slide 38
Slide 38 text
Baseline ❏ 初回アクセス(3G環境)で10秒以内に「操作可能な状態」にな る ❏ Chrome、Edge、Firefox、Safariで動く
Slide 39
Slide 39 text
Baseline ❏ ネット環境が悪くてもページ移動がスムーズ ❏ 各ページが独立したURLをもっている
Slide 40
Slide 40 text
Lighthouse ● Webの品質スコアを出してくれる ● PWAの対応状況を自動でチェック ● Baselineのチェックリストのほとんどに対応
Slide 41
Slide 41 text
Lighthouse
Slide 42
Slide 42 text
Exemplary - Index & Social ❏ Googleにインデックス登録する ❏ Social metadata
Slide 43
Slide 43 text
Exemplary - User Experience ❏ 戻るボタン → 前回スクロールした位置に戻る ❏ inputがキーボードによって隠れない
Slide 44
Slide 44 text
Exemplary - Caching ❏ Cache-first ❏ オフラインであることを伝える
Slide 45
Slide 45 text
Exemplary - Push Notification ❏ 通知許可の際の説明 ❏ アプリ内で通知オンオフができる
Slide 46
Slide 46 text
次のアクション
Slide 47
Slide 47 text
おすすめチュートリアル ● チュートリアル(https://bit.ly/2uJTJRD) ● 「vue.js progressive web app」で検索 ● Vue.jsとFirebase使ってる
Slide 48
Slide 48 text
取り扱う項目 ● 「ホーム画面に追加」 ● オフライン対応
Slide 49
Slide 49 text
おすすめチュートリアル ● Vue CLIでプロジェクト作成 ○ vue init pwa cropchat
Slide 50
Slide 50 text
おすすめチュートリアル ● 雛形が出来上がる ○ Service Worker ○ App Manifest ● HTTPSでホストしたらバナー出せる
Slide 51
Slide 51 text
おすすめチュートリアル ● Material design light → applike ● Vuetify.js使ってプロジェクト作成
Slide 52
Slide 52 text
おすすめチュートリアル ● Firebase導入 → fresh ● オフライン対応 → connectivity... ○ App Shell ○ HTTP request ○ Firebase Stream
Slide 53
Slide 53 text
今日の発表のゴール ❏ PWAについてなんとなくわかってもらう ❏ PWA作ってみよう!と思ってもらう
Slide 54
Slide 54 text
ご静聴ありがとうございました!