Firebase Remote Config では、いつ、どのようにサーバーから新しい値をフェッチしてアプリで有効にするかを管理できるため、表示される構成を変更するタイミングを制御して、質の高いエンドユーザー エクスペリエンスを確保できます。このガイドでは 3 つの読み込み方法を紹介し、アプリに最適なオプションを選択する際の主な考慮事項について説明します。
方法 1: 値をフェッチして読み込み時に有効にする
この方法では、アプリの初回起動時に fetchAndActivate()
を呼び出して Remote Config から新しい値をフェッチし、値の読み込みが完了すると同時に有効にします。このシンプルなアプローチは、構成変更後に UI の表示が大幅に変化しない場合に適しています。ユーザーが UI を使用しているときに UI が明らかに変化するような状況では、この方法は使用しないでください。
方法 2: 読み込み画面の表示中に有効にする
方法 1 で発生する可能性がある UI の問題の解決策として、読み込み画面を利用できます。アプリをすぐに起動する代わりに、読み込み画面を表示して、完了ハンドラで fetchAndActivate
を呼び出します。その直後に、もう一度コールバックまたは通知を使用して読み込み画面を閉じてから、ユーザーがアプリの操作を開始できるようにします。
この方法を使用する場合は、読み込み画面にタイムアウトを追加することをおすすめします。Remote Config の 1 分間のタイムアウトでは、アプリの起動に関して質の高いユーザー エクスペリエンスを提供するには長すぎる場合があるためです。
方法 3: 次回の起動時に新しい値を読み込む
これは、新しい構成値を読み込み、アプリの次回の起動時に有効にする効果的な方法です。この方法では、アプリは起動時にフェッチした値を有効にしてから、新しい値のフェッチを試行します。つまり、新しい構成値はフェッチ済みであるものの、まだ有効になっていないという前提に基づいて動作します。この方法でのオペレーションの順序は次のとおりです。
- 起動時に、以前にフェッチした値をすぐに有効にします。これにより、以前のセッションでサーバーからダウンロードした値がすぐに適用されます。
- ユーザーがアプリを操作しているときに、デフォルトの最小フェッチ間隔に基づく非同期の呼び出しを開始し、新しい値をフェッチします。
- フェッチ呼び出しの完了ハンドラまたは完了コールバックでは、何の処理も行いません。ダウンロードした値は、次回のアプリ起動時に有効にするまでアプリで保持されます。
この方法では、ユーザーの待機時間が大幅に短縮されます。ただし、最新の構成を表示するには、ユーザーはアプリを 2 回実行する必要があります。これらの考慮事項とビジネスおよびアプリのロジックとのバランスを考慮する必要があります。
回避すべき読み込み方法
読み込みに関する長所と短所を説明しましたが、避けるべき使用パターンがいくつかあります。
- ユーザーが UI を表示または操作している間は、UI に関連する更新や切り替えは行わない。ただし、終了したプロモーションに関連するオプションを削除するなど、アプリやビジネスに関するやむを得ない理由がある場合は、この限りではありません。
- 大量のフェッチ リクエストを同時に送信しない。サーバーでアプリがスロットル処理される恐れがあります。これが発生するリスクは、ほとんどの本番環境では低いものの、開発中に問題になる可能性があります。Android および Apple プラットフォームのスロットル処理のガイダンスをご覧ください。
- Remote Config の値を取得するためにネットワーク接続に依存しない。アプリ内デフォルト パラメータ値を設定して、アプリが常に想定どおりに動作するようにします。ダウンロードしたテンプレートのデフォルトを使用して、アプリと Remote Config バックエンドのデフォルト値を定期的に同期できます。
次のステップ
構成値を読み込む方法は、上で説明した 3 つの基本的な方法に限られません。ニーズに応じて、関数駆動型のバックグラウンド更新など、更新をリアルタイムで伝播するで説明している、より高度な方法を考案して利用することもできます。
構成値をフェッチして有効にするための特定の呼び出しについて詳しくは、お使いのプラットフォームの API リファレンスをご覧ください。