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
Serverless SPA development starting with Angular
Search
Haruna Oka
July 03, 2020
Programming
3.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Serverless SPA development starting with Angular
フロント知識0から始めるサーバーレスSPA開発
フロントもバックエンドもフルスタックに爆速で開発していくための、Angularの使い方や勘所を解説します。
Haruna Oka
July 03, 2020
More Decks by Haruna Oka
See All by Haruna Oka
AWS AppSyncと仲良くするためのTips
okaharuna
1
200
Next.js × AWS App Runner × AWS AppSyncで進めるクライアントファーストのWEB開発
okaharuna
7
6.3k
re:Growth 2020 Serverless
okaharuna
2
1.4k
EventBridgeでAWSとShopifyの統合
okaharuna
2
6.3k
serverlessdaysfukuoka_oka.pdf
okaharuna
1
2.3k
SPA×Auth0
okaharuna
5
2.1k
Fargate_Super_Introduction.pdf
okaharuna
2
3.3k
Other Decks in Programming
See All in Programming
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.3k
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
270
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
290
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
410
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
200
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
160
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
260
技術的負債解消で開発者の未来を開く- AIの力でコード刷新
kmd2kmd
0
110
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
550
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
250
スマートグラスで並列バイブコーディング
hyshu
0
150
TSKaigi Night Talks 2026_TypeScriptでサプライチェーンの整合性を型に閉じ込める
geekplus_tech
0
400
Featured
See All Featured
Side Projects
sachag
455
43k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
390
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
730
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
160
Technical Leadership for Architectural Decision Making
baasie
3
420
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Color Theory Basics | Prateek | Gurzu
gurzu
0
370
Designing Powerful Visuals for Engaging Learning
tmiket
1
420
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
230
Transcript
"OHVMBSʷ"84 $9ࣄۀຊ෦Ԭय़ಸ ϑϩϯτ͔ࣝΒ࢝ΊΔ αʔόʔϨε41"։ൃ
ࣗݾհ Ԭय़ಸ $MBTTNFUIPE *OD $9#VTJOFTT%JW."%5FBN ˏ0LB)BSVOB αʔόʔαΠυαʔόʔϨε
ຊͷΞδΣϯμ "OHVMBSͷಛ पลπʔϧɾ։ൃલͷ४උ ։ൃ࣌ͷϙΠϯτ ʲ׆༻ྫʳ%FWFMPQFST*0$"'&ཧը໘
ओͳରͷํ ϑϩϯτΛ࣮ͨ͜͠ͱ͕ͳ͍ "OHVMBSΛͬͨ͜ͱ͕ͳ͍ 5ZQFTDSJQUɺ͘͠+BWBTDSJQU͔Δ όοΫΤϯυϑϩϯτ։ൃ͍ͨ͠
+4ϑϨʔϜϫʔΫͷҙࣝɺؔ৺ɺຬͷϥϯΩϯά
"OHVMBS+4ϦϦʔε
"OHVMBSϦϦʔε
"OHVMBS+4
"OHVMBS+4 "OHVMBS
"OHVMBS+4 "OHVMBS 5ZQFTDSJQU +BWBTDSJQU ɾɾɾ ɾɾɾ
+4ϑϨʔϜϫʔΫͷҙࣝɺؔ৺ɺຬͷϥϯΩϯά
+4ϑϨʔϜϫʔΫͷҙࣝɺؔ৺ɺຬͷϥϯΩϯά "OHVMBSͱ"OHVMBS+4͕ࠞಉ͞Ε͍ͯΔ!
"OHVMBS ʹ"OHVMBS͕ϦϦʔε͞Ε·ͨ͠ʂ"
"OHVMBS
"OHVMBSͷಛ 5ZQFTDSJQUඪ४ ϑϧελοΫϑϨʔϜϫʔΫ ίϯϙʔωϯτࢦΞʔΩςΫνϟ ํόΠϯσ Οϯά "OHVMBS$-*
OHOFX"OHVMBSΞϓϦͷ࡞ OHHίϯϙʔωϯτͷ࡞ SPVUF TFSWJDF QJQFT OHTFSWFϩʔΧϧαʔόʔͷىಈ OHUFTU&&ςετ OHMJOU-JOUͷద༻
"OHVMBS$-*ͰͰ͖Δ͜ͱ
OHOFX"OHVMBSΞϓϦͷ࡞ OHHίϯϙʔωϯτͷ࡞ SPVUF TFSWJDF QJQFT OHTFSWFϩʔΧϧαʔόʔͷىಈ OHUFTU&&ςετ OHMJOU-JOUͷద༻
"OHVMBS.BUFSJBM
"OHVMBSͰ18" ؆୯ $ ng add @angular/pwa —project prj-name $
ng generate app-shell (ҙ)
"OHVMBSͰ443 αʔόʔαΠυϨϯμϦϯά "OHVMBS6OJWFSTBMΛ͏ͱ؆୯ʹͰ͖Δ $ ng add @nguniversal/express-engine $ npm
run dev:ssr ෦తʹ/PEF+4FYQSFTTͰ࣮ߦ͞ΕΔ
ϞόΠϧΞϓϦ ϞόΠϧΞϓϦҰॹʹఏڙ͢Δ߹ /BUJWF4DSJQUΛ͓͏
/BUJWF4DSJQU
8&#ϗεςΟϯά (JUIVC$PEF$PNNJUΛ࿈ܞͯ͠$*$%ڥ͕࡞ΕΔ ϏϧυઃఆʹΑͬͯ"OHVMBSͷ&&ςετ࣮ߦͰ͖·͢ ΧελϜυϝΠϯઃఆՄೳ $034Λ͍͍ͨ߹$MPVE'SPOU 4ʹ͠Α͏ "NQMJGZ$POTPMFΛ͓͏
͜͜·Ͱ "OHVMBSͷجຊΘ͔͚ͬͨͲɺ ࣮ࡍͲ͏։ൃ͍͚͍͍ͯ͠ʁ
ॳظඋ ୯ମςετLBSNB &&QSPUSBDUPS -JOU54-JOU
͓͢͢Ίඋ ୯ମςετ+FTU &&$ZQSFTT $444BTT ΞϓϦ࡞࣌ʹબՄೳ -JOU&4-JOU ϑΥʔϚολʔ1SFUUJFS
͓͢͢Ίඋ ୯ମςετ+FTU &&$ZQSFTT $444BTT ΞϓϦ࡞࣌ʹબՄೳ -JOU&4-JOU˞ެࣜαϙʔτ·ͩ ϑΥʔϚολʔ1SFUUJFS
όοΫΤϯυ5ZQFTDSJQUʹ ϑϩϯτόοΫΤϯυ5ZQFTDSJQUͰ౷Ұ͢Δ͜ͱͰ อकੑ։ൃޮ্͕Δ
ϑΥϧμߏ DPSFɾɾɾೝূϞδϡʔϧαʔόʔ௨৴Λߦ͏αʔϏε܈ TIBSFEɾɾɾڞ௨Ͱ͏ίϯϙʔωϯτσ ΟϨΫςΟϒ GFBUVSFɾɾɾ֤ը໘ͷίϯϙʔωϯτ TSDBQQ
3Y+4ͱʁ ϦΞΫςΟϒɾϓϩάϥϛϯά༻ͷϥΠϒϥϦ
SYKTΠϕϯτॲཧͷྫ ϚεΫϦοΫ͔Β0CTFSWBCMFΛ࡞ import { fromEvent } from ‘rxjs’; ngOnInit():
void { const click$ = fromEvent(document, 'click'); click$.subscribe(evt => console.log(evt)); }
SYKTΠϕϯτॲཧͷྫ ϚεΫϦοΫ͔Β0CTFSWBCMFΛ࡞ import { fromEvent } from ‘rxjs’; ngOnInit():
void { const click$ = fromEvent(document, 'click'); click$.subscribe(evt => console.log(evt)); }
SYKTඇಉظॲཧͷྫ 1SPNJTF͔Β0CTFSWBCMFΛ࡞ JNQPSU\GSPN^GSPNbSYKT DPOTUEBUBGSPN GFUDI BQJFOEQPJOU EBUBTVCTDSJCF \
OFYU SFTQPOTF \DPOTPMFMPH SFTQPOTF ^ FSSPS FSS \DPOTPMFFSSPS &SSPS FSS ^ DPNQMFUF \DPOTPMFMPH $PNQMFUFE ^ ^
%FWFMPQFST*0$"'&ͷཧը໘
%FWFMPQFST*0$"'&ͷػೳ จཧ ཧ ച্ूܭɾ$47ΤΫεϙʔτ Ϋʔϙϯཧ ళฮελοϑ ֤ηϯαʔͷઃఆ ళฮͷՃɾઃఆ Ϣʔβʔݕࡧɾઃఆ
"ENJOݖݶ
%FWFMPQFST*0$"'&ͷػೳ จཧ ཧ ച্ूܭɾ$47ΤΫεϙʔτ Ϋʔϙϯཧ ళฮελοϑ ֤ηϯαʔͷઃఆ ళฮͷՃɾઃఆ Ϣʔβʔݕࡧɾઃఆ
"ENJOݖݶ #SPVUFSͷ$BO"DUJWBUFΛͬͯΞΫηε੍ޚ
͓͢͢Ίͷֶशࡐྉ "OHVMBSελΠϧΨΠυ 5ZQFTDSJQU%FFQ%JWF IUUQTBOHVMBSJPHVJEFTUZMFHVJEF IUUQTCBTBSBUHJUCPPLJPUZQFTDSJQU