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でお絵描きアプリを作った話
Search
kurokky
February 15, 2023
Technology
0
130
PWAでお絵描きアプリを作った話
for PWA night vol.48
kurokky
February 15, 2023
Tweet
Share
Other Decks in Technology
See All in Technology
Challenges - Open Farming Hackdays 2024
loleg
0
580
オブジェクト指向宗教史
tanakahisateru
14
12k
OpenTelemetry実践 はじめの一歩
taxin
0
330
業務で使えるかもしれない…!?GitHub Actions の Tips 集 / CI/CD Test Night #7
ponkio_o
PRO
24
7.3k
プッシュ型子育てサービスを、先行プロジェクト実施自治体において開始します
govtechtokyo
0
300
初心者が行く!サーバレスWebアプリ開発の道
nagaharutogawa
0
460
任意コード実行の原理
ffri
0
190
KubeCon EU 2024 : Knative Maintainers Session
salaboy
0
380
GraphQLに入門してみた
chiroruxx
2
130
エバンジェリスト活動を7年やってきて見えてきた、コミュニティとエバンジェリストの関係
soracom
PRO
1
200
オブジェクト指向CSSが叶えたかったことと、CSSのいま / The aims of Object-oriented CSS and the current state of CSS usage
shinkufencer
11
3.7k
技術イベントはなんとかひねり出す 日経の技術広報の取り組み/techpr3
nishiuma
0
230
Featured
See All Featured
Designing for Performance
lara
601
67k
GitHub's CSS Performance
jonrohan
1023
450k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.8k
How To Stay Up To Date on Web Technology
chriscoyier
781
250k
Being A Developer After 40
akosma
56
580k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
153
14k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
355
22k
Thoughts on Productivity
jonyablonski
57
3.8k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
5
1.4k
In The Pink: A Labor of Love
frogandcode
137
21k
The MySQL Ecosystem @ GitHub 2015
samlambert
242
12k
Transcript
!"#$ %&'()*+, -./0 1 2 3 4 5 6 7
8 9 : ; < = > ? @ A BC D E FG B HIJ
!"#$%&'()*+,-./0 1234 5678559:;< =>?@AB ଉࢠ ࡀ ɺΠϠΠϠظਅͬΓͷ່ ࡀ ͷࣇͷɻ γϯάϧϘʔυίϯϐϡʔλʔͰαʔόʔߏஙͨ͠ΓGSFFGPOU࡞ɺ࡞ۂɺ
FTQͳͲͰ*P5ɺ%ϓϦϯλʴిࢠ࡞Ͱ͜ͲͷΦϞνϟΛ࡞ͬͨΓ ৭ʑͯ͠·͢ɻ ༮ஓԂͷΠϕϯτͷ߹Ͱ͑ͯ·͕͢ɺීஈࢵ৭ͷϞώΧϯͰ׆ ಈͯ͠·͢ɻ ݄̎ʹͰ͖ͨגࣜձࣾ#SFXVTͰ$50తͳԿ͔Λ͍ͬͯ·͢ɻ !CMBDL@USFF LVSPLLZ !LVSPLLZ
!"#$%&'()*+,-./0 (.12 ࡢͷՆٳΈͷ͜ͱʜ ͷॳຍɺࡀ ࣌ ͷ່͕ੜޙҰभͷ࣮Ոʹؼͬͯͳ͍͜ͱ ͳͲΛ౿·͑߅ݪݕࠪΛ͠ؼল͍ͯ͠ΔඈߦػͷதͰࣄ͓͖݅·ͨ͠ɻ ࡀ ࣌ ͷଉࢠ͕
%&1(3/45678(/4 ͱݴ͍͡Ί·ͨ͠ɻʢଉࢠࣈΛॻ͘ͷʹϋϚͬͯ·ͨ͠ɻʣ ଉࢠ ࣗը૾
ΩλΩλʂଉࢠΑ*5ͪΌΜΛͳΊΔͳʂ !"#$%&'()*+,-./0 123456789%:;;<=>7=?@6<ABCD2E $FG,HIJKLFCMNO$PDQR S-32TUV 7W:XHIYKLFCMZ[3\ ]^_`a
!"#$% ΩλΩλʂଉࢠΑ*5ͪΌΜΛͳΊΔͳʂ &'()*+,-./012345 6789:;<=>*?@@ABC<BDE;AFGHI7J )KL1MNOPQKHRST)UIVW X287YZ[ しかし <\?]MN^PQKHR_`8a
!"#$%&' ()*+,-./0$123456
!"#$%&' ʢࡀࣇʹ༗ྉͷΞϓϦϨΠϠʔͱ͔͋ͬͯ6*తʹߴػೳ͗͢ΔͷͰ͢ʣ ϑϦʔͷΞϓϦʹଟ͍ ΦϑϥΠϯͰਅͬനʹͳΔ ࠂදࣔྖҬʂ ()*+,-./0$123456
!"#$ %&'()*+,-./01234
!"#$ %%&'()*+ ,-"./0 123456789:;<=>?@
!"#$ %%&'()*+ ,-"./0 123/456".78/9 :;<=5>?@ABCDEFGH
!"#$ %%&'()*+ ,-"./0 123/456".78/9 :;<,-"./0 =>?@5AB;CDEFGHIJ
!"#$ %%&'()*+ ,-"./0 123/456".78/9 :;<,-"./0 123/456".78/9 =>?@5AB;CDEFGHIJ
!"#$ %%&'()*+ ,-"./0 123/456".78/9 :;<,-"./0 123/456".78/9 :;<,-=>../0 ?@AB5CD;EFGHIJKL
!"#$%&'()*+,-./012% 3456 77 89:;<= >)4?@A BCD@E(F4?GH@I JKL>)4?@A BCD@E(F4?GH@I JKL>)*M??@A BCD@I
N7,OPQRS?TUDV
!"#$%&'( )*+)*,-./&01234 56789:;<=>?@AB2C ່
!"#$%&'( )*+)*,-./&01234 -.+56$788$-9:;<=>?@AB C01DE3 =FGCHIJKLMNOP92Q ່
!"#$%&'( )*+)*,-./&01234 -.+56$788$-9:;<=>?@AB C01DE3 -9:FGHI$JK+CLD3MJN ;OPQR.SD3B =TUCGVWLOPQXY92Z ່
!"#$%&'( )*+)*,-./&01234 -.+56$788$-9:;<=>?@AB C01DE3 -9:FGHI$JK+CLD3MJN ;OPQR.SD3B TUM =VWCGXYLOPQZ[92\ ່
!"#$%&'( )*+)*,-./&01234 -.+56$788$-9:;<=>?@AB C01DE3 -9:FGHI$JK+CLD3MJN ;OPQR.SD3B TUM )*+)*N =VWCGXYLOPQZ[92\ ່
່
!"#$%&'()*+,-./012% 345,6789 :;<:;=>?@7A%BCD >?<EF,GHH,>IJKLMNOPQR SA%TUC >IJV(WX,YZ<S[TC\Y] K^_`a?bTCR cd\ :;<:;] eYGfUTCG
່ ່
!"#$ %&'()*+,-./012/3 45 67-89:;<=>?@A&BC
!"#$ %&'()*+,-./012/3 45 %&'678&9:;<=>?@A BC-DEFGHIJKLM&NO
!"#$ %&'()*+,-./012/3 45 %&'678&9:;<=>?@A B&CDEFGH CI;BJ=CKD LLGMNJ? OP-QRSTUVWXYM&Z[
!"#$%&'()*+,-./012345678 239: ;</=>?@ABCDEFGDH IJ ;</KLM<NOP1Q7RST U<VWXYZ[ V\PU]QV^W __Z`a]R U]QRTXbcOPAR[
!"#$!% &'()*+,-./01 23456/' 789:;$!<=> ?@A%2345B)C7DEFG
!"#$%&'()*+,-./01 234/56789$:,;<=>
!"#$%&'()*+,-./01 18"ք۾ʹ͍ͳ͍ͱࢥ͍·͕͢ɺϚϧνϓϥοτϑΥʔϜͱฉ͍ͯ 'MVUUFSͩͷ3FBDU/BUJWFͩͷ6OJUZɺ3VTUͳͲ͕಄ʹු͔Μͩํʜ 234/56789$:,;<=>
!"#$%&'()*+,-./01 18"ք۾ʹ͍ͳ͍ͱࢥ͍·͕͢ɺϚϧνϓϥοτϑΥʔϜͱฉ͍ͯ 'MVUUFSͩͷ3FBDU/BUJWFͩͷ6OJUZɺ3VTUͳͲ͕಄ʹු͔Μͩํʜ 23/456789:; <=>?@A/:; BCD/2EFGH$I,JKLM
!"#$%&'()*+,-./ ͜Ͳɺ(PPHMF"QQMFͷ৹ࠪ࣌ؒ·ͯ͠CVJME࣌ؒͳΜͯؔͳ͍Μ Ͱ͢ɺͬͯ͘Ε·ͤΜɻ ʰ΄͍͠ʱͬͯݴͬͨΒεάͳ͍ͱμϝͳΜͰ͢ɻ ͷઢͰ͚͢ͲɺωΠςΟϒͱ͔ඇωΠςΟϒͱ͔ίʔυ͕Ԛ͍ͱ͔ ؔͳ͍ΜͰ͢ɻ 01234567(89:;<=>
!"#$%&'()*+,-./ ͜Ͳɺ(PPHMF"QQMFͷ৹ࠪ࣌ؒ·ͯ͠CVJME࣌ؒͳΜͯؔͳ͍Μ Ͱ͢ɺͬͯ͘Ε·ͤΜɻ ʰ΄͍͠ʱͬͯݴͬͨΒεάͳ͍ͱμϝͳΜͰ͢ɻ ͷઢͰ͚͢ͲɺωΠςΟϒͱ͔ඇωΠςΟϒͱ͔ίʔυ͕Ԛ͍ͱ͔ ؔͳ͍ΜͰ͢ɻ ɾࠂ͕ͳͯ͘ɺ͋Δఔͷ͜ͱ͕Ͱ͖Δɻ ɾ͍͖ͭΔ͔͔Βͳ͍ͷͨΊʹԁग़͢ͷ੯͍͠ʂ ɾλϒϨοτͰεϚϗͰʰϙΠͬʂʱͱεάʹॻ͚Δ͜ͱʂ ɾͰͰɺ੩Իͳۭ͕ؒੜ·ΕΔ͜ͱɻ
超⼤事 01234567(89:;<=>
!"#$%&'()*+,-./0 ฐࣾ #SFXVT શϦϞʔτϫʔΫͷձࣾͰ͢ɻΦϯϥΠϯͷϛʔςΟ ϯάπʔϧͱͯ͠(PPHMF.FFUΛ༻͍ͯ͠·͢ɻ ·ͨखܰʹϥΠϒ৴͕Ͱ͖Δ"MJWFͱ͍͏πʔϧΛ։ൃ͍ͯ͠·͢ɻ ͦͷΦϯϥΠϯϛʔςΟϯάதʰը໘γΣΞதʹϝϞॻ͖͍ͨ͠ͳ͊ʱ ͱࢥ݄ͬͯʹʰΕͥΜͯΜ͠ΐΜʱͱ͍͏(PPHMF$ISPNF ͷ֦ுػೳΛϦϦʔεͨ͠ͷͰ͕͢ɺϩʔΧϧʹͦͷ+BWB4DSJQUͷίʔυ ͕͋ͬͨͷͰͦΕΛྲྀ༻͠·ͨ͠ɻ
123.456789:&;<=>
!"#$%&'()!"*+, લड़͠·͕ͨ͠ɺ͜ͱͷൃඈߦػͷதͳͷͰશΦϑϥΠϯڥͰ͢ɻ 1$Λ৽ௐͨ͠ͷ͋ΓOQN ZBSO UZQFTDSJQU TBTT ͑·ͤΜʜ -./*012+3456789:
!"#$%&'()!"*+, લड़͠·͕ͨ͠ɺ͜ͱͷൃඈߦػͷதͳͷͰશΦϑϥΠϯڥͰ͢ɻ 1$Λ৽ௐͨ͠ͷ͋ΓOQN ZBSO UZQFTDSJQU TBTT ͑·ͤΜʜ ͦΕͰ։ൃͰ͖Δͷ͕ -./*012+3456789:
!"#$%&'()!"*+, લड़͠·͕ͨ͠ɺ͜ͱͷൃඈߦػͷதͳͷͰશΦϑϥΠϯڥͰ͢ɻ 1$Λ৽ௐͨ͠ͷ͋ΓOQN ZBSO UZQFTDSJQU TBTT ͑·ͤΜʜ ͦΕͰ։ൃͰ͖Δͷ͕ -./ 01
*2 -./*345+6789:;<=
!"#$%&'"()* ͰͰ͖ͨͱݴ͑ϓϩτλΠϓɺΫΦϦςΟΛ͋Δఔ·Ͱ্͛Δ ͷʹͦΕͳΓʹۤ࿑͠·͢ɻ ඈߦػͰͷ࡞ޙɺ࣮Ոʹؼলͯ͠վྑ͠·ͨ͠ɻ ݸਓ։ൃͷΑ͍ͣͬͱ։ൃ͠ଓ͚ΒΕΔ͜ͱͰ͕͢ଥڠඞཁͰ͢ɻ ࣍ทΑΓ)5.-ͩͱͳ͔͕ͬͨ18"ʹ͚ͨ࣌ͩ͠ʹى͜Γۤ࿑ͨ͠ ͱଥڠͨ͠Λͭͣͭհ͠·͢ɻ ʢଞʹ5JQT͕͋ΔͷͰ͕࣌ؒ͢ͷ߹͋ΔͷͰৄࡉ2JJUBʹهࡌ͍ͯ͠·͢ɻʣ ༨ஊͰ່͕͕͢Ұ൪ؾʹೖͬͨػೳϝχϡʔදࣔɾඇද͕ࣔΓସΘΔ 6*ͷ෦Ͱͨ͠ɻ
+,-./0123456789:
!"#$%& 18"ʹͳΔͱIUNMDBOWBT͕ಈ͔ͳ͍ ը૾อଘػೳͱͯ͠IUNMDBOWBTΛ͍ͬͯͨΜͰ͕͢ɺ͜Ε͕18"ʹ ͳΔͱਖ਼ৗʹಈ࡞͠·ͤΜͰͨ͠ɻ ௨৴पΓͰ৭ʑ͕͋ΔΜͩΖ͏ͳ͊ͱਪଌ͍ͯ͠·͢ɻ ৄ͘͠ϩδ οΫݟͯ·ͤΜ͕ɺଟҰ୴+4Ͱ֘ͷ63-ͷDTTΒؚΉͷΛ%-͠ ͯͦΕΛݟ͑ͳ͍EPNʹల։ͯ͠DBOWBT͔Βը૾Խͯ͠Δͦͷ௨৴෦ ͕͏·͍͔͘ͳ͍ͷͰʁ Ͱɺ݁ہDBOWBTΛෳ༻ҙͯͦ͠ΕΛNFSHFͱ͍͏͔KPJO
͢ΔΑ͏ͳ ϩδοΫʹ͠·ͨ͠ɻ '()*+,-./01234$5
!"#$%& "OESPJEͷΈ18"Ͱը໘αΠζ͕औಘͰ͖ͳ͍ ͓ֆඳ͖ػೳDBOWBTͱ͍͏ػೳΛ࣮͍ͬͯͯ͠·͕͢ɺDBOWBTͷ ੑ্࣭ɺը໘ҰഋͷඳըྖҬΛ࣋ͭҝʹ)5.-ཁૉͷXJEUIͱIFJHIUͰ ࢦఆ͠ͳ͚ΕͳΓ·ͤΜɻ DTTͰ͓͔͘͠ͳΔ ͜ΕΛ௨ৗͷϒϥβͷΈ༻͢Δ)5.-൛Ͱ+4ͰCPEZͷPOMPBE࣌ʹ มߋ͢ΔΑ͏ʹ͍ͯͨ͠ͷͰ͕͢ɺ"OESPJEͷ18"Ͱىಈ͢Δͱɺඳը ྖҬ͕ ͙Β͍ͳͬͯ͠·͍ͬͯʹͳΓ·ͤΜͰͨ͠ɻ
৭ʑࢼͯ͠ΈͨΜͰ͕͢ɺ໘ͩͬͨͷͰ"OESPJEͷ߹Nඵܦͬ ͔ͯΒऔಘ͢ΔϩδοΫʹมߋ͠·ͨ͠ɻ '()*+,-./01234$5
!"#$%&'()*+,-./0 123/45 3FUJOBରԠ J1IPOFͳͲʹݟΒΕΔ3FUJOBσΟεϓϨΠΛ͡Ί࠷ۙͷλϒϨοτ εϚʔτϑΥϯཧతͳղ૾ͱཧతͳղ૾͕ഒҎ্ҧ͍·͢ɻ ຊདྷͰ͋Εɺ֤ͷEQJʹԠͯ͡DBOWBTͷXJEUIɺIFJHIUΛഒͳͲʹ ͯ͠DTTͰʹ͢Δͷ͕ৗ۟Ͱ͢ɻ ͨͩɺ࣮ࡍʹ։ൃ͍ͯ͠Δ࣌શ͘಄ʹͳ͘ɺ͔ͳΓऴ൫ʹͳͬͯʮ͋ɺ δϟΪͬͯΔΘʜʯͱͳͬͨͷͰ͕͢ɺ͜ͷ࣌Ͱݴ͍ग़ͬ͠ͷଉࢠ͕ ຬ͍ͯͬͯͨ͠ඇྗͳ"OESPJEͩͱΧΫͭ͘༧ײ͕ͨ͠ͷͰݟ
ૹΓ·ͨ͠ɻ
!"#$%& 6OEP3FEP༻ʹσʔλΛQBUIԽ͢Δ ࠓճ6OEP3FEPػೳͷͨΊʹDBOWBTͷόΠφϦใΛUP%BUB63-Խ ͨ͠ͷΛMPDBM4UPSBHFʹྻͰಥͬࠐΉͱ͍͏ແཧཧͳ࣮ʹ͠·͠ ͨɻ ཤྺใ͕ංେԽ͢Δͱॏ͘ͳͬͨΓ͢Δͷ͋ΔͷͰɺ͜Ͳ͕ࣗ༝ؾ ··ʹ͏ͷͱͯ͠ඍົͳ࣮Ͱ͢ɻ ຊདྷͰ͋Ε'BCSJDKTͳͲΛͬͯQBUIԽͨ͠࠲ඪσʔλΛ࣋ͭͷ͕Α ͍ͱࢥ͍·͕͢ɺ։ൃ࣌ඈߦػͷதͰ͑ͳ͔ͬͨͷͰɺͦͷ··ʹ͠ ͪΌ͍·ͨ͠ʜ
'()*+,-./01234$5
!"# 8"4.ͱ͔5ZQF4DSJQUͱ͔5VSCPQBDLͱ͔·͙Δ͍͠8FCGSPOUք۾ Ͱ͕͢ɺࣗͷΞΠσΟΞΛ؆୯ʹɺTBTTNJOJGZؚΊͨCVJMEͳ͠ʹ ࠷ͰϚϧνϓϥοτϑΥʔϜͰܗʹͰ͖Δ18"ϓϩτλΠϓʹݶΒ ͣχʔζ͋Δͱࢥ͍·͢ɻ ͪΖΜۀɾϏδωεͰ༻͢Δ߹ʹ৭ʑͳ͜ͱΛߟྀ͠ͳ͚Ε ͳΒͳ͍ͱࢥ͍·͢͠ϋϚΓॴ͋Γ·͕͢ϋϚΓॴͲΜͳݴޠͰϑ ϨʔϜϫʔΫͰ։ൃʹ͖Ͱ͢ɻ ݸਓతʹ࡞Δָ͠͞ΛΕͣʹ͜Ε͔Β18"Λͭͷબࢶͱͯ͠ ༻͍͖͍ͯͨ͠ͱࢥ͍·͢ɻ
ʢ#SFXVTͰͦΜͳͷͮ͘Γ͕͖ͳํΛืू͍ͯ͠·͢ˡએʣ ࣮ࡍͷ੍࡞େਓ൛ɺ͜Ͳ൛Λ࡞͍ͬͯ·͢ɻ ؾʹͳͬͨํΞΫηεͯ͠Έ͍ͯͩ͘͞ɻ $%&'()*+,-./0123
!"#$%&'() ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ *+),-./012345678