プロジェクトのルートに.envフォイルを作成します。この中に環境変数を定義します。
.env
FOO=foo
BAR=bar
FOOBAR=$FOO$BAR
ESCAPED_DOLLAR_SIGN='$1000'
それでは環境変数を使えるようにするライブラリをインストールします。
以下、元のpubspec.yamlのassets部分です。
pubspec.yaml
# To add assets to your application, add an assets section, like this:
# assets:
# - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg
以下のように変更します。
pubspec.yaml
# To add assets to your application, add an assets section, like this:
assets:
- .env
gitでコードを管理されているかたは、コードがgitにpushされないように、.gitignoreファイルに.env*を追加します。.gitignoreがプロジェクトのルートに無いかたは、新しく.gitignoreファイルを作ってください。
.gitignore
.env*
それではmain.dartにライブラリをimportしていきます。
main.dart
import 'package:flutter/material.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart' as DotEnv; // 追加
環境変数をloadしようとしたのですが、
うまくいかないです
main.dart
Future main() async {
await DotEnv.load();
runApp(MyApp());
}
これだとうまくいきました
main.dart
Future main() async {
await DotEnv.DotEnv().load(".env");
runApp(MyApp());
}
main.dartで環境変数が使えるようになったかprint文で確認してみます。
main.dart
print('${DotEnv.DotEnv().env}');
無事コンソールに出力されました。
I/flutter (28320): {FOO: foo, BAR: bar, FOOBAR: $FOO$BAR, ESCAPED_DOLLAR_SIGN: $1000}
以下のように、取得したい環境変数を指定して、値が取得できることを確認します。
main.dar
print('${DotEnv.DotEnv().env['ESCAPED_DOLLAR_SIGN']}');
無事取得できました。
I/flutter (28320): $1000
今後は、APIのキーを環境変数にして、安全に値を取得できるようにしていきます。