Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Nuxt.jsで始めるPWA
Search
takanorip
December 21, 2017
Technology
1
5.3k
Nuxt.jsで始めるPWA
takanorip
December 21, 2017
Tweet
Share
More Decks by takanorip
See All by takanorip
デザインエンジニアの延長にデザインマネージャーとしての可能性を探る
takanorip
0
760
Tools for Design Engineers other than LLM in the LLM era
takanorip
1
570
Bulletproof Design System with TypeScript
takanorip
7
4.4k
Eleventy3.0 で始める爆速個人ブログ開発!
takanorip
0
210
Webフォント選定の極意!フォントの基本から最新トレンドまで徹底解説
takanorip
5
970
効果的な管理画面を デザインをするために 避けるべき5つの罠
takanorip
15
7.6k
社内管理画面のデザインもプロダクトデザイン
takanorip
5
2.1k
早わかり W3C Community Group
takanorip
0
530
Ubieとアクセシビリティのこれからを考える
takanorip
0
490
Other Decks in Technology
See All in Technology
Dify on AWS の選択肢
ysekiy
0
110
Datadog LLM Observabilityで実現するLLMOps実践事例 / practical-llm-observability-with-datadog
k6s4i53rx
0
180
AI 時代のデータ戦略
na0
2
500
『星の世界の地図の話: Google Sky MapをAI Agentでよみがえらせる』 - Google Developers DevFest Tokyo 2025
taniiicom
0
430
Symfony AI in Action
el_stoffel
1
180
[続・営業向け 誰でも話せるOCI セールストーク] AWSよりOCIの優位性が分からない編(2025年11月21日開催)
oracle4engineer
PRO
1
150
AS59105におけるFreeBSD EtherIPの運用と課題
x86taka
0
300
グローバルなコンパウンド戦略を支えるモジュラーモノリスとドメイン駆動設計
kawauso
3
10k
ページの可視領域を算出する方法について整理する
yamatai1212
0
100
レガシーシステム刷新における TypeSpec スキーマ駆動開発のすゝめ
tsukuha
4
840
事業状況で変化する最適解。進化し続ける開発組織とアーキテクチャ
caddi_eng
1
8.8k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
Code Review Best Practice
trishagee
72
19k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
350
Art, The Web, and Tiny UX
lynnandtonic
303
21k
For a Future-Friendly Web
brad_frost
180
10k
Embracing the Ebb and Flow
colly
88
4.9k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Transcript
/VYUKTͰ࢝ΊΔ18" 5BLBOPSJ0LJ !XFKT
ࣗݾհ w େଚلʢΦΦΩλΧϊϦ!UBLBOPSJQʣ w ϑϩϯτΤϯυΤϯδχΞ w גࣜձࣾεϚʔτυϥΠϒ w 3FBDUɺ7VFɺ1PMZNFSɺΣϒ੍࡞શൠ w
1PMZNFS+BQBO༁νʔϜ w ࠓΛৼΓฦͬͯɿ ڈ͔Βମॏ͕LH͔ͪ͘૿͑ͨͷͰےτϨ͕ΜΔ
ॳͷλΠτϧ ʮ7VFKTͰ࢝ΊΔ18"ʯ
IUUQTRJJUBDPNHZBSBTVJUFNT GFEDBFEF
None
·Δ͔ͿΓʘ ?P? ʗ
ؾΛऔΓͯ͠
/VYUKTͰ࢝ΊΔ18"
18"
18" w 1SPHSFTTJWF8FC"QQMJDBUJPOͷུ w 8FC͚ͩͲωΠςΟϒʹ͍ۙ69ΛఏڙՄೳ w ϓογϡ௨ɺΦϑϥΠϯରԠɺϗʔϜը໘ʹՃͱ͔ w ৄ͘͠(PPHMF%FWFMPQFSTͱ͔ࢀর w
ߏٕज़ w -JHIUIPVTF w 4FSWJDF8PSLFS w $BDIF4UPSBHF w *OEFYFE%#
4FSWJDF8PSLFS "QQ 4FSWJDF8PSLFS OFUXPSL $BDIF
/VYUKT
/VYUKT w Ϣχόʔαϧ7VFKTΞϓϦέʔγϣϯ w 7VFKTͰ443͢ΔͨΊͷϑϨʔϜϫʔΫ w ڥߏஙͱ͔ϧʔςΟϯάউखʹ͍͍ײ͡ʹ͠ͱ͍ͯ ͘ΕΔ w 443͢ΔͨΊͷίʔυΛੜͯ͘͠ΕΔͷͰɺ
ΞϓϦέʔγϣϯຊମͷ։ൃʹूதͰ͖Δ w 73$
/VYUKTʹ18"Λಋೖ͢Δ߹ w QXBNPEVMFΛ͏ w IUUQTHJUIVCDPNOVYUDPNNVOJUZQXBNPEVMF w ϥΠϒϥϦΛ/VYU༻ʹϞδϡʔϧԽͨ͠ͷ w .BOJGFTU.PEVMF w
8PSLCPY.PEVMF w *DPO.PEVMF w .FUB.PEVMF w 0OF4JHOBM.PEVMF
ಋೖ
yarn add @nuxtjs/pwa
OVYUDPOpHKT { modules: [ '@nuxtjs/pwa' ], // デフォルトだとdevで使えないので設定を追加 workbox: {
dev: true }, }
HJUJHOPSF sw.*
ʂʂ؆୯ʂʂ
0OF4JHOBM
0OF4JHOBM w ϓογϡ௨ʹಛԽͨ͠αʔϏε w ϞόΠϧ"QQ͚ͩͰͳ͘8FC1VTIʹରԠ͍ͯ͠Δ w ຊޠใগͳΊ w 6CFSͱ͔ͬͯΔΒ͍͠
0OF4JHOBMͷొϑϩʔলུ *%͕ඞཁͳͷͰίϐΔ
yarn add @nuxtjs/onesignal
OVYUDPOpHKT // pwa-moduleの前に読み込む modules: [ '@nuxtjs/onesignal', '@nuxtjs/pwa' ], workbox: {
dev: true },
OVYUDPOpHKT oneSignal: { init: { appId: ‘Your App ID’, allowLocalhostAsSecureOrigin:
true, // 通知許可を求めるダイアログを最初に出さない autoRegister: false, welcomeNotification: { disable: true }, notifyButton: { enable: true } } },
σϑΥϧτͷ௨ઃఆμΠΞϩάΛ ग़͢લʹɺ֬ೝΛ͞·ͳ͍ͱͩΊ
ϓογϡ௨Λड͚औͬͨ λΠϛϯάͰൃՐ͢ΔΠϕϯτ ͋Δ
OVYUDPOpHKT // Inside page components this.$OneSignal.push(() => { this.$OneSignal.isPushNotificationsEnabled((isEnabled) =>
{ if (isEnabled) { console.log('Push notifications are enabled!') } else { console.log('Push notifications are not enabled yet.') } }) })
1VTI௨༻๏༻ྔΛकͬͯ ͍·͠ΐ͏ʂʂ
%&.0
·ͱΊ w /VYUKTͳΒ18"Λಋೖ͢Δͷ؆୯ʹͰ͖Δʂ w ϓογϡ௨͙͢Ͱ͖Δ w /VYUKTͰ18"Λಋೖ͍ͯ͜͠͏ʂ
ྑ͍͓Λʂ