Flutterで実行時オプションを使って処理内容を切り替える方法
目次
はじめに
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
まとめ
ちょっとしたメモ代わりに残しておきます。 なにかの役に立てば幸いです。