SlideShare a Scribd company logo
1 of 21
Firebaseではじめる
サーバレスSPA開発
話すこと
1. Firebaseとは?
2. 実際に使ってみた
3. 仕事での活用シーン
Firebaseとは?
概要
Googleが提供する「Mobile Backend as a Service(mBaaS)」と呼ばれるモ
バイルアプリ開発者向けのサービス。
ざっくりいうと、
「インフラ環境構築やサーバーサイドの処理をぜんぶGoogleがやってく
れるので、フロントだけ頑張れば誰でもアプリが作れてしまう」
というサービスです。
無料プラン、定額プラン、従量課金プランがあります。
提供されるサービス(抜粋)
● Authentication(認証/ユーザー管理)
● Realtime Database / Cloud Firestore(データベース)
● Cloud Storage(ファイルストレージ)
● Hosting(レンタルサーバーのようなもの)
● Cloud Functions(イベントの監視、backgroundで処理実行)
ほかにも便利なサービスがたくさんありますが、
とりあえずこれだけ知っていればWebサービスが作れます 🎉
提供されるサービス(抜粋)
● Authentication(認証/ユーザー管理)
● Realtime Database / Cloud Firestore(データベース)
● Cloud Storage(ファイルストレージ)
● Hosting(レンタルサーバーのようなもの)
● Cloud Functions(イベントの監視、backgroundで処理実行)
データベース周りについて少し掘り下げます。
データベース
Firebaseには2種類のDBが存在します。
従来の「Realtime Database」
と
次世代の「Firestore」
Realtime Databaseの特徴
● 接続されているすべてのクライアントでデータの保存と同期を
リアルタイムで実行
● データを一つのJSONツリーとして保存するため非常にシンプル
● 動作が安定しており、頻繁な状態同期にも耐えうる設計
● データ構造がシンプルすぎるため、複雑なデータ保存には不向き
● クエリ(データのソートなど)が貧弱
● スケーリングは手動で設定する必要がある
シンプルかつ頻繁に書き込みが行われるプロダクト向き
Firestoreの特徴
● データのリアルタイム同期機能はそのまま、パフォーマンス向上
● データを「コレクション」「ドキュメント」という親子関係で保存できるた
め、階層的なデータ構造を組みやすい
● 複雑なクエリ(複合クエリ)も実行可能
● スケーリングは自動で行われる
● ベータ版のため安定性は保証できない
● データ書き込みが1秒間に2回までという制限が設けられている
データ同期が頻繁に発生しなければ、基本的にこちらを採用したほうが良い
Realtime Database
Firestore
セキュリティルール
FirebaseのDBを利用するうえで重要になってくる機能。
DBへの書き込み/読み取り権限を設定できたり、
特定の条件下でしかアクセスできないように設定することができる。
例:
ユーザーが認証を完了している
場合のみ書き込みを許可する
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth.uid != null;
}
}
}
各種サービスの連携イメージ
ユーザー
OAuth認証 Realtime Database
Cloud Firestore
Cloud Functions
認証結果を返す
DB内のデータを配信する
メディア(画像や動画など)を配信する
Cloud Storage
実際に使ってみた
https://tapbox.app/
使った技術
Authentication ... Twitter認証、ユーザー管理
Firestore ... データ保存、読み取り
Cloud Storage ... メディア保存、読み取り
Hosting ... アプリの配信
Vue.js + Vuex + Vue-router ... アプリの構築
感想
● フロント実装だけに集中できるので開発スピード爆速(実働2日くらい)
● FirebaseのCLIツールが優秀なので導入もデプロイも割とラク
● 問題が発生しても日本語ドキュメント(公式)が充実しているので、読めばだ
いたい解決できた
● セキュリティルールを理解するのに時間がかかった
● DBが単独のツリー構造なので大規模なアプリケーションを作るのには苦労し
そうな感じ
● プロトタイプの開発などに向いているかも?
仕事での活用シーン
例えば...
オンラインチャット
- リアルタイム性、プッシュ通知、ログインの状態管理など主要機能は揃って
いるので相性抜群!
ブログシステム
- 簡易的なものであればサクッと作れる!
- Cloud Functionsを使えばNode.jsも動かせるので、Nuxt.jsなどSSR(サー
バーサイドレンダリング)も可能。
Firebase案件ありましたらぜひ@kokushinまで🙇
Good is good.
We provide opportunities to the SEKAI by fusing technology and ideas.
テクノロジーとクリエイティブでセカイをより良くする
のこと

