【Flutter環境変数設定ガイド】enviedパッケージを使った導入とセキュリティ対策
はじめに
こんにちは、メンバーズ Cross Application カンパニーの遠藤です。
Flutter経験ゼロの状態でサービス開発に携わった際に環境変数の設定方法について調べた経験を基にこの記事を書いています。この記事では、enviedパッケージを使用して環境変数を安全に管理する方法を詳しく解説します。
おすすめの読者
- Flutterでモバイルアプリ作成時に環境変数をどのように設定するのか迷っている方。
- 環境変数を設定したいが、どれが適切か判断に迷っている方。
使うパッケージ
導入方法
1. パッケージインストール
flutter pub add envied
flutter pub add --dev build_runner
flutter pub add --dev envied_generator
2. .envファイル作成
ルートディレクトリ配下に配置。
KEY=orenodaijinaKey みたいな書き方でOK
3. lib配下にenvフォルダを配置してenv.dartファイルを作成
├── lib
│ └── env
│ └── env.dart
│ └── env.g.dart (ジェネレータで後ほど作成される)
env.dartの中身
import 'package:envied/envied.dart';
part 'env.g.dart';
@Envied(path: '.env')
final class Env {
@EnviedField(varName: 'KEY', obfuscate: true)
static final String orenodaijinaKey = _Env.orenodaijinaKey
}
4. ジェネレーターを走らせるコマンドを打つ
dart run build_runner clean (※もし.envファイルを修正してたらお掃除コマンドを先に打ってね)
dart run build_runner build --delete-conflicting-outputs
コマンド実行後にenvフォルダにenv.g.dartが生成される
5. 環境変数をコードから読み込む
print(Env.orenodaijinaKey);
6. .gitignoreに下記追加
*.env
*env.g.dart
まとめ
この手順は、一般的な.envファイルをルート配下に配置して読み込むパターンになります。ただし、逆コンパイル時に解析されないように読み込ませる前に難読化させています。
今まで.envの使用経験がある人は馴染みやすいし、環境変数をセキュアに管理したいといった場合には、最初の選択肢として適しているかなと思っています。
この記事を書いた人

遠藤 亮
2022年にメンバーズ入社。それまでは自社開発でiOS、androidエンジニアからスタートしてwebエンジニア、インフラ構築まで行ってました。2024年からモバイルアプリの開発支援を行うCross Appllicationカンパニーで開発担当。dartよりも中山ダート1200mの方が得意。
関連記事
- 【Flutterレイアウト解説】MainAxisAlignm...
Nicolas Christopher
Advent Calendar!
Advent Calendar 2024開催中!