Monday, June 12, 2023

VSCodeでFlutterアプリのビルド時に外部設定値を注入する方法

Flutterでビルド時に外部設定値を注入する方法

この記事では、Flutterプロジェクトにビルド時に外部設定値を注入する方法を詳しく解説します。これにより、開発者は動的な環境変数を簡単に管理することが可能になります。その中で最も一般的な手法は--dart-defineオプションの使用です。

Dart変数の定義と値の渡し方: --dart-defineオプション

--dart-defineオプションは、Dartコード内で使用される変数を定義し、その値を渡すために使用されます。以下の例では、versionというDart変数を定義し、現在の日付と時間情報をその値として渡します。

flutter build apk --profile --dart-define=version=`date +%d_%H:%M:%S`

Dartコード内で、String.fromEnvironment()関数を使用してこの値を参照する方法は以下の通りです:

String.fromEnvironment("version")

`launch.json`ファイルを使用した`--dart-define`オプションの自動化

`--dart-define`オプションに毎回手動で値を入力するのは面倒です。Visual Studio Codeの`launch.json`ファイルを使用すればこのプロセスを自動化できます。


{
    "version": "0.2.0",
    "configurations": [      
      {                	        
        "name": "Flutter build apk with version",                            
        "request": "launch",                            
        "type": "dart",                            
        "program": "..\\lib\\main.dart",                            
        "flutterMode":"profile",           	                    
        "toolArgs" : ["--dart-define=version=`date +%d_%H:%M:%S`"]
      }
    ]
}

`toolArgs`配列に`--dart-define=version=date +%d_%H:%M:%S`オプションを追加することで、ビルド時に自動的に値が入力されます。

Dartコードでビルド環境変数を使用する方法

Dartコード内では、`String.fromEnvironment()`関数を使用して、先ほど定義した`version`値を取得することができます:


static const version = String.fromEnvironment("version", defaultValue: '');

このように定義された`version`変数は、アプリ内で様々な用途に使用することができます。例えば、Aboutページでアプリのバージョン名を表示するために使用することができます。


0 개의 댓글:

Post a Comment