More Related Content

What's hot

Azure Service Fabric 概要
Azure Service Fabric 概要Azure Service Fabric 概要
Azure Service Fabric 概要Daiyu Hatakeyama
 
[MW05] その API、本当に大丈夫? ~ 公開前に知っておくべき API の保護と最適化 ~
[MW05] その API、本当に大丈夫? ~ 公開前に知っておくべき API の保護と最適化 ~[MW05] その API、本当に大丈夫? ~ 公開前に知っておくべき API の保護と最適化 ~
[MW05] その API、本当に大丈夫? ~ 公開前に知っておくべき API の保護と最適化 ~de:code 2017
 
Real World Cloud Architectures ~CDPの概念と実装~
Real World Cloud Architectures ~CDPの概念と実装~Real World Cloud Architectures ~CDPの概念と実装~
Real World Cloud Architectures ~CDPの概念と実装~statemachine
 
社内システムの構造と設計、実装のはなし(下書きバージョン)
社内システムの構造と設計、実装のはなし(下書きバージョン)社内システムの構造と設計、実装のはなし(下書きバージョン)
社内システムの構造と設計、実装のはなし(下書きバージョン)SATOSHI TAGOMORI
 
サーバーレスアーキテクチャで作るモバイルバックエンド
サーバーレスアーキテクチャで作るモバイルバックエンドサーバーレスアーキテクチャで作るモバイルバックエンド
サーバーレスアーキテクチャで作るモバイルバックエンドTsukasa Kato
 
はじめよう Azure Functions
はじめよう Azure Functionsはじめよう Azure Functions
はじめよう Azure Functions一希 大田
 
【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ
【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ
【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころKazumi IWANAGA
 
App013 ここはあえて紙と
App013 ここはあえて紙とApp013 ここはあえて紙と
App013 ここはあえて紙とTech Summit 2016
 
詳説 Data api mtddc 拡張版 v3対応
詳説 Data api mtddc 拡張版   v3対応詳説 Data api mtddc 拡張版   v3対応
詳説 Data api mtddc 拡張版 v3対応Yuji Takayama
 

What's hot (12)

Azure Service Fabric 概要
Azure Service Fabric 概要Azure Service Fabric 概要
Azure Service Fabric 概要
 
[MW05] その API、本当に大丈夫? ~ 公開前に知っておくべき API の保護と最適化 ~
[MW05] その API、本当に大丈夫? ~ 公開前に知っておくべき API の保護と最適化 ~[MW05] その API、本当に大丈夫? ~ 公開前に知っておくべき API の保護と最適化 ~
[MW05] その API、本当に大丈夫? ~ 公開前に知っておくべき API の保護と最適化 ~
 
Real World Cloud Architectures ~CDPの概念と実装~
Real World Cloud Architectures ~CDPの概念と実装~Real World Cloud Architectures ~CDPの概念と実装~
Real World Cloud Architectures ~CDPの概念と実装~
 
社内システムの構造と設計、実装のはなし(下書きバージョン)
社内システムの構造と設計、実装のはなし(下書きバージョン)社内システムの構造と設計、実装のはなし(下書きバージョン)
社内システムの構造と設計、実装のはなし(下書きバージョン)
 
サーバーレスアーキテクチャで作るモバイルバックエンド
サーバーレスアーキテクチャで作るモバイルバックエンドサーバーレスアーキテクチャで作るモバイルバックエンド
サーバーレスアーキテクチャで作るモバイルバックエンド
 
はじめよう Azure Functions
はじめよう Azure Functionsはじめよう Azure Functions
はじめよう Azure Functions
 
6 月 18 日 Next - Cloud Networking
6 月 18 日 Next - Cloud Networking6 月 18 日 Next - Cloud Networking
6 月 18 日 Next - Cloud Networking
 
