React Kyoto v0.2.0 https://react-kyoto.connpass.com/event/61986/ でLTしました Github Pages https://shisama.github.io/slides/assets/20170801-react-kyoto/slide.html#/
React+PWAReact Kyoto v0.2.0 (2017/08/01)平野昌士 / @shisama
View Slide
自己紹介{"about": {"name": "Masashi Hirano","works": "Weblio, Inc.","twitter": "@shisama_","github": "shisama"}}
スライドは公開しますhttps://speakerdeck.com/masashi
AgendaPWAとは?PWAに必要なものは?React+PWAを試すには?
PWAとは?
ネイティブアプリの機能をモバイルのWebでも実現するためのもの
PWAでできること通信量の削減ネイティブアプリのような使用感ネイティブアプリのようなUIpush通知・通知バーに表示オフライン対応Webなのでアプリの審査が無いWebなのでユーザーによるアップデート不要
Twitter Lite is PWA
Twitter Lite is PWAReact, Redux, Node.jsなどを利用
PWAのブラウザ対応状況Chrome ‒> Desktop, Androidで利用可能Chromium派生(Operaなど) ‒> Chromeと同じく利用可能Firefox ‒> Web App Manifestの機能以外は利用可能Safari ‒> 未対応。Service Workerが動かないEdge ‒> 対応予定IE ‒> 当然未対応です
PWAに必要なものは?
PWAに必要なものApp ShellWeb App ManifestService Worker
App Shell通信量の削減ネイティブアプリのような使用感ネイティブアプリのようなUIpush通知・通知バーに表示オフライン対応Webなのでアプリの審査が無いWebなのでユーザーがアップデートを行わなくてもアプリは常に最新
App Shellアプリの骨格になる最低限のHTMLとCSSそのHTMLとCSSをキャッシュすることで通信量を削減、読み込み速度の向上
App Shell
Web App Manifest通信量の削減ネイティブアプリのような使用感ネイティブアプリのようなUIpush通知・通知バーに表示オフライン対応Webなのでアプリの審査が無いWebなのでユーザーがアップデートを行わなくてもアプリは常に最新
Web App Manifest
Web App Manifestに必要なものmanifest.jsonを作成manifest.jsonをhtmlで読み込む
Service Worker通信量の削減ネイティブアプリのような使用感ネイティブアプリのようなUIpush通知・通知バーに表示オフライン対応Webなのでアプリの審査が無いWebなのでユーザーがアップデートを行わなくてもアプリは常に最新
Service Worker
Service Workerに必要なものキャッシュ処理などを行うJSファイルそのJSファイルをService Workerに登録する処理
3つの要素は段階的に導入できますProgressiveには「段階的に前進する」という意味があります
React+PWAを試すには?
React+PWAを簡単に試すことができます
Google I/O 2017でこんな発表がありました
create‒react‒appでPWAデフォルトでPWAになっているjeffposnick/create‒react‒pwaを取り込んだNODE̲ENV=productionのみServiceWorkerが動くので、どこかにホスティングして動作確認してくださいやってみた
開発者ツールでService Workerが動いてることを確認
やってみたこと(導入~デプロイ)$ npm install -g create-react-app$ create-react-app react-pwa-app$ cd react-pwa-app$ npm install && npm run build$ git add . && git commit -m "initial commit"$ npm install -g gh-pages$ gh-pages -d build
create‒react‒app内部でやっていることnpm run buildするとmanifest.jsonとService Worker内で動くJSファイルを自動生成その自動生成されたJSファイルをServiceWorkerに登録する関数をindex.js内で呼び出している
他にもReact+PWAを簡単に試せますpaulhoughton/react‒pwa (シンプル)paulhoughton/preact‒pwa (react‒pwaのpreact版)localnerve/react‒pwa‒reference (リッチ)choumx/amp‒pwa (AMP入り)insin/react‒hn (Hacker News読めるやつ)
まとめPWAはWebの可能性を広げるものPWAは段階的に導入できますReact+PWAを試すのは簡単
参考・・・・・・はじめてのプログレッシブ ウェブアプリ脱ネイティブ!Googleが推進する「PWA」にたった数時間で対応する方法サンプルコードで学ぶPWAGetting Started with Progressive Web AppsProduction Progressive Web Apps With JavaScript Frameworks(Google I/O '17)How we built Twitter Lite
最後に宣伝大阪でWebRTC Meetupが初開催されます!
ご清聴ありがとうございました