どうも。どっことです。今回は環境変数や定数を
build.gradle
で管理する実装を解説します。
build.gradleで環境変数・定数を管理する実装
Gradleが自動生成してくれるBuildConfig
を使うことで、buildTypes
やproductFlavor
ごとに初期値や定数値を持たせることができます。よくあるのはAPIのドメインや、広告IDの切り分けなどですね。開発版(buildType
:debug
)とリリース版(buildType
:release
)で開発用と本番用で切り替えるなどに利用できます。今回はBuildConfig
にアプリ内で参照できるパラメータを乗せる実装を解説します。
BuildConfigに定数を乗せる実装
buildTypes
(debug
/release
)ごとに定義する場合は以下でOKです。
defaultConfig
に初期値を設定する。buildTypes
ごとに定数の値を上書き設定する。
android {
// ...
defaultConfig {
// buildTypesで上書きがなかった場合に設定される値
buildConfigField "String", "AD_UNIT_ID", "\"とりあえずな広告ID\""
}
// ...
buildTypes {
release {
// 本物の広告IDを上書きして定義
buildConfigField("String", "AD_UNIT_ID", "\"本物の広告ID\"")
...
}
// とりあえずな広告IDをdefaultConfigに書いていますが、
// debugブロックに書いて、defaultConfigは空文字などを指定しても問題ありません。
}
}
あとは上記の定数を使いたいところで、以下ように参照すれば値を取得することができます。
const val AD_UNIT_ID_SIDE_BAR = BuildConfig.AD_UNIT_ID
まとめ
今回は、BuildConfig
に定数を持たせる実装について解説しました。同じアプリでも開発環境やクライアントに見せる版、一般公開版など種別がさまざまになることが多いと思います。このような機能を利用して、ソースコード上に煩わしい実装が増やさないように心がけましょう。