Takuma HANATANI (@potato4d) • Status • Senior Front-End Enginner at LINE Corp. • CEO at ElevenBack LLC. • Core skills • Front-End and Cloud Native Application Development • User Interface and Interaction Design • OpenSource Ecosystem • React.js / Vue.js ja document maintainer • Ex-Nuxt.js ja document maintainer • Nuxt.js beginners guide (C&R Institute) author
Candy ʹஔ͚Δཁ݅ͱ՝ײ w $BOEZ w ձܭཧͷΫϥυιϑτΣΞ w )JTUPSZϕʔεͰݪຊͱͳΔσʔλΛཧ͢Δ͜ͱΛཁٻ͞ΕΔ w ϞόΠϧ 18"8FC ʹಛԽ͍ͨ͠ΘΏΔ41" w ʮؾʹ͠ͳ͍ʯΛ࣠ͱͳΔϓϩμΫτ w 1%'ੜͱϝʔϧ৴ɺεέδϡʔϦϯάػೳ w J$BMFOEBS(PPHMF$BMFOEBSͰͷߪಡ༻ͷΤϯυϙΠϯτ
Candy ʹஔ͚Δཁ݅ͱ՝ײ w $BOEZ w ձܭཧͷΫϥυιϑτΣΞ w )JTUPSZϕʔεͰݪຊͱͳΔσʔλΛཧ͢Δ͜ͱΛཁٻ͞ΕΔ w ϞόΠϧ 18"8FC ʹಛԽ͍ͨ͠ΘΏΔ41" w ʮؾʹ͠ͳ͍ʯΛ࣠ͱͳΔϓϩμΫτ w 1%'ੜͱϝʔϧ৴ɺεέδϡʔϦϯάػೳ w J$BMFOEBS(PPHMF$BMFOEBSͰͷߪಡ༻ͷΤϯυϙΠϯτ
1. ݪຊอͷ՝Λ Firestore Ͱ͢ w 'JSFTUPSFυΩϡϝϯτܕͷσʔλϕʔε w Ͱ͖Δ͚ͩϑϥοτͳߏʹͰ͖Δ͠ਂ͘ωετͤ͞Δ͜ͱͰ͖Δ w جຊతʹඇਖ਼نԽͨ͠σʔλߏΛόονॲཧͰ߹ੑΛ߹ΘͤΔ͜ͱ͕جຊ w ݪຊΛอ͢Δ߹ࣄ͕ಛूͱͳΓɺͦΕͧΕ͕࿈ܞঢ়ଶʹͳ͍͜ͱ͕େ w 3FGFSFODFܕΛલఏͱͤͣసࣸ͢ΔɺόονͰυΩϡϝϯτؒͷಉظΛ͠ͳ͍ w 3%#Ͱ͍͏ͱ͜Ζͷ',ΛറΔΑ͏ͳҹ
2. PDF ग़ྗΛ puppeteer + Cloud Functions Ͱ͢ w QVQQFUFFSΛ'JSFCBTF'VODUJPOT͔Βݺͼग़͢ w 'VODUJPOTؔ୯ҐͰϚγϯεϖοΫΛௐͰ͖Δ w "ENJO4%,ʹؔ͢Δઃఆ͕ऴΘ͍ͬͯΔͷͰ'JSFTUPSFͱͷ࿈ܞָ͕ w ίϯϐϡʔςΟϯάίετ͕ߴ͍QVQQFUFFS༻ͷεϖοΫΞοϓΛ࠷ݶʹ w 1BB4ͷ߹ɺશͯΛ૿ڧ͢Δ͔ผͷϓϩδΣΫτΛ࡞Δ͔ͷೋͩͬͨ w "QQ&OHJOF4FSWJDF୯ҐͰͷεϖοΫมߋΛड͚͚ͳ͍ͨΊ w 'VODUJPOTΛར༻͢Δ͜ͱͰɺߟྀ͖͢ࣄ߲Λ࠷খԽͰ͖Δ
3. ฒྻॲཧͱϝʔϧͳͲίέΔॲཧͷରॲ w جຊతͳாථͷग़ྗQVQQFUFFSͱ'VODUJPOTͰૉʹ࣮Ͱ͖ͨ w ࣮ͨͩࡍͷӡ༻Ͱߋʹߟྀࣄ߲ΛՃ͠ɺҎԼΛϕʔεʹઃܭ w ݕ౼ࣄ߲ w ༧ૹͷ࣮࣌ʹಉ͡ϩδοΫ͕͍ճͤΔ͔ w ΠϯελϯεͷݶքͰQVQQFUFFS͕མͪͳ͍͔ w ֎తཁҼʹΑͬͯϝʔϧ৴͕ίέͳ͍͔ w ϦτϥΠػߏे͔
݁ہԿ͕خ͔ͬͨ͠ͷ͔ - σʔλߏฤ w υΩϡϝϯτ%#ΛυΩϡϝϯτ%#Β͘͠ར༻ͯ͠ݪຊΛอ͘͢͠ͳͬͨ w 3%#Λར༻͢Δ߹ͱൺֱͯ͠ૉͳίʔυهड़͕Մೳ w ߟྀࣄ߲͕ݮΓɺഊײͳ͍ w ·ͨɺར༻͕݄
ճ͔ͭఆ."6͕ۙͰd
ఔͳͷͰྉۚ˕ w ϢʔβʔωʔϜεϖʔεΛ࣋ͭΞϓϦέʔγϣϯͱͷ૬ੑͷྑ͞Λڗड w 'SJFOETIJQͷ3FMBUJPO͕͋Δσʔλߏ'JSFTUPSFͰ࡞ΓͮΒ͍ w ࠓճجຊతʹ0OF5P.BOZͷ3FMBUJPO͔͠ແ͔ͬͨͨΊ͏·͘ޮ͍ͨ
݁ہԿ͕خ͔ͬͨ͠ͷ͔ - αʔόʔϨεԽฤ w 'VODUJPOTΛར༻͢Δ͜ͱͰQVQQFUFFSΛִͨ͠ڥԼͰ࣮ߦͰ͖ͨ w ϚγϯεϖοΫΛඞཁͳͱ͜Ζ্͚ͩ͛ΒΕΔͷͰίετతʹ͍҆ w $ISPNJVNͷϝϞϦϦʔΫͳͲʹ·͞ΕΔඞཁ͕ͳ͍ w 'VODUJPOTͷεέʔϦϯάੑೳΛेʹڗडͰ͖ͨ w ݱ࣌Ͱ࠷খݶͷίϯϐϡʔςΟϯάར༻Ͱ͑ΒΕ͍ͯΔ w ϦϦʔε४උதͷ༧ૹͰಛఆ࣌ ".࣌ͳͲ ʹεύΠΫ͢ΔՄೳੑ͕ߴ͍ w ٯʹͦΕҎ֎ͷ࣌Πϯελϯε͕ඞཁͳ͍͜ͱଟ͘ͳΔ༧
݁ہԿ͕خ͔ͬͨ͠ͷ͔ - ΞʔΩςΫνϟฤ w ௨ৗૹɾ༧ૹɺࠓޙ࣮͢ΔఆظૹͰऔΓѻ͍ʹҧ͍͕ͳ͍ w ըҰతͳͷͰ࣮ίετ͘ɺߟྀࣄ߲গͳ͍ w 41""1*1VC4VC'VODUJPOT'JSFTUPSF41"ͷྲྀΕ͕࡞Εͨ w 41"'JSFTUPSFΛߪಡ͢Δ͚ͩͰඇಉظॲཧΛಉظͷΑ͏ʹʹ࣮ߦͰ͖Δ w ϨεϙϯεࣗମҰฦ٫͞Ε͍ͯΔͷͰɺϦτϥΠͳͲͷΈʹࡌ͍ͤ͢ w 41"͕ؔ৺Λ͖࣋ͭͳͷҟৗ࣌ͷλΠϜΞτॲཧͷΈͰ؆ܿ
iCal ܗࣜͷΧϨϯμʔͷఏڙ w Ϣʔβʔ͝ͱʹݸผͷ63-Λఏڙ w ߪಡ͢Δ͜ͱͰΧϨϯμʔͱใΛಉظ w ͍͕ͭૹظݶ͔ w ͍͕ͭΫϥΠΞϯτ͔Βͷೖ͔ۚ w ظݶʹ͍ྃͯ͠Δ͔ w ΧϨϯμʔΛΈͯؾ͍ͮͨΒൃߦͰ͖Δ w ϞόΠϧಛԽΏ͑ͷ༏Ґੑ ৗ࣌҆ఆͨܰ͠ඍͳϦΫΤετ͕ඈΜͰ͘Δ
Firebase Functions ͩͱͭΒ͍ྖҬΛ AppEngine ͰΧόʔ w ৗ࣌ϦΫΤετ͕͘Δͷ"QQ&OHJOF Ͱରॲ͍ͨ͠ w 'BB4՝ۚܗଶతʹৗ࣌Քಇʹ͔ ͳ͍Δ͖Ͱͳ͍☠ w ٯʹ"QQ&OHJOFʹશ෦ࡌͤΔͱ QVQQFUFFS૿ڧ͞Εͨαʔόʔ͕େ ྔʹඞཁʹͳΓ w ͲͷΈͪ'BB4ͱผʹ"1*ඞਢ
جຊతͳٕज़ͷ࣠ʹ͍ͭͯ w ·ͣ'JSFCBTF'VODUJPOTͰղܾͰ͖ͳ͍͔ߟ͑Δ w Ͱ͖ͳ͍ͱࢥ͍ͬͯͯͰ͖Δ͜ͱׂͱଟ͍ w #VTZͳ͕͚࣌ؒΕ͍΄Ͳ'BB4ͷར૿͢ w ΠϕϯτۦಈͰ࣮Ͱ͖ΔͳΒͦͷ΄͏͕ྑ͍ͷͰ)551ͷޱΛۃྗ։͚ͳ͍ w Ͳ͏ͯ͠ඞཁͳॲཧΛٵऩ͢ΔͨΊʹ1BB4αʔόʔΛ༻ҙ͢Δͱศར w 'JSFCBTFറΓͩͱͭΒ͍෦ग़ͯ͘Δ w "QQ&OHJOF͋ΔఔαʔόʔϨεతࢥͱݴ͑ίϯϐϡʔςΟϯάͱཧղ͢Δ
͓ΘΓʹ w ͦͦாථͷ1%'ग़ྗΛ࣮͢ΔͷͭΒ͍ w αʔϏεͷத৺ʹாථ͕དྷΔ͜ͱ͕ͳ͍ͷͰ͓͟ͳΓʹͳΓ͕ͪ w ͱ͍͑QVQQFUFFSͳͲͷొʹΑͬͯ͋Δఔ࡞Γ͘͢ͳ͍ͬͯΔ w ாථͷσʔλߏಛ༗ͷ֓೦ʹ͍ͭͯѲ͓ͯ͘͠ඞཁ͕͋Δ w Α͘ແݶʹൃߦͰ͖ΔγεςϜ͕͋Δ͕ɺ͋Εݫີʹྑ͘ͳ͍ w ඇਖ਼نԽͨ͠σʔλͱग़ྗ݁ՌΛݪຊͱͯ͠อ͢Δʹ'JSFTUPSF͕ศར
͓ΘΓʹ w Ұ࣌తʹεύΠΫ͢ΔՄೳੑ͕͋ΔΑ͏ͳϔϏʔͳॲཧ'VODUJPOTͰ0, w ඞཁͳͱ͖͚ͩͦΕͳΓͷεϖοΫ d.#3".ͳͲ ΛआΓΒΕΔ w ར༻͠ͳ͍࣌՝͕͔͔ۚΒͳ͍ͷͰۚમίετͱͯ͠خ͍͠ w Ϋϥυָͯ҆͘͠Ͱ͖Δٕज़ͳͷͰɺշద͞ͱίετΛॏࢹͯ͠ར༻͢Δ w 'BB4ͱ1BB4Λซ༻͢Δ͜ͱͰߟྀࣄ߲ݮΓɺ͔ͭ҆͘Ͱ͖Δ w ։ൃମ੍ʹٻΊΒΕ͍ͯΔཁૉΛߟ͑ͭͭΠϯϑϥετϥΫνϟΛߟ͠Α͏