Eu não sei se isso é off-topic, mas em Laravel, podemos definir variáveis em um .env
arquivo, que pode, então, o acesso usando uma getenv()
função de prevenção de codificação difícil em que pode não ser seguro.
Podemos fazer o mesmo no Android Studio (usando Java)? Como há algumas informações que eu código em vez não é difícil.
Espero que este sentimento marcas.
Tentei configurar as variáveis em uma classe e acessá-los através da classe, mas eu sinto que há uma maneira melhor que é mais semelhante à forma como é feito em Laravel.
Aqui está o que eu estou fazendo agora, mas não é o que eu estou procurando:
public class EnvVariables {
public final String API_KEY = "some API key";
public final String API_ENDPOINT = "https://example.com/api/v1/endpoint";
}
Então eu usei essas variáveis onde quer que eu precisava deles.
Isso faz o trabalho, mas a classe ainda é facilmente acessível, enquanto que um .env
não é (como não deve ser).
O mais próximo (em minha opinião), temos de variáveis ambientais, seria buildConfig
campos, o que você faz em build.gradle, como este:
buildConfigField "String", "variable_name", "variable_value"
você faria algo assim:
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"
}
que você pode então acessar como este:
BuildConfig.API_KEY
ter um olhar para estes para mais informações:
Como gerar buildConfigField com tipo String
e isto para a criação de diferentes sabores:
https://developer.android.com/studio/build/build-variants
Como uma nota lateral, buildConfig
campos são utilizados para valores especificamente relacionadas com uma compilação particular ou um grupo de compilações, para a sua situação de querer chaves de API de loja é um exemplo bom, mas não deve ser utilizado apenas para armazenar todos os valores constantes para um aplicativo .
Se você tiver versões diferentes de um aplicativo (gratuito, premium, etc), que usa chaves de API diferentes, de construção de configuração é a melhor maneira de fazê-lo, como você pode ver no meu código acima, dependendo da variante de construção de lançar, a api chave irá mudar.