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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kenji Kawanobe
September 07, 2022
160
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
240
Development of LINEBot for predicting bicycle theft using open data!!
kenji7157
0
150
自転車盗難推測Botの開発
kenji7157
0
26
Featured
See All Featured
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
71
40k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
250
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
770
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Accessibility Awareness
sabderemane
1
130
Marketing to machines
jonoalderson
1
5.4k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Ethics towards AI in product and experience design
skipperchong
2
300
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
380
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
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