WebでアプリなPWA、実際に本気でプロダクトを作ってみて見つけた悩み処
- ShoheiKoyama
PWAの特徴
- 審査通す必要ない!
実際に作る時に考えないといけない視点
- ユーザにどうやってPWA化してもらうか(->ホーム画面に追加してもらうかということ?)
- ホーム画面への追加の手順を載せる
- イケてない
- 何も言わななくてもいいものなら追加してもらえるんじゃないか?
- ホーム画面への追加の手順を載せる
- ホーム画面に追加した後のアップデートどうするか
- Web -> PWAとNative -> PWA
- WebとNativeでUXが違う
- 結局何を目的にするか、普遍的な価値は何か
- Nativeでいいんじゃね?とか普通のWebページでいいんじゃねってなってしまわないように
PWAを簡単に使える方法!!
- daisu_yamazaki
- ジーズアカデミー主席講師
PWA
- WebAppManifest
- ServiceWorker
PWA化
- 最初っからPWA化することを意識しないと苦労する
- 既存サイトでも簡単にPWA化できますってよくきくけどそんなことない??
WebAppManifest
- ChromeのDevツール->Applicationで内容確認できる
- ここに出てこなかったらちゃんと読み込めてないということ
ServiceWorker
- ServiceWorkerはブラウザとは別のメモリで動く
- キャッシュするファイルは読み込み失敗するとそこで落ちる
- 絶対キャッシュしたいものとおちるかもしれないものを分けておくといいかもしれない
- https://github.com/craigbuckler/pwa-retrofit
HNPWAの紹介
HNPWA
- https://hnpwa.com/
- HackerNewsリーダーをPWAで作ったもの
- Reactとかいろんな実装がある
- TodoMVCの後継者
HNPWAの仕様
- リーダーとして使い物になるように条件がある
- 各ページにURLがふられてるとか
- lighthouseで一定以上のスコア出すとか
- AppShellを使うこと
- レスポンシブであること
- オプション条件
- オフライン
- SSR
注意事項
- FWの性能比較に使ってはいけない
- 仕様がルーズ
- サーバは実装者自前
- 自分の使ってるFWでどうPWAを作れるかの参考にすると良い
ServiceWorker on Rails
- ykyk1218
ServiceWorker + Rails
- serviceWorker-railsっていうgemがある
- ServiceWorkerは自分のは以下のファイルしかアクセスできない
- jsフォルダ配下におけない
- それを解決するgem
Webpackとrails
- rails5からJSはWebpackで管理するようになった
DOM操作とServiceworker
- postMessageでServiceworkerにメッセージを送れる
PWAで嫁に怒られなくなった話
- Morix
- 株式会社アンダースターズ
- https://speakerdeck.com/morix1500/pwawoshi-tutarajia-ninu-rarenakunatutahua
ゴミの種類を教えるアプリ
- firebase
- lambdaでもよかったけどhttpフックできなかった
- vue
- cron.org
- ServiceWorkerからLocalStorageを参照できない
- indexedDB使った