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
Firebaseを使って作るPWA (LINE Developer Meetup #43)
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
0918nobita
August 22, 2018
Programming
820
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Firebaseを使って作るPWA (LINE Developer Meetup #43)
LINE Developer Meetup #43で行ったLTの資料です
0918nobita
August 22, 2018
More Decks by 0918nobita
See All by 0918nobita
入門言語としての F#
0918nobita
0
460
入門SRTP - 型レベルプログラミングちょっとだけ入門
0918nobita
0
450
プログラミング"言語"をはじめよう
0918nobita
0
61
RxJSで始めるリアクティブ・プログラミング と GitHub Emoji
0918nobita
1
100
OSSとライセンスの話
0918nobita
0
120
Other Decks in Programming
See All in Programming
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
230
OSもどきOS
arkw
0
550
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
7
4.2k
Lessons from Spec-Driven Development
simas
PRO
0
180
Vite+ Unified Toolchain for the Web
naokihaba
0
290
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.5k
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
230
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
170
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
780
Claspは野良GASの夢をみるか
takter00
0
190
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
220
Featured
See All Featured
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
420
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
160
Raft: Consensus for Rubyists
vanstee
141
7.5k
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
320
Done Done
chrislema
186
16k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Exploring anti-patterns in Rails
aemeredith
3
400
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
290
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
140
Transcript
FirebaseΛͬͯ࡞Δ PWA দຊେ -*/&%FWFMPQFS.FFUVQJO,ZPUP
ࣗݾհ ໋ཱؗେֶ ใཧֶ෦ճੜ দຊେ 5XJUUFS!OPCJUB w ໋ཱؗίϯϐϡʔλΫϥϒॴଐ w 8FCݴޠॲཧܥ։ൃ w
ؔܕϓϩάϥϛϯά )BTLFMM4.- 6TFS4USFBNͷফ͑ͨ
None
͓ॻ͖ w 18"ͷ֓ཁ ಋೖͷϝϦοτσϝϦοτ ࣮ํ๏ w طଘͷ8FCٕज़ͱͷΈ߹Θͤ 18"ͷࠓޙ w
'JSFCBTFͷ֓ཁ w ݸਓ։ൃͷΞϓϦͷհ 'JSFCBTFಋೖࣄྫ w ·ͱΊ
18" 1SPHSFTTJWF8FC"QQT
18"ͱ 8FCϖʔδΛɺ ঃʑʹωΠςΟϒΞϓϦͷΑ͏ͳڍಈΛ ࣮ݱ͢ΔΑ͏ʹ֦ுͰ͖Δٕज़
18"㲈ಛघͳ41" 4JOHMF1BHF"QQMJDBUJPO
18"Λಋೖ͢ΔϝϦοτ w ϓογϡ௨Ωϟογϡػೳ͕ར༻Մೳ w όοΫάϥϯυͰͷಉظॲཧ͕Մೳ w Πϯετʔϧͷख͕ؒল͚Δ w ΦϑϥΠϯͰಈ࡞ w
ߋ৽͕؆୯
σϝϦοτ w ϓογϡ௨όοΫάϥϯυͰͷಉظ ڥʹΑͬͯར༻Ͱ͖ͳ͍ J04 w ωΠςΟϒ͚ͷ"1*ར༻Ͱ͖ͳ͍ w ΦϑϥΠϯͰͷॲཧ͕ෳࡶʹͳΓ͕ͪ
w ඇಉظͭΒ͍ 41"ͱࣄ͕ࣅ͍ͯΔ
ಋೖࣄྫ 5XJUUFS-JUF
8JOͰ18" ৄ͘͠IUUQTEFWFMPQFSNJDSPTPGUDPNKBKQXJOEPXTQXB 681ͱͯ͠Ϗϧυͯ͠8JOEPXTετΞͰՄೳ
2ैདྷͷ࣮ͱͷҧ͍ʁ
"͋Μ·Γͳ͍
5P%P NBOJGFTUKTPOͷઃஔ 4FSWJDF8PSLFSΛಋೖ͢Δ
NBOJGFTUKTPO w ΞϓϦͷใΛ·ͱΊͨKTPOϑΝΠϧ ΞΠίϯ༻ͷը૾ εϓϥογϡը໘ ςʔϚ৭ ։͘63-ͳͲ w MJOLλάͰࢦఆ͢Δ͚ͩͰඥ͚͕ྃ
4FSWJDF8PSLFS w ϒϥβ͕όοΫάϥϯυͰ࣮ߦ͢ΔεΫϦϓτ w ϦΫΤετΛϓϩΩγ͢Δ͜ͱ͕Ͱ͖Δ w ϥΠϑαΠΫϧ͕ଘࡏ͠ɺΠϕϯτυϦϒϯͰ࣮ w %0.ʹΞΫηεͰ͖ͳ͍ ૢ࡞͢ΔͳΒQPTU.FTTBHFͰ௨৴͢Δඞཁ͋Γ
w ඞཁʹԠͯ͡ىಈऴྃ͞ΕΔͨΊมͷ͕อ࣋͞Εͳ͍ σʔλอଘʹ$BDIF *OEFYFE%#Λར༻͢Δඞཁ͋Γ w IUUQT͔MPDBMIPTU্Ͱ͔͠ಈ࡞͠ͳ͍
͓ॻ͖ w 18"ͷ֓ཁ ಋೖͷϝϦοτσϝϦοτ ࣮ํ๏ w طଘͷ8FCٕज़ͱͷΈ߹Θͤ 18"ͷࠓޙ w
'JSFCBTFͷ֓ཁ w ݸਓ։ൃͷΞϓϦͷհ 'JSFCBTFಋೖࣄྫ w ·ͱΊ
طଘͷ8FCٕज़ͱͷΈ߹Θͤ w 8FC35$ w 8FC(- w 8FC"TTFNCMZ ͜ΕΒͷٕज़͕ซ༻Մೳ
18"ͷࠓޙʜ
"QQMFͷରԠ࣍ୈ
w J04͚4BGBSJͰͷ18"ͷαϙʔτݶఆత w ϒϥβ͔Β18"Λࣗ༝ʹΠϯετʔϧ͢Δ ͜ͱΛڐ͢ʁڐ͞ͳ͍ʁ w ωΠςΟϒΞϓϦͷετΞͱͷ݉Ͷ߹͍͕ ωοΫʹͳΔ
'JSFCBTF
'JSFCBTFͷαʔϏε w )PTUJOH ੩తϑΝΠϧḉ w $MPVE'VODUJPOT 'BB4 w
$MPVE'JSFTUPSF /P42-σʔλϕʔε w 4UPSBHF ը૾ ಈը༻ετϨʔδ w "VUIFOUJDBUJPO Ϣʔβʔೝূཧ w .-,JU ػցֶशϥΠϒϥϦ
'JSFCBTF)PTUJOH w ੩తϖʔδͷϗεςΟϯά w ϧʔςΟϯάͷઃఆKTPOϑΝΠϧͰ
2σϓϩΠํ๏ʁ
"firebase deployίϚϯυΛ ୟ͚ͩ͘
$MPVE'VODUJPOT GPS'JSFCBTF w ଞͷ'JSFCBTFͷػೳ)5514ϦΫΤετʹ ΑͬͯτϦΨʔ͞ΕͨΠϕϯτʹԠͯ͡ɺ όοΫΤϯυίʔυΛࣗಈͰ࣮ߦ͢Δ w όοΫΤϯυίʔυσϓϩΠ͞Εͨݸʑͷؔ w 'BB4
'VODUJPOBTB4FSWJDF
'BB4 'VODUJPOBTB4FSWJDF w ΫϥυͷϓϩόΠμଆͰඞཁͳόοΫΤϯυ ίʔυΛ࣮ߦ͢ΔαʔϏεΠϯϑϥ w ཁόοΫΤϯυͷॲཧΛؔʹׂͯ͠ ͦΕͧΕσϓϩΠͯ͠ݺͼग़ͤΔαʔϏε
ΫϥΠΞϯτ͔Βͷ ؔͷݺͼग़͠ํ ҎԼͷछྨ ؔΛఆٛ͢Δͱ͖ʹࢦఆ w )551ϦΫΤετ w $BMMBCMF)5514 ͲͪΒΛબͿͱͯ͠'JSFCBTFͷ4%,͕ඞཁ
$BMMBCMF)5514 w 4%,ʹΑͬͯɺϦΫΤετʹೝূใ͕ ༩͞ΕΔ w ϝΠϯͷιʔεϑΝΠϧʹɺೝূใΛ Ճ͢ΔॲཧΛॻ͘ඞཁ͕ͳ͍ w ೝূใ'JSFCBTF"VUI$MPVE.FTTBHJOHͷτʔΫϯ
2σϓϩΠํ๏ʁ
"firebase deployίϚϯυΛ ୟ͚ͩ͘
$MPVE'VODUJPOTͷ ୯ମςετ w firebase-functions-testύοέʔδ͕ OQNͰ͞Ε͍ͯΔ w ΦϑϥΠϯϞʔυΦϯϥΠϯϞʔυ
ΦϑϥΠϯϞʔυͰͷ୯ମςετ w ෭࡞༻ͳ͠ʹαΠϩԽ͞ΕͨΦϑϥΠϯͷ ୯ମςετ w 'JSFCBTFϓϩμΫτͱΓऔΓ͢Δϝιου ݺͼग़͠ελϒ͞ΕΔඞཁ͕͋Δ
ΦϯϥΠϯϞʔυͰͷ୯ମςετ w σʔλϕʔεͷॻ͖ࠐΈ Ϣʔβʔͷ࡞ͳͲ ෭࡞༻ ͕࣮ࡍʹߦΘΕΔ w ςετઐ༻ͷ'JSFCBTFϓϩδΣΫτ͕ඞཁ
'JSFCBTFͷྉۚϓϥϯ w 4QBSL ແྉ ϓϥϯ w 'MBNF ྉۚݻఆ ϓϥϯ w
#MB[F ैྔ՝੍ۚ ϓϥϯ ৄ͘͠IUUQTpSFCBTFHPPHMFDPNQSJDJOH
͓ॻ͖ w 18"ͷ֓ཁ ಋೖͷϝϦοτσϝϦοτ ࣮ํ๏ w طଘͷ8FCٕज़ͱͷΈ߹Θͤ w 18"ͷࠓޙ w
'JSFCBTFͷ֓ཁ w ݸਓ։ൃͷΞϓϦͷհ 'JSFCBTFಋೖࣄྫ w ·ͱΊ
ٕज़ॻɺੵಡͯ͠·ͤΜ͔ʁ
ੵಡ ŨƃŪƄŞ lੵΜͰ͓͘zͱυΫ ಡ ͱΛ͔͚ͨᔬམ ॻΛಡ·ͣʹੵΜͰ͓͘͜ͱ ࣙԓୈ൛ΑΓ
ΞϓϦͷ֓ཁ w ੵಡফԽࢧԉ18"ʮ5TVOEPLVʯ w Ծͷຊ୨ʹੵಡঢ়ଶͷຊΛՃ͢Δ w ੵಡফԽͷਐḿ ϖʔδ ༰ ؔ࿈͢Δ(JU)VCͰͷίϛοτ
Λ ࿈ܞ4/4Ͱڞ༗Ͱ͖Δ w ਐḿ͕ग़͍ͯΔຊ΄Ͳɺ ຊ୨Ͱදࣔ͞ΕΔαϜωΠϧ͕͔ʹͳΔ w ຊ୨ʹొͰ͖Δʹ্ݶ͕͋Γɺ ਃΛ͢Ε্ݶΛஈ֊తʹղ์Ͱ͖Δ ͦͷ͔ΘΓɺ্ݶΛղ์ͨ͜͠ͱຖճ4/4Ͱڞ༗͞ΕΔ
w 'JSFCBTF)PTUJOH $MPVE'VODUJPOT $MPVE'JSFTUPSF "VUIΛར༻ #MB[Fϓϥϯ w IUUQTHJUIVCDPNOPCJUB5TVOEPLV
5TVOEPLVͷٕज़తཁૉ
5TVOEPLVͷٕज़తཁૉ w όοΫΤϯυ $MPVE'VODUJPOT'JSFTUPSF"VUI /PEFKT 7FSݻఆ w
ϑϩϯτΤϯυ /PEFKT OQN "OHVMBS 5ZQF4DSJQU 54-JOU #PPUTUSBQ 'JSFCBTF)PTUJOHͰ৴
'JSFCBTFͷ༻ײ w ϒϥβ্ͰݟΕΔίϯιʔϧ͔Βɺ %#ͷཧ͕(6*Ͱߦ͑Δͷ͕-(5. w σϓϩΠָ͕͘͢͝ w 'BB4୯ମςετ͕ͪΐͬͱେม w $MPVE'VODUJPOTʹɺ
͘࠷৽ͷ/PEFKTʹରԠͯ͠΄͍͠
·ͱΊ w 18"69ΛߴΊΔΞπ͍ٕज़ w ಋೖ؆୯ڥґଘͳ෦ʹҙ w 'JSFCBTFΊͬͪΌศར w 18"ʮ5TVOEPLVʯ։ൃத 4UBS
*TTVF ϓϧϦΫ͓ͪͯ͠·͢ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