[Japan Tech summit 2017] MAI 002
[Japan Tech summit 2017]  MAI 002[Japan Tech summit 2017]  MAI 002
[Japan Tech summit 2017] MAI 002
 
【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ
【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ
【NLU祭り 場外編】コミュニケーションをより身近に、よりかしこく。LUIS と Azure AI サービスの使いどころ
 
20170705 apiをつくろう
20170705 apiをつくろう20170705 apiをつくろう
20170705 apiをつくろう
 
App013 ここはあえて紙と
App013 ここはあえて紙とApp013 ここはあえて紙と
App013 ここはあえて紙と
 
詳説 Data api mtddc 拡張版 v3対応
詳説 Data api mtddc 拡張版   v3対応詳説 Data api mtddc 拡張版   v3対応
詳説 Data api mtddc 拡張版 v3対応
 

Similar to FirebaseではじめるサーバレスSPA開発

Firebase Authentication使ってみた.pptx
Firebase Authentication使ってみた.pptxFirebase Authentication使ってみた.pptx
Firebase Authentication使ってみた.pptxssuserbf0fbd
 
第12回rest勉強会 これまでの補足・展望編
第12回rest勉強会 これまでの補足・展望編第12回rest勉強会 これまでの補足・展望編
第12回rest勉強会 これまでの補足・展望編ksimoji
 
Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発Yuki Hattori
 
なるほどわかった!App Service on Linux
なるほどわかった!App Service on Linuxなるほどわかった!App Service on Linux
なるほどわかった!App Service on LinuxYasuaki Matsuda
 
ここが良かったDatadog
ここが良かったDatadogここが良かったDatadog
ここが良かったDatadogtyamane
 
サーバーレスの話
サーバーレスの話サーバーレスの話
サーバーレスの話真吾 吉田
 
Microsoft Azure 概要 (2015 年 4 月版)
Microsoft Azure 概要 (2015 年 4 月版)Microsoft Azure 概要 (2015 年 4 月版)
Microsoft Azure 概要 (2015 年 4 月版)Osamu Monoe
 
Circle of Code with Cloud Foundry
Circle of Code with Cloud FoundryCircle of Code with Cloud Foundry
Circle of Code with Cloud FoundryTomohiro Ichimura
 
Google App Engine Java 入門
Google App Engine Java 入門Google App Engine Java 入門
Google App Engine Java 入門tantack
 
Mobile Backend Starterを使ってサクサクアプリ開発
Mobile Backend Starterを使ってサクサクアプリ開発Mobile Backend Starterを使ってサクサクアプリ開発
Mobile Backend Starterを使ってサクサクアプリ開発Katsumi Honda
 
Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩健一 辰濱
 
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天Hiro Yoshioka
 
Herokuのオートスケール addon 「Bounscale」@第4回 OSS運用管理勉強会
Herokuのオートスケール addon 「Bounscale」@第4回 OSS運用管理勉強会Herokuのオートスケール addon 「Bounscale」@第4回 OSS運用管理勉強会
Herokuのオートスケール addon 「Bounscale」@第4回 OSS運用管理勉強会Shota Onishi
 
Web appsとcleardbで作る簡単webサイト
Web appsとcleardbで作る簡単webサイトWeb appsとcleardbで作る簡単webサイト
Web appsとcleardbで作る簡単webサイトTsukasa Kato
 
GRAND FRONTEND OSAKA 2016 kintone説明
GRAND FRONTEND OSAKA 2016 kintone説明GRAND FRONTEND OSAKA 2016 kintone説明
GRAND FRONTEND OSAKA 2016 kintone説明Yoshihiko Takeuchi
 
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践真吾 吉田
 
Firebase Summit 2019 Recap
Firebase Summit 2019 RecapFirebase Summit 2019 Recap
Firebase Summit 2019 Recap健一 辰濱
 
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発Ryohei Sogo
 

Similar to FirebaseではじめるサーバレスSPA開発 (20)

Firebase Authentication使ってみた.pptx
Firebase Authentication使ってみた.pptxFirebase Authentication使ってみた.pptx
Firebase Authentication使ってみた.pptx
 
