これは、オフトピックですかどうかは知りませんが、Laravelに、我々は内の変数を設定することができ.env
、我々はその後、使用してアクセスできるファイル、getenv()
安全ではないことができ、それをハードコーディングから防ぐための機能を。
私たちは、Androidスタジオ(Javaを使用)で同じことを行うことができますか?いくつかの情報私はむしろハードではないコードがあるとして。
これは理にかなって願っています。
私は、クラス内の変数を設定し、クラスを介してそれらにアクセスしようとしたが、私はそれはLaravelで行われている方法と似ているより良い方法があると感じています。
ここで私が今やっているのですが、それは私が探しているものではないのです。
public class EnvVariables {
public final String API_KEY = "some API key";
public final String API_ENDPOINT = "https://example.com/api/v1/endpoint";
}
それから私は私がそれらを必要な場所にこれらの変数を使用していました。
これは、仕事をしていません、しかし一方でクラスが、まだ簡単にアクセスできます.env
(それはすべきではないとして)ではありません。
(私の意見では)最も近い、我々は次のようになり、環境変数を持っているbuildConfig
あなたは、このように、build.gradleにするフィールド:
buildConfigField "String", "variable_name", "variable_value"
あなたはこのような何かをするだろう。
flavorDimensions "default"
productFlavors {
dev {
buildConfigField "String", "SERVER_TEST", "\"http://192.618..\""
buildConfigField "String", "SERVER_MAIN", "\"https://68.5...\""
buildConfigField "String", "API_KEY", "dev API key"
}
prod {
buildConfigField "String", "SERVER_TEST", "\"http://192.618..\""
buildConfigField "String", "SERVER_MAIN", "\"https://68.5...\""
buildConfigField "String", "API_KEY", "prod API key"
}
これは、あなたがこのようにアクセスすることができます。
BuildConfig.API_KEY
詳細はこれらを見て:
そして、異なる味を作成するための本:
https://developer.android.com/studio/build/build-variants
注意点として、buildConfig
フィールドが具体的に特定のビルドまたはビルドするのグループに関連する値のために使用されている、店のAPIキーに望むの状況にそれが良い例だが、ちょうどアプリのためのすべての定数の値を格納するために使用すべきではありません。
あなたが別のAPIキーを使用するアプリ(無料、プレミアム、など)の異なるバージョンを持っている場合は、上記の私のコードから見ることができるように、ビルド設定は、それを行うためのより良い方法は、あなたが起動し、ビルドバリアント、APIに依存し、ありますキーが変更されます。