Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Nuxt.jsとFirebaseで個人開発した話
Search
Kenji Kawanobe
September 07, 2022
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Nuxt.jsとFirebaseで個人開発した話
Kenji Kawanobe
September 07, 2022
More Decks by Kenji Kawanobe
See All by Kenji Kawanobe
「こわくない」Vuetifyで始めるOSSコントリビュート
kenji7157
1
260
Development of LINEBot for predicting bicycle theft using open data!!
kenji7157
0
170
自転車盗難推測Botの開発
kenji7157
0
31
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
490
Unsuck your backbone
ammeep
672
58k
Balancing Empowerment & Direction
lara
6
1.3k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.3k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
300
Building Adaptive Systems
keathley
44
3.2k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
How STYLIGHT went responsive
nonsquared
100
6.3k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
570
Transcript
Nuxt.jsとFirebaseで 個人開発した話 2022/09/8 フロントエンドLT会 vol.8
kenji7157 (kawanobe kenji) SoftwareEngineer #ENECHANGE #Vue #Nuxt #Firebase #GCP #最近React
Twitter: @kenji7157 Github: @kenji7157
ENECHANGE
ENECHANGE
アジェンダ 1. 個人開発で作ったもの 2. 使用技術 3. その他 a. レスポンシブ対応 #Vuetify
b. OGP画像対応 #Nuxt.js #Firebase Functions
1. 作ったもの
技術記事投稿サービス ~Ticketnote~ QiitaやZennのような技術記事投稿サービス もちろん無料です。(広告なしです。)
技術記事投稿サービス ~Ticketnote~ ticketnote 検索
2. 使用技術
使用技術 • フロント:#Nuxt.js #TypeScript #Vuetify • バック:#Firebase Functions #Node.js •
認証:#Firebase Authentification • DB:#Firestore #Algoria(Firebase Extensions) • ストレージ:#Firebase Storage • ホスティング:#Firebase Hsoting #Google App Engine
None
Vuetify #レスポンシブ対応
レスポンシブ対応 • モバイルも考慮したUI • Vuetify …UIフレームワーク • https://next.vuetifyjs.com/
Vuetify レスポンシブ対応 <template> <v-toolbar> <v-app-bar-nav-icon></v-app-bar-nav-icon> <v-toolbar-title>ツールバータイトル</v-toolbar-title> <v-spacer></v-spacer> <v-btn > ツールバーボタン
</v-btn> <v-btn icon> <v-icon>mdi-heart</v-icon> </v-btn> </v-toolbar> </template>
Vuetify レスポンシブ対応 <template> <v-toolbar> <v-app-bar-nav-icon></v-app-bar-nav-icon> <v-toolbar-title>ツールバータイトル</v-toolbar-title> <v-spacer></v-spacer> <v-btn v-if="!$vuetify.breakpoint.xs"> ツールバーボタン
</v-btn> <v-btn icon> <v-icon>mdi-heart</v-icon> </v-btn> </v-toolbar> </template>
OGP対応 #Nuxt.js #Firebase Functions
OGP • OGP…Open Graph Protcol • FacebookやTwitterにタイトルや本文、画 像、URLなどの情報を任意で表示させる HTML要素
Nuxt.jsでOGPを設定 • head()関数で設定可能 ◦ https://nuxtjs.org/docs/features/ configuration#local-settings • og:imageで画像URLを指定することによっ て、ページURLを共有する際に画像を表示 できる
◦ 画像はどうやって生成するの? <script> export default { head() { return { meta: [ { hid: 'og:description', property: 'og:description', content: '説明' }, { hid: 'og:url', property: 'og:url', content: 'ページURL' }, { hid: 'og:image', property: 'og:image', content: '画像URL' }, ] } } }; </script>
Firebase Functions で OGP用の画像生成 • 記事投稿時にFirebase Functionsを実行 ◦ Firebase FunctionsでOGP用の画像を生成
▪ canvasを利用して画像生成 • https://github.com/Automattic/node-canvas ▪ 生成した画像はFirebase Storageに保存 ▪ 保存先URLを投稿ごとに管理できるようFirestoreに登録 • 各投稿ページのSSR時に、Firestoreに登録されたURLをOGPに設定
Twiiter Slack
Vue fes 2022
ENECHANGE We are hiring!!! https://www.wantedly.com/companies/enechange