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
GatsbyでPWAやってみた / Tried PWA using Gatsby
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Kota Nonaka
August 29, 2018
Programming
450
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GatsbyでPWAやってみた / Tried PWA using Gatsby
2018/08/29 ゆるはち.it Vol.1 でのLT資料です。
https://yuruhachi-it.connpass.com/event/96878/
Kota Nonaka
August 29, 2018
More Decks by Kota Nonaka
See All by Kota Nonaka
このあとからできる アクセシビリティ向上 / Accessibility improvements that can be made after this
uutarou10
0
430
React Nativeと半年間戦ってわかったコト / What I learned after fighting React Native for half a year
uutarou10
1
270
TypeScript+Firebaseで作るサーバーレスアプリケーション/Create serverless app with TypeScript + Firebase
uutarou10
1
1.2k
CSS ド入門ハンズオン/CSS beginner's hands-on
uutarou10
2
92
初心者による初心者のためのKubernetesハンズオン
uutarou10
4
3.3k
Other Decks in Programming
See All in Programming
LLM Plugin for Node-REDの利用方法と開発について
404background
0
170
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.6k
Agentic UI
manfredsteyer
PRO
0
140
Why Laravel apps break—Mastering the fundamentals to keep them maintainable
kentaroutakeda
1
350
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
240
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
4.9k
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
490
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.4k
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
12k
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
190
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
230
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
530
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
480
AI: The stuff that nobody shows you
jnunemaker
PRO
8
710
Why Our Code Smells
bkeepers
PRO
340
58k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Building the Perfect Custom Keyboard
takai
2
790
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Transcript
Gatsbyで PWA やってみた 2018/08/29 ゆるはち.it Kota Nonaka (@uutarou10)
速報
けっこう酔ってきた
Gatsbyとは? • https://www.gatsbyjs.org/ • 一言で言うと静的サイトジェネレーター • Jekyll/Hugo/Hexoなどと同じジャンル w όοΫΤϯυʹ3FBDU(SBQI2-Λ࣋ͭ
None
Data sourceとして Markdown/外部API等を利用 GraphQLを用いてページ生成に 必要な情報の抽出 Reactで作成したViewで利用 Gatsby公式サイト(https://getgatsbyjs.org)より引用
ここがすごいぞGatsby • Data sourceが豊富 • eg. Markdown / YAML /
WordPress / Contentful / esa.io / etc... • React / GraphQL • 既存の知識やライブラリがそのまま使える • 吐き出されるのは静的なSPA (Single Page Application) • ページ遷移などが爆速 • デプロイも成果物をNetlify / GitHub Pagesなどへ配置するだけ
(語ると長くなりそうなので) 本題
作った https://mogam.in https://github.com/uutarou10/mogam.in
PWA化してみる • gatsby-plugin-manifest • サイトをPWAとして認識してもらうために必要なmanifestの自動生成 • アイコン画像の最適化 • gatsby-plugin-offline •
コンテンツのキャッシュを行うServiceWorkerを自動生成
/* ---------- PWA ---------- */ { resolve: `gatsby-plugin-manifest`, options: {
name: `Mogami#Log`, short_name: `Mogami#Log`, start_url: `/`, background_color: `#f7f0eb`, theme_color: `#00D1B2`, display: `minimal-ui`, icon: `src/images/icon.png`, } }, `gatsby-plugin-offline`, manifestの内容を定義 iconは解像度の大きいものを 作成することで最適な解像度の 画像をビルドプロセスで 用意してくれる 上記はgatsby-config.jsの一部抜粋です。 詳しくは先ほどのリポジトリをご覧ください…!
結果
結果 ホーム画面への追加 ポップアップが表示 manifestに指定した theme colorが反映 Android 5.1.1 / Google
Chrome 68で検証
結果 "OESPJE(PPHMF$ISPNFͰݕূ 機内モードでもページ遷移可能
とっても簡単
しかも!
None
Progressive Web App 満点!!
ところで…
PWA化のメリットは…? (ブログという観点で見ると…) • Lighthouseのスコアが上がって嬉しい(マジで) • (ユーザーがたくさんいるサイトではないので 離脱率/直帰率等への影響は不明) • 今後リファレンス的に使える情報が増えたときに 手元に置いておく用途には最適
• WebPushなどを組み合わせると離脱防止に効果があるかもしれない • ブログをPWA化するメリットはさほど大きくない…?
まとめ・感想 • Gatsbyを使ったサイトをPWA化するのは本当にかんたん • config書く時間 < アイコン作る時間 • 静的サイトをPWA化することでメリットが得られるサイトは限定的? •
ライブラリのドキュメントとか? • PWAとして使うか否かはユーザーが選べばいい/導入は一瞬 やっておいて損はない(と思う)
GatsbyでLet's PWA✌
Thanks✨