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
GASで始めるサーバーレス 頑張らない社内アプリケーション開発
Search
t-yng
August 31, 2019
Technology
1
290
GASで始めるサーバーレス 頑張らない社内アプリケーション開発
builderscon tokyo 2019 LT 登壇資料
https://builderscon.io/tokyo/2019
t-yng
August 31, 2019
Tweet
Share
More Decks by t-yng
See All by t-yng
ChatGPTを活用した英文添削アプリケーション個人開発.pdf
tyng
0
60
型からモックデータ生成コードを自動生成する
tyng
0
43
WebAssemblyでオセロを作ってみた
tyng
0
360
Other Decks in Technology
See All in Technology
生成AI × 旅行 LLMを活用した旅行プラン生成・チャットボット
kominet_ava
0
160
comilioとCloudflare、そして未来へと向けて
oliver_diary
6
440
20250116_自部署内でAmazon Nova体験会をやってみた話
riz3f7
1
100
Building Scalable Backend Services with Firebase
wisdommatt
0
110
Goで実践するBFP
hiroyaterui
1
120
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
1
16k
embedパッケージを深掘りする / Deep Dive into embed Package in Go
task4233
1
210
あなたの知らないクラフトビールの世界
miura55
0
120
JuliaTokaiとJuliaLangJaの紹介 for NGK2025S
antimon2
1
110
AWS re:Invent 2024 re:Cap Taipei (for Developer): New Launches that facilitate Developer Workflow and Continuous Innovation
dwchiang
0
160
カップ麺の待ち時間(3分)でわかるPartyRockアップデート
ryutakondo
0
140
Bring Your Own Container: When Containers Turn the Key to EDR Bypass/byoc-avtokyo2024
tkmru
0
850
Featured
See All Featured
Designing for Performance
lara
604
68k
GitHub's CSS Performance
jonrohan
1030
460k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.5k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
240
BBQ
matthewcrist
85
9.4k
Being A Developer After 40
akosma
89
590k
Optimising Largest Contentful Paint
csswizardry
33
3k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Making the Leap to Tech Lead
cromwellryan
133
9k
Transcript
GASͰ࢝ΊΔαʔόʔϨε ؤுΒͳ͍ࣾΞϓϦέʔγϣϯ։ൃ Builderscon Tokyo 2019 LT
ࣗݾհ • ༄ ྙߒʢͳ͗ ͱͻΖʣ • @TGreenmonkey (t-yng) • Hamee
גࣜձࣾ ɾϑϩϯτΤϯυ͕͖ ɾझຯͰ Flutter Λษڧத
ձࣾͰͷͱ͋ΔͰ͖͝ͱ...
͓ޓ͍ͷ͜ͱΛΔͨΊʹ ࣾ༻ͷࣾһͷϓϩϑΟʔϧ ϖʔδΛ࡞ͬͯ΄͍͠Ͱ͢ ͍͍Ͱ͢Α
͓ޓ͍ͷ͜ͱΛΔͨΊʹࣾһ ͷϓϩϑΟʔϧϖʔδΛ࡞ͬͯ ΄͍͠Ͱ͢ ͍͍Ͱ͢Α ࣾͷϓϩϑΟʔϧϖʔδΛ ։ൃ͢Δ͜ͱʹͳͬͨ
ϓϩϑΟʔϧϖʔδͷཁ݅ ɾࣾͷϓϩϑΟʔϧϖʔδ͕ཉ͍͠ ɾϓϩϑΟʔϧใࣾһ͕ࣗ༝ʹฤूՄೳ ɾमਖ਼݁ՌϦΞϧλΠϜʹө
None
࠷ॳͷΠϝʔδ ϓϩϑΟʔϧΛฤू Ͱ͖Δը໘ ૢ࡞ ߋ৽ ϓϩϑΟʔϧҰཡ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML
ੜ ΞϓϦέʔγϣϯαʔόʔ
ͪΐͬͱͬͯʂʂ
ϓϩϑΟʔϧϖʔδΛϖʔδ ࡞Δ͚ͩͩΑͶʁ
࠷ॳͷΠϝʔδ ϓϩϑΟʔϧΛฤू Ͱ͖Δը໘ ૢ࡞ ߋ৽ ϓϩϑΟʔϧҰཡ ϝϯόʔհϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML
ੜ ΞϓϦέʔγϣϯαʔόʔ
࠷ॳͷΠϝʔδ ϓϩϑΟʔϧΛฤू Ͱ͖Δը໘ ૢ࡞ ߋ৽ ϓϩϑΟʔϧҰཡ ϝϯόʔհϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML
ੜ ΞϓϦέʔγϣϯαʔόʔ ͗͢ͳ͍ʁʁ
ແବʹ͔͔࣌ؒΓͦ͏ %#ͱ͔αʔόʔͷཧΓͨ͘ͳ͍
ಇ͖ͨ͘ͳ͍ʂʂ
GASΛͬͯ ؆୯ʹղܾͰ͖ΔΜ͡Όͳ͍ʁ
GASͱʁ ɾGoogle͕։ൃͨ͠εΫϦϓτϓϥοτϑΥʔϜ ɾεϓϨουγʔτͳͲͷυΩϡϝϯτͱ࿈ܞ͕Մೳ ɾdoPost, doGet ؔͰPOSTɺGETϦΫΤετ ɹΛॲཧͰ͖Δ ɾHTMLService Λར༻ͯ͠ɺHTMLฦ͢͜ͱ͕Ͱ͖Δ
=> ؆қతͳWebαʔόʔɺAPIαʔόʔͱͯ͑͠Δ
ϓϩϑΟʔϧΛฤू Ͱ͖Δը໘ ૢ࡞ ߋ৽ ϓϩϑΟʔϧҰཡ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML ΞϓϦέʔγϣϯαʔόʔ
ฤूը໘ΛͲ͏ʹ͔͢Δ
ૢ࡞ ߋ৽ ϓϩϑΟʔϧҰཡ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML ΞϓϦέʔγϣϯαʔόʔ Google Sheets
Λར༻
ૢ࡞ ߋ৽ ϓϩϑΟʔϧҰཡ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML ΞϓϦέʔγϣϯαʔόʔ DBΛͲ͏ʹ͔͢Δ
ૢ࡞ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML ΞϓϦέʔγϣϯαʔόʔ ɾDBͱͯ͠ར༻ ɾdoPost ؔͰAPIαʔόʔͱͯ͠ಈ࡞ APIαʔόʔ
ૢ࡞ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML ΞϓϦέʔγϣϯαʔόʔ ϓϩϑΟʔϧҰཡ ΞϓϦέʔγϣϯαʔόʔ ΛͲ͏ʹ͔͢Δ
ૢ࡞ ϓϩϑΟʔϧϖʔδ Ӿཡ ϓϩϑΟʔϧ HTML Webαʔόʔ ϓϩϑΟʔϧҰཡ ɾdoGetؔ + HTMLService
ɹͰHTMLΛฦ͢ ɾಈతͳHTMLͷੜ͕͍͠ ɾը໘ߏஙΛͲ͏͢Δ͔ʁ
ૢ࡞ ϓϩϑΟʔϧϖʔδ ʢSPAʣ Ӿཡ ੩తHTML Webαʔόʔ APIαʔόʔ ϓϩϑΟʔϧ ʢfetchͰऔಘʣ SPAʢγϯάϧϖʔδΞϓϦέʔγϣϯʣͰ࣮ͯ͠ϑϩϯτͰը໘Λߏங
SPAͰ࣮͢ΔͳΒ React ͍͍ͨ
ਓͱͯ͠ͷ͕͞ʢஊͰ͢ʣ
ૢ࡞ ϓϩϑΟʔϧϖʔδ ʢSPAʣ Ӿཡ ੩తHTML Webαʔόʔ APIαʔόʔ ϓϩϑΟʔϧ ʢajaxͰऔಘʣ ɹ੩తͳHTML͔͠ฦͤͳ͍
React Ͳ͏Έ͜͏ʁ SPAʢγϯάϧϖʔδΞϓϦέʔγϣϯʣͰ࣮ͯ͠ϑϩϯτͰը໘Λߏங
ϏϧυࡁΈ js, css શ෦ೖΓͷ ੩తHTML Λੜ 1. js, css ΛϏϧυɺόϯυϧ
ͯ͠ bunlde.js Λੜ 2. bundle.js Λ jantimon/html-webpack-pluginΛͬͯ HTMLʹΠϯϥΠϯల։ ΠϯϥΠϯల։ Ϗϧυ Ϗϧυ bundle.js
webpack.common.js
ΠϯϥΠϯʹల։
GASͷσϓϩΠ google/clasp Ͱ GAS ʹ ੩తHTML ΛσϓϩΠ What is clasp?
Google͕ެࣜͰఏڙ͍ͯ͠ΔCLIͰGASϓϩδΣΫτΛཧͰ͖Δπʔϧ GASͷө͜Ε͚ͩͰྃ
ૢ࡞ ϓϩϑΟʔϧϖʔδ ʢSPAʣ Ӿཡ ϓϩϑΟʔϧ ʢajaxͰऔಘʣ ੩తHTML Webαʔόʔ ϓϩϑΟʔϧҰཡ ࠷ऴߏ
ϩʔΧϧϏϧυ HTMLΛσϓϩΠ/clasp ͬͨͶʂ ʌ(ˏʈ˜ʈˏ)ů
·ͱΊ ɾGAS + SPA + Clasp ɹͰ͓खܰʹαʔόʔϨεͳ։ൃΛ࣮ݱͰ͖Δ ɾ؆୯ͳ͚ࣾͷΞϓϦέʔγϣϯͳΒίϨͰे ʢͨͩ૾Ҏ্ʹ͍ =>
ରࡦ͢Εૣ͘ͳΔ͔ʣ
͓ΘΓ