開発・本番環境の切り替えをスマートに。「flutter_flavorizr」でビルドフレーバー管理を自動化

Flutterでアプリを開発していると、次のような課題に直面することがあります。

  • 開発用と本番用でAPIのエンドポイントを切り替えたい
  • devstagingprodなどの複数のビルド構成を管理したい
  • AndroidとiOSでのFlavor設定が面倒くさい

こうした悩みを自動で解決してくれる便利なツールが「flutter_flavorizr」です。

本記事では、flutter_flavorizrの概要から導入・設定手順、活用方法までをわかりやすく紹介します。


flutter_flavorizrとは?

flutter_flavorizrは、Flutterプロジェクトにおけるビルドフレーバーの設定を自動生成するCLIツールです。

特徴:

  • AndroidとiOS両方のFlavor構成を一括管理
  • コマンド一発でビルドスクリプト・設定ファイルを自動生成
  • Dartコード内でのFlavor分岐もサポート
  • yamlファイルによる宣言的な設定で簡単

これにより、環境ごとの分岐管理が圧倒的に楽になります。


インストール方法

まずはdev_dependenciesに追加します:

dev_dependencies:
  flutter_flavorizr: ^2.2.1  # 最新バージョンはpub.devで確認

コマンドラインから実行するため、パスを通しておくと便利です:

dart pub global activate flutter_flavorizr

設定ファイルの作成

プロジェクトルートに flavorizr.yaml を作成し、以下のように記述します。

flavors:
  dev:
    app:
      name: "MyApp Dev"
    android:
      applicationId: "com.example.myapp.dev"
    ios:
      bundleId: "com.example.myapp.dev"

  prod:
    app:
      name: "MyApp"
    android:
      applicationId: "com.example.myapp"
    ios:
      bundleId: "com.example.myapp"

このように、各フレーバーのアプリ名・パッケージ名(Bundle ID)を設定できます。


自動生成コマンド

設定ファイルを記述したら、以下のコマンドを実行するだけです。

flutter pub run flutter_flavorizr

すると以下が自動で生成されます:

  • Androidのflavors.gradle設定
  • iOSのxcconfigおよびスキーム設定
  • Dart側のFlavor定義(例:flavors.dart

Dart側でのFlavor判定

自動生成されたlib/flavors.dartなどを使って、Dartコード内でもフレーバーを識別できます。

import 'flavors.dart';

void main() {
  const flavor = String.fromEnvironment('FLAVOR');

  if (flavor == 'dev') {
    runApp(MyApp(apiUrl: 'https://dev.api.example.com'));
  } else {
    runApp(MyApp(apiUrl: 'https://api.example.com'));
  }
}

このように、ビルドフラグでAPI先などを出し分けることも簡単です。


ビルド・実行コマンド例

Android

flutter run --flavor dev -t lib/main.dart
flutter run --flavor prod -t lib/main.dart

iOS

flutter run --flavor dev -t lib/main.dart
flutter run --flavor prod -t lib/main.dart

※Xcodeでビルドする場合は、Runnerのスキームから適切なFlavorを選択してください。


よくある活用シーン

  • 開発チームごとのAPI環境の切り替え
  • Googleサービスファイル(GoogleService-Info.plistやgoogle-services.json)の切り替え
  • アイコン・アプリ名をフレーバーごとに変更
  • β版・リリース版のビルド管理

これらを手動でやっていた頃に比べて圧倒的に効率的になります。


注意点・ベストプラクティス

  • flutter_flavorizr実行後はiOSのXcodeスキームが更新されるので、Xcode再起動が必要な場合があります
  • Firebaseを使う場合、FlavorごとにGoogleService-Info.plistを分けて管理しましょう
  • .gitignore設定に注意(自動生成ファイルを含めるかはチーム内で統一)

まとめ

Flutterアプリで環境を分けたいとき、flutter_flavorizrは以下の点で非常に強力です。

  • 複雑なFlavor設定をYAMLだけで管理
  • Android・iOS両対応
  • Dartコードとも連携
  • 時短かつミス防止

ビルド環境の構成管理に課題を感じている方、手動での設定に疲れている方は、ぜひ一度「flutter_flavorizr」を導入してみてください。

タイトルとURLをコピーしました