以下の内容はhttps://ozaki25.hatenadiary.jp/entry/2018/05/31/220000より取得しました。
Cache 自由自在
PWAの動作
キャッシュをどう使うか
- なぜキャッシュ
- 考慮点
- 3パターン
- cache first
- network first
- no cache
CacheAPI
- API
- match/matchAll
- add/addAll
- put
- delete
- keys
- 有効期限はない
- 適用例
- SPA
- AppShellとそれ以外が分かれてシンプルな設計
- 従来型SSR
キャッシュの削除
- Activate時に削除する
- 更新タイミング
- SWはオンライン時に同期次回起動時に更新されたものが動作
- Cacheは明示的に更新するかSWのActivate時に削除しないとだめ
- 対策
- IndexedDBにタイムスタンプとURL記録
- Workboxのexpiration.Plugin
PWA Builder
Workbox
- google製
- オフラインサポートのためのライブラリ
- ライブラリのjsを読み込むようにする
- キャッシュするURLを正規表現とかで指定できる
- プラグインもいろいろ
総称
- 2つを組み合わせると便利
- PWA builderで原型つくる
- Workboxで細かいところを
PWAとは
- 2015/11のChrome Dev Summit
- クライアントの性能に合わせた機能
- これまでWebになかった機能
- オフライン
- プッシュ通知
- バックグラウンド所為r
- アイコンの追加
- これらは新しいAPIが追加された
- Webのメリット
PWAのメリット
- ServiceWorker
- バックグラウンドで動作するプログラミング可能なネットワークプロキシ
- 既存のWebページに後付でもいける
- 何をキャッシュ
- AppShell
- UIが機能するために必要最小限のリソース
- 要件にあったアセット
- モバイルの場合ストレージ圧迫してしまうから注意
- SWの更新
- 開発中にキャッシュしちゃうと反映されなくて面倒なので注意
PWA位置づけ
- Nativeを置き換えるものではない
- 今までWebViewで十分だったってものならはまるかも
まとめ
- ServiceWorker
- Web App Manifest
- 各種API
PWA化するときのUIとスコープの設計について
PWA対応してみた知見の話
- 多言語対応
- 言語ごとにディレクトリ切ってそこをルートにSW配置
- 一部分だけ多く使われるサイト
- インストールされて使われてる場合は〜とか場合分けすると大変
- start_urlのクエリを見て〜って感じで頑張る
- エンゲージメント
- 初回アクセスのユーザとリピータは使い方が違う
- それを考えた上でstart_urlを決める
- SPAでないとページにアクセスしないとキャッシュできない
- オフラインのときはオフラインであることが分かるような画面を出してあげる
- キャッシュしておいたコンテンツで誤解を与えたりしてしまわないように
- OS差の対応
- ホームアイコン
- スプラッシュはAndroidだけ
- ローディングアニメーション
- スプラッシュのあとにローディング画面出すものとか
- アプリあがりますよってのを2回出してるみたいになる
- iOSでのブラウザバック
- Basic認証
重要だと思ったこと
- 誰向けのPWAなのか
- エンゲージ指数が閾値を超えたユーザへのおもてなし
- 有益な体験とは何なのか考えて
- 初回ユーザ向けではないのでは?
使い所
注意点
以上の内容はhttps://ozaki25.hatenadiary.jp/entry/2018/05/31/220000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます
不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14