Fireabaseのサービスをざっと眺めた。すごいと思ったところだけを箇条書きでメモる。
Development
- FireStoreではクライアントとデータベースは、HTTP2でgPRC通信している。(FireBaseのRealtimeDBはだとWeb socketによる通信だった)
- Firebase ML (β)は、デバイスから直接GoogleのAPIを叩き、MLの結果を取得できる
- Firebase ML Kit は、on-device APIセット(MLモデルかアプリ内に載っているので、バックエンドとの通信が不要になるという認識)
- Firebase Cloud Function は、Cloud Functionのラッパーのイメージ
- Firebase Hostingは、静的ウェブサイトを、グローバルにCDNに簡単に展開できる。デフォルトでSSL証明書が自動でプロビジョニングできる。
- Firebase Cloud StorageのSDKは、ファイルをダウンロード中に通信が途切れた場合、通信が回復したら途中からダウンロードを再開できる。
Growth
- Cloud Messaging でpush通知を送信できる。トピックメッセージだと、特定のトピックをサブスクライブしているユーザー全てにpush通知が送信される。(サーバーサイドで自前で管理しなくて良くなる、例えばユーザーがあるトピックをアンスクライブするとしたら、それを明示的に自前のDBで管理する必要はなくなる)
- In-App messaging(β)を使うことで、ユーザーが実際にアプリを開いているときに重要なタイミングでメッセージを送信できる。
- AnalyticsやFirebase Predictionを使用することでパーソナライズができる
- Firebase Predictionsを使用して、チャーンの予測や購入者予測ができる
- Firebase remove config は、FirebaseのコンソールorAPI上で設定を切り替えることができる。
- 例えば、画面の色をだしわける、ABテストする、とかできる
- remote config personalization(α)を使えば、config parameterを自動的に選択して目的に合わせて最適化するところまでやってくれる
- Firebase Dynamic Liksを使用することで、Deeplink生成、トラッキング機能が使用できる
Quality
- Crashlyticsで、クラッシュ検知ができる。影響人数、影響ユーザーも簡単に確認できる
- Performanceで、パフォーマンスの監視、ボトルネックの同定
- 例えばキャッシュのヒット率といったカスタムのメトリックスを追加することも可能
- Test Labで実機検証。localeとかを設定できる。有償。
- App Distribution(β)でベータ版のアプリを特定のユーザー(テスター)のみがインストールできる。
- Clashlyticsと相性が良く、リリース前のクラッシュレポート作成もできる
Firebase Extensions
- extensionとしてアプリの機能をfirebase consoleからインストールできる。
- 有料。裏側で動いているgoogleのリソースに合わせて課金される。
- Stripeなど。
- 組織内で自前でextensionを開発し、privateなものとして使用することもできる。
その他
- Firebaseに強く実装が依存するのは良くないので、アプリケーションアーキテクチャーを気にしつつfirebseを活用しよう。