【Flutter】RemoteConfigを簡単に実装する方法を紹介【Firebase】

【Flutter】RemoteConfigを簡単に実装する方法を紹介【Firebase】
記事内に広告が含まれています。
吹き出しのイメージ

Flutterアプリに、FirebaseのRemoteConfigを導入したいが、方法がよくわからない。

今回はFlutterにFirebaseのRemoteConfigを導入してみたいと思います。

筆者も実装に手間取りましたが、無事に導入できたのでその方法を紹介します。

ステップは以下の通りです。

  • RemoteConfigとは?
  • なぜ必要?
  • 実装方法

最後までご覧いただき、参考にしていただけると幸いです。

スポンサーリンク

RemoteConfigとは?

RemoteConfigは、アプリケーションの設定や機能をリモートから動的に変更できるサービスです。アプリを再度ビルド・リリースすることなく、特定の条件に基づいてアプリの動作を変えることが可能になります。

スポンサーリンク

なぜ必要?

先日、初めてiOSアプリのリリースをしましたが、かなり未完成な状態でのリリースとなりました。

アップデートを重ねる中でGoogle Analyticsを導入しましたが、もしユーザーがアプリをアップデートしなければ、Google Analyticsを導入した意味が全くなくなってしまいます。

「では、アップデートするようにダイアログを表示すればいいのでは?」と思いましたが、ここで問題が発生しました。

「どうやってダイアログを出すのか?」という点です。

そこで活躍するのがRemoteConfigです。Firebaseのコンソールで少し設定を変更するだけで、アップデートを必要とせずにメンテナンスモードや強制アップデートのダイアログを表示することができます。

スポンサーリンク

実装方法

今回は例として、メンテナンスモードにした際に「現在メンテナンス中です」というダイアログを表示する方法を紹介します。

この方法を応用して、強制アップデート機能も実装できるので、ぜひ参考にしてください。

Firebaseでプロジェクト作成

以下の記事を参考にして、Firebaseのプロジェクト作成と、Flutterへの導入を完了させてください。なお、Google Analyticsの導入はRemoteConfigには直接影響しませんが、併せて導入することをおすすめします。

RemoteConfigにメンテナンスモードの追加

Firebaseコンソールのサイドメニューから「RemoteConfig」を開き、ドロップダウンを「クライアント」に設定します。次に、以下のパラメータを追加します。

  • パラメータ名(キー): maintenance
  • Description: 「メンテナンスモード」(機能を識別できる内容であればOK)
  • データ型: 「ブール値」
  • Default value: false

依存関係の追加

FlutterプロジェクトにRemoteConfigの依存関係を追加します。

flutter pub add firebase_core firebase_remote_config

ロジックの記述

「main.dart」に以下のようなロジック(例)を記述します。

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_remote_config/firebase_remote_config.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

  final FirebaseRemoteConfig remoteConfig = FirebaseRemoteConfig.instance;

  await remoteConfig.setConfigSettings(RemoteConfigSettings(
    fetchTimeout: const Duration(seconds: 10),
    minimumFetchInterval: Duration.zero,
  ));

  await remoteConfig.setDefaults(<String, dynamic>{
    "maintenance": false,
  });

  await remoteConfig.fetchAndActivate();

  var maintenanceMode = remoteConfig.getBool("maintenance");

  if (maintenanceMode) {
    runApp(MaintenanceModeApp());
  } else {
    runApp(MyApp());
  }
}

class MaintenanceModeApp extends StatelessWidget {
  //
}

class MyApp extends StatelessWidget {
  //
}

これを組み込むことで、RemoteConfigの導入は完了です。Firebaseコンソールで設定した「maintenance」のブール値を「false」にすると通常のアプリウィジェットが表示され、「true」に設定するとメンテナンスウィジェットが表示されます。

強制アップデート(応用)

強制アップデートのダイアログを表示する場合、Remote Configで以下のパラメータを設定します。

  • パラメータ名(キー): update
  • Description: 「強制アップデート」(機能を識別できる内容であればOK)
  • データ型: 「文字列」
  • Default value: 1.5.0

メンテナンスモードと同様に、Remote Configから値を取得し、「package_info」 パッケージを利用して、Firebase上で設定したバージョン(Default value)とインストールされているアプリのバージョンを比較し、バージョンが古い場合にダイアログを表示するロジックを実装すれば良いです。

スポンサーリンク

最後に

ここまで、FirebaseのRemoteConfigの実装方法について紹介しました。

一見、難しそうに思える機能ですが、手順を押さえれば問題なく導入できます。Firebaseコンソールでの設定が完了すれば、あとは 「main.dart」 で完結するため、不明点があれば「ChatGPT」に聞けば解決すると思います。

ぜひ、この機能を実装してみてください。

ここまでお読みいただき、ありがとうございました。

スポンサーリンク

シェアする

フォローする

応援する

リアル大学生 - にほんブログ村人気ブログランキング
もしこの記事が役に立ったなら、
こちらから ☕ を一杯支援いただけると喜びます

スポンサーリンク