Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PWAを活用している_ガジェットアプリの話.pdf
Search
anozon
October 25, 2021
Programming
0
21
PWAを活用している_ガジェットアプリの話.pdf
anozon
October 25, 2021
Tweet
Share
More Decks by anozon
See All by anozon
VSVimの間合いですよ
anozon
0
100
埼玉県の描き方.pdf
anozon
0
34
Other Decks in Programming
See All in Programming
Swift Updates - Learn Languages 2025
koher
2
490
Updates on MLS on Ruby (and maybe more)
sylph01
1
180
MCPでVibe Working。そして、結局はContext Eng(略)/ Working with Vibe on MCP And Context Eng
rkaga
5
2.3k
ファインディ株式会社におけるMCP活用とサービス開発
starfish719
0
1.9k
スケールする組織の実現に向けた インナーソース育成術 - ISGT2025
teamlab
PRO
1
130
testingを眺める
matumoto
1
140
詳解!defer panic recover のしくみ / Understanding defer, panic, and recover
convto
0
250
rage against annotate_predecessor
junk0612
0
170
OSS開発者という働き方
andpad
5
1.7k
より安全で効率的な Go コードへ: Protocol Buffers Opaque API の導入
shwatanap
2
360
さようなら Date。 ようこそTemporal! 3年間先行利用して得られた知見の共有
8beeeaaat
3
1.5k
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
450
Featured
See All Featured
Six Lessons from altMBA
skipperchong
28
4k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
13k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.6k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Producing Creativity
orderedlist
PRO
347
40k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
How to train your dragon (web standard)
notwaldorf
96
6.2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Thoughts on Productivity
jonyablonski
70
4.8k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Transcript
PWAを活用している ガジェットアプリの話 あのぞん(えるざっぷ)
About me @anozon あのぞん🌏.tsx (@anozon) elzup (elzup) · GitHub 株式会社プランクユニッツ
PWA初心者 React,TypeScript Firebase, hooks で Redux 離れが進んでる
こんなアプリを作っています Mitelop ガジェットツール集 タイマー/Todoリスト /編集点/みどころ記録 プログラミング配信で使えそうなもの 自分でツールとしてほしいもの Web URL: https://mitelop.anozon.me/
GitHub: elzup/mitelop https://github.com/elzup/mitelop
こんなアプリを作っています Mitelop 使っている技術 TypeScript, React Next.js (極力SSG) styled-components 好き Material
UI (そろそろ外せそう) Netlify
かっこいいロゴ作れたと思ったら.. ダークモードで微妙だった デザイン難しい。。。
Mitelop と PWA関連の話 (PCブラウザがメイン) theme-color とフレームの色 (デモ) PWA モードのときだけ挙動や見た目を変える PWA
のローカルでバッグ
theme-color とフレームの色
ちょっとでもコンパクトなガジェットにしたい ブラウザアプリだとヘッダー (フレームの範囲)が多い → このくらいフラットにできた 子ウィンドウ PWA PWA theme色背景色統一 theme-color
とフレームの色
<meta name=”theme-color” /> を変更すると リアルタイムに変わる https://mitelop.anozon.me/color theme-color とフレームの色
これ以上はネイティブじゃないとできなさそう - 長方形以外 - フレームの丸み - ひし形 - 透過ウィンドウ などなどできたら嬉しいので期待
theme-color とフレームの色
PWA モードのときだけ 挙動や見た目を変える
PWAで起動してるときは見た目を変えたい 例: ヘッダーを削除したい PWA モードのときだけ挙動や見た目を変える
CSSはメディアクエリで簡単 @media (display-mode: standalone) を使う PWA モードのときだけ挙動や見た目を変える
CSSはメディアクエリで簡単 PWA モードのときだけ挙動や見た目を変える スッキリ
JSで値を取りたい場合は? PWA モードのときだけ挙動や見た目を変える window.matchMediaが使えます window.matchMedia('(display-mode: standalone)').matches
JSで値を取りたい場合は window.matchMedia('(display-mode: standalone)').matches PWA モードのときだけ挙動や見た目を変える
JSで値を取りたい場合は window.matchMedia('(display-mode: standalone)').matches PWA モードのときだけ挙動や見た目を変える
react-hooks 化した PWA モードのときだけ挙動や見た目を変える const mql = window.matchMedia('(display-mode: standalone)') mql.addEventListener('change',
listener) で変更イベントの検知ができる → useIsStandalone (useIsPwaMode) hooks を作ってみた
react-hooks 化した PWA モードのときだけ挙動や見た目を変える () =>
react-hooks 化したが・・・ PWA モードのときだけ挙動や見た目を変える ここで気づく mediaQuery (今回は ‘display-mode: standalone’) は引数にして汎用的になるん
じゃね? → シンプルだし便利だから既にあるんじゃね? →
react-hooks 化したが・・・ PWA モードのときだけ挙動や見た目を変える ここで気づく mediaQuery (今回は ‘display-mode: standalone’) は引数にして汎用的になるん
じゃね? → シンプルだし便利だから既にあるんじゃね? → ありました react-use https://github.com/streamich/react-use/blob/master/docs/useMedia.md
react-use useMediaのコード 大筋は同じ実装だったが mounted 変数の意味は謎
react-hooks 化したが・・・ PWA モードのときだけ挙動や見た目を変える ということでこんなにシンプルに使えます
PWA のローカルでバッグ (もはや PWA 初心者がどうやってやったのかの話 )
PWA化 は https が要件の1つ PWA のローカルでバッグ ローカルで https を使いたいと気に使っているサービス ngrok
https://ngrok.com/
ngrok で PWA ローカルデバッグしてみた ちゃんとインストールできる PWA のローカルでバッグ
ホワイトアウト問題に悩まされる • 別のプロダクトでホワイトアウトに悩んでる • キャッシュのテンプレ設定しかしていない • 古い js を参照しにいってしまう •
↓正しいパターン? a. 更新ボタンで unregister し新しいのを参照させる b. 常に更新する • next-pwa を使っている • use-service-worker • https://github.com/JCofman/react-hook-use-service-worker
About me @anozon https://twitter.com/anozon https://github.com/elzup PWA初心者 React,TypeScript