Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Podcast over PWA #pwanight 2020/02/01 Jxck
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
WIP: Podcast を PWA できるか? 3
Slide 4
Slide 4 text
Podcast とは 4 RSS を購読する RSS を更新 リンクされた 音声ファイルを取得 音声ファイルを配布 実態は音声リンク付き RSS
Slide 5
Slide 5 text
音声再生と Range リクエスト 5
Slide 6
Slide 6 text
Service Worker と Range ヘッダがある レスポンスになってる 6
Slide 7
Slide 7 text
7 タグからのリクエスト 途中からリクエスト 途中からレスポンス
Slide 8
Slide 8 text
8 Service Worker を通すと が消されてる 全部リクエスト 全部レスポンス
Slide 9
Slide 9 text
なんだバグか、、ではない 9 そもそも Range はブラウザでどう扱うか ちゃんと決まってないところがある Service Worker での onfetch とかを 考える上では、仕様から考えないと -- https://jakearchibald.com/2018/i-discovered-a-browser-bug/
Slide 10
Slide 10 text
従来の Cache 戦略じゃ無理 ● Range リクエストできない ○ 全部取得できればキャッシュできるが ○ 長いのは途中で切れる、でも途中からはとれない ● Range リクエストできても ○ 複数のレスポンスの結合も必要あ ○ 歯抜けは?オフラインで止まる? ● アプリみたいにダウンロードできれば。。 10
Slide 11
Slide 11 text
background fetch ● 裏でダウンロードする ● ブラウザを閉じても継続 ● 終わったら Cache に入れとける ● Podcast っぽい!! 11
Slide 12
Slide 12 text
12 DEMO: https://youtu.be/S2JXt2oxvv4
Slide 13
Slide 13 text
13 話さなかったこと ● Periodic-Background-Sync ○ RSS を定期的に同期 ● Content Index API ○ キャッシュしたエピソードの表示 ● MediaSession API ○ ロック画面などで音声を操作 ● etc, etc, etc 徐々に Podcast が実現できるように
Slide 14
Slide 14 text
Jack