見出し画像

flutter_dotenvで環境変数を管理

flutter_dotenvを使えば、GitHubに上げたくないパスワードやユーザー名などのシークレットな情報を安全に管理することができます。
今回はその使い方についてご紹介します。

flutter_dotenvとは

環境変数を.envファイルに保存して、その変数をアプリケーションで使用することで機密情報を管理できます。

環境変数とは

環境変数とは、OSが設定値などを永続的に保存し、利用者や実行されるプログラムから設定・参照できるようにしたもの。プログラムの実行時などに必要となる、利用者やコンピュータごとに内容が異なる設定値などを記録するために用いられる。

https://e-words.jp/w/%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0.html

envファイルの作成

まずはFlutterプロジェクトのルートディレクトリに.envファイルを作成します。このファイルに環境変数を記述していきます。
今回はMySQLに設定するuser名をmy_db_user、passwordをmy_db_passwordとして登録。

.env作成
/// .env
DB_USER=my_db_user
DB_PASSWORD=my_db_password

gitignoreに.envファイルを登録

.envファイルには機密情報が含まれているため、バージョン管理システム(例: Git)で追跡しないようにすることが重要です。
プロジェクトの.gitignoreファイルに、以下のように.envを追加してください。

/// .gitignore
.env

これにより、.envファイルがGitリポジトリに追加されず、機密情報が公開されるリスクを軽減できます。

mysql1.dartのインストール

DartでMySQLを使用するために、mysql1.dartをインストール。

% dart pub add mysql1

mysql1.dartを使用してデータベースに接続する際に、ConnectionSettingsにユーザー名やパスワードを渡す必要があります。
flutter_dotenvを使ってこれらの情報を環境変数から取得するように変更します。

flutter_dotenvのインストール

% dart pub add dotenv

サンプルコード

import 'package:mysql1/mysql1.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart';

  Future<MySqlConnection> main() async {
      var env = DotEnv(includePlatformEnvironment: true)..load(['.env']);
      var settings = MySqlConnection.connect(
        ConnectionSettings(
          host: 'localhost',
          port: 3306,
          user: env['DB_USER'],
          password: env['DB_PASSWORD'],
          db: 'test',
        ),
      );
      return settings;
}

var env = DotEnv(includePlatformEnvironment: true)..load(['.env']);
この行で作成した.envファイルから登録した環境変数を取得し、mysql1.dartConnectionSettingsに環境変数を渡します。

user: dotenv.env['DB_USER']
password: dotenv.env['DB_PASSWORD']
.envファイルに登録したDB_USERやDB_PASSWORDをmysqlのuser, passwordとして設定しました。
これで環境変数を使用できます!

この記事が気に入ったらサポートをしてみませんか?