第12回rest勉強会 これまでの補足・展望編
第12回rest勉強会 これまでの補足・展望編第12回rest勉強会 これまでの補足・展望編
第12回rest勉強会 これまでの補足・展望編
 
Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発Azure serverless!! azure functionsでサーバーを意識しない開発
Azure serverless!! azure functionsでサーバーを意識しない開発
 
なるほどわかった!App Service on Linux
なるほどわかった!App Service on Linuxなるほどわかった!App Service on Linux
なるほどわかった!App Service on Linux
 
Firebase hands on_#1
Firebase hands on_#1Firebase hands on_#1
Firebase hands on_#1
 
ここが良かったDatadog
ここが良かったDatadogここが良かったDatadog
ここが良かったDatadog
 
サーバーレスの話
サーバーレスの話サーバーレスの話
サーバーレスの話
 
Microsoft Azure 概要 (2015 年 4 月版)
Microsoft Azure 概要 (2015 年 4 月版)Microsoft Azure 概要 (2015 年 4 月版)
Microsoft Azure 概要 (2015 年 4 月版)
 
Circle of Code with Cloud Foundry
Circle of Code with Cloud FoundryCircle of Code with Cloud Foundry
Circle of Code with Cloud Foundry
 
Google App Engine Java 入門
Google App Engine Java 入門Google App Engine Java 入門
Google App Engine Java 入門
 
楽天エンジニアライフ
楽天エンジニアライフ楽天エンジニアライフ
楽天エンジニアライフ
 
Mobile Backend Starterを使ってサクサクアプリ開発
Mobile Backend Starterを使ってサクサクアプリ開発Mobile Backend Starterを使ってサクサクアプリ開発
Mobile Backend Starterを使ってサクサクアプリ開発
 
Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩Firebase Extensions はじめの一歩
Firebase Extensions はじめの一歩
 
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
 
Herokuのオートスケール addon 「Bounscale」@第4回 OSS運用管理勉強会
Herokuのオートスケール addon 「Bounscale」@第4回 OSS運用管理勉強会Herokuのオートスケール addon 「Bounscale」@第4回 OSS運用管理勉強会
Herokuのオートスケール addon 「Bounscale」@第4回 OSS運用管理勉強会
 
Web appsとcleardbで作る簡単webサイト
Web appsとcleardbで作る簡単webサイトWeb appsとcleardbで作る簡単webサイト
Web appsとcleardbで作る簡単webサイト
 
GRAND FRONTEND OSAKA 2016 kintone説明
GRAND FRONTEND OSAKA 2016 kintone説明GRAND FRONTEND OSAKA 2016 kintone説明
GRAND FRONTEND OSAKA 2016 kintone説明
 
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
サーバー管理よ、サヨウナラ。サーバーレス アーキテクチャの意義と実践
 
Firebase Summit 2019 Recap
Firebase Summit 2019 RecapFirebase Summit 2019 Recap
Firebase Summit 2019 Recap
 
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
企業向けmBaaS「AppPot」を使ったサーバー開発なしの高速モバイルアプリ開発
 

More from GIG inc.

LT38テーマ3-2
LT38テーマ3-2LT38テーマ3-2
LT38テーマ3-2GIG inc.
 
LT38テーマ3-1
LT38テーマ3-1LT38テーマ3-1
LT38テーマ3-1GIG inc.
 
LT38テーマ2-2
LT38テーマ2-2LT38テーマ2-2
LT38テーマ2-2GIG inc.
 
LT38テーマ2-1
LT38テーマ2-1LT38テーマ2-1
LT38テーマ2-1GIG inc.
 
LT38テーマ1-2
LT38テーマ1-2LT38テーマ1-2
LT38テーマ1-2GIG inc.
 
LT38テーマ1-1
LT38テーマ1-1LT38テーマ1-1
LT38テーマ1-1GIG inc.
 
lt23後半
lt23後半lt23後半
lt23後半GIG inc.
 
lt23前半
lt23前半lt23前半
lt23前半GIG inc.
 
LT.22 GitHub Actionsを触ってみた話
LT.22 GitHub Actionsを触ってみた話LT.22 GitHub Actionsを触ってみた話
LT.22 GitHub Actionsを触ってみた話GIG inc.
 
LT.22 機械学習におけるPDCAを回せる環境構築の話
LT.22 機械学習におけるPDCAを回せる環境構築の話 LT.22 機械学習におけるPDCAを回せる環境構築の話
LT.22 機械学習におけるPDCAを回せる環境構築の話 GIG inc.
 
LT.21 SPIN法を活用した人心掌握術
LT.21 SPIN法を活用した人心掌握術LT.21 SPIN法を活用した人心掌握術
LT.21 SPIN法を活用した人心掌握術GIG inc.
 
LT.21 スゴいチームになるフィードバック術
LT.21 スゴいチームになるフィードバック術LT.21 スゴいチームになるフィードバック術
LT.21 スゴいチームになるフィードバック術GIG inc.
 
LT.20 コーディングとマジックナンバー
LT.20 コーディングとマジックナンバーLT.20 コーディングとマジックナンバー
LT.20 コーディングとマジックナンバーGIG inc.
 
LT.20 Wordpress x nuxt.jsで実現するSPA
LT.20 Wordpress x nuxt.jsで実現するSPALT.20 Wordpress x nuxt.jsで実現するSPA
LT.20 Wordpress x nuxt.jsで実現するSPAGIG inc.
 
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」GIG inc.
 
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
 【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」 【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」GIG inc.
 

More from GIG inc. (20)

Lt41
Lt41Lt41
Lt41
 
Lt40
Lt40Lt40
Lt40
 
Lt39
Lt39Lt39
Lt39
 
LT38テーマ3-2
LT38テーマ3-2LT38テーマ3-2
LT38テーマ3-2
 
LT38テーマ3-1
LT38テーマ3-1LT38テーマ3-1
LT38テーマ3-1
 
LT38テーマ2-2
LT38テーマ2-2LT38テーマ2-2
LT38テーマ2-2
 
LT38テーマ2-1
LT38テーマ2-1LT38テーマ2-1
LT38テーマ2-1
 
LT38テーマ1-2
LT38テーマ1-2LT38テーマ1-2
LT38テーマ1-2
 
LT38テーマ1-1
LT38テーマ1-1LT38テーマ1-1
LT38テーマ1-1
 
lt37
lt37lt37
lt37
 
lt23後半
lt23後半lt23後半
lt23後半
 
lt23前半
lt23前半lt23前半
lt23前半
 
LT.22 GitHub Actionsを触ってみた話
LT.22 GitHub Actionsを触ってみた話LT.22 GitHub Actionsを触ってみた話
LT.22 GitHub Actionsを触ってみた話
 
LT.22 機械学習におけるPDCAを回せる環境構築の話
LT.22 機械学習におけるPDCAを回せる環境構築の話 LT.22 機械学習におけるPDCAを回せる環境構築の話
LT.22 機械学習におけるPDCAを回せる環境構築の話
 
LT.21 SPIN法を活用した人心掌握術
LT.21 SPIN法を活用した人心掌握術LT.21 SPIN法を活用した人心掌握術
LT.21 SPIN法を活用した人心掌握術
 
LT.21 スゴいチームになるフィードバック術
LT.21 スゴいチームになるフィードバック術LT.21 スゴいチームになるフィードバック術
LT.21 スゴいチームになるフィードバック術
 
LT.20 コーディングとマジックナンバー
LT.20 コーディングとマジックナンバーLT.20 コーディングとマジックナンバー
LT.20 コーディングとマジックナンバー
 
LT.20 Wordpress x nuxt.jsで実現するSPA
LT.20 Wordpress x nuxt.jsで実現するSPALT.20 Wordpress x nuxt.jsで実現するSPA
LT.20 Wordpress x nuxt.jsで実現するSPA
 
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(DONGURI)」
 
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
 【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」 【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
【Tech Trend Talk vol.19】社外向け勉強会「拡張するデザイン -(GIG)」
 

FirebaseではじめるサーバレスSPA開発

Editor's Notes

  1. 具体的な例: いいねボタンやチャットなど