Flutterで実行時オプションを使って処理内容を切り替える方法

_d21b6065-fc0f-4b23-b0cf-55ad1c3dec48.webp
目次

はじめに

Flutterで試用版と製品版という2つのバージョンを作ることになりました。

2つのバージョン向けにソースコードを微修正して対応していたのですが、バージョンが増えてきたり対応する端末が増えてきたり、細かいパラメータの調整したものとか言い始めるクライアントがいるとさぁ大変。

あれや微調整を加えたいといったら、2つのバージョンをそれぞれビルドして納品用のフォルダに入れて手間が2倍。そんなのが何度も繰り返されて怒り散らかしていたのがついこの間の話です。

一度受けた仕事なので義務感だけでソフト開発しているのですがなんとも面倒が尽きない。

Flutterでビルドオプションを切り替える方法があるのでそちらを紹介します。 このオプションを導入すれば、バージョン違いの開発も楽になりますね。

手法

pubspec.yamlにBuild Flavorを追加します。 今回は試用版と製品版ということでtrialとproductionとして用意します。 その中にBooleanの設定値を追加します。

flavors:
  trial:
    production_enableflag: false
  production:
    production_enableflag: true

この設定値をソースコードから読み出して処理を切り替えます。

  import 'package:yaml/yaml.dart' as yaml;

  // YAMLファイルの読み取り
  final fileContent = File('pubspec.yaml').readAsStringSync();
  final config = yaml.loadYaml(fileContent);

  // 条件分岐
  final bool production_enableflag = config['production_enable'] as bool;
  if (production_enableflag == true){
   //なんか処理 
  }else{
    //なんか処理 
  }

Bool以外にもintなどが使えます。 あとは、それぞれのFravorを指定してビルドを行うことで、実行する処理を切り替えることができます。

flutter run --flavor trial
flutter run --flavor production

まとめ

ちょっとしたメモ代わりに残しておきます。 なにかの役に立てば幸いです。

Related Post

> Flutterで実行時オプションを使って処理内容を切り替える方法
FlutterからTerminalコマンドを実行する方法
> Flutterで実行時オプションを使って処理内容を切り替える方法
Flutter でQRコードを生成と読み取りをやってみよう
> Flutterで実行時オプションを使って処理内容を切り替える方法
Flutter + flutter_hooksで始めるUI分離パターン
> Flutterで実行時オプションを使って処理内容を切り替える方法
FlutterでWebRTCを使ったビデオ通話アプリを試してみる
> Flutterで実行時オプションを使って処理内容を切り替える方法
Android EmulatorでWebカメラの映像を出力する方法【Flutter】
> Flutterで実行時オプションを使って処理内容を切り替える方法
【Flutter】Riverpodを使いUIとロジック分離した中規模アプリ開発を始めよう(導入編)

おすすめの商品

>