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
Nuxt.jsとFirebaseで個人開発した話
Search
Kenji Kawanobe
September 07, 2022
170
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
250
Development of LINEBot for predicting bicycle theft using open data!!
kenji7157
0
160
自転車盗難推測Botの開発
kenji7157
0
28
Featured
See All Featured
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
380
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Amusing Abliteration
ianozsvald
1
250
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
430
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Ethics towards AI in product and experience design
skipperchong
2
340
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
170
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
470
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
370
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
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