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
0918nobita
August 22, 2018
Programming
1
810
Firebaseを使って作るPWA (LINE Developer Meetup #43)
LINE Developer Meetup #43で行ったLTの資料です
0918nobita
August 22, 2018
Tweet
Share
More Decks by 0918nobita
See All by 0918nobita
入門言語としての F#
0918nobita
0
450
入門SRTP - 型レベルプログラミングちょっとだけ入門
0918nobita
0
410
プログラミング"言語"をはじめよう
0918nobita
0
52
RxJSで始めるリアクティブ・プログラミング と GitHub Emoji
0918nobita
1
97
OSSとライセンスの話
0918nobita
0
110
Other Decks in Programming
See All in Programming
Kiroで始めるAI-DLC
kaonash
2
620
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
870
基礎から学ぶ大画面対応(Learning Large-Screen Support from the Ground Up)
tomoya0x00
0
3.3k
概念モデル→論理モデルで気をつけていること
sunnyone
3
300
テストコードはもう書かない:JetBrains AI Assistantに委ねる非同期処理のテスト自動設計・生成
makun
0
530
rage against annotate_predecessor
junk0612
0
170
The Past, Present, and Future of Enterprise Java with ASF in the Middle
ivargrimstad
0
170
Reading Rails 1.0 Source Code
okuramasafumi
0
250
そのAPI、誰のため? Androidライブラリ設計における利用者目線の実践テクニック
mkeeda
2
1.9k
ProxyによるWindow間RPC機構の構築
syumai
3
1.2k
Design Foundational Data Engineering Observability
sucitw
3
200
個人軟體時代
ethanhuang13
0
330
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
Producing Creativity
orderedlist
PRO
347
40k
The Cost Of JavaScript in 2023
addyosmani
53
8.9k
The Invisible Side of Design
smashingmag
301
51k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
131
19k
Gamification - CAS2011
davidbonilla
81
5.4k
BBQ
matthewcrist
89
9.8k
Fireside Chat
paigeccino
39
3.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Balancing Empowerment & Direction
lara
3
620
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 ϓϧϦΫ͓ͪͯ͠·͢ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