Students Save 30%! Learn & create with unlimited courses & creative assets Students Save 30%! Save Now
Advertisement
  1. Code
  2. Android SDK
Code

Firebase Remote Config para Aplicativos Android

by
Difficulty:IntermediateLength:MediumLanguages:

Portuguese (Português) translation by Maurício Eduardo de Oliveira (you can also view the original English article)

O Firebase Remote Config é um serviço exclusivo projetado para fornecer a você um controle refinado das instâncias de seus aplicativos enquanto eles estão instalados nos dispositivos do usuário. Ao usá-lo, você pode modificar com segurança a aparência e o comportamento de seus aplicativos em toda a sua base de usuários sem publicar atualizações no Google Play.

Se você está pensando que isso pode ser um risco de segurança, deixe-me assegurar que o Remote Config não permite injetar remotamente um novo código em seus aplicativos. Ele só permite modificar, por meio do console do Firebase, os valores de determinadas variáveis pré-decididas que já estão presentes no código. Na verdade, você pode pensar nas variáveis como variáveis do lado do servidor das quais seu aplicativo depende.

Neste tutorial, mostrarei como usar alguns dos recursos mais poderosos do Remote Config em seus aplicativos Android.

1. Por que usar o Remote Config?

A API do Remote Config destina-se principalmente a ser usada como uma alternativa aos valores simples codificados em seus aplicativos. Exemplos de tais valores podem ser cores, dimensões, tempo e labels.

Para entender melhor o significado da API, considere o seguinte cenário: Você cria e publica um aplicativo com valores codificados para o tamanho da fonte e cor de todos os seus labels. Alguns dias depois, seus usuários informam que preferem um tamanho de fonte maior e uma cor de fonte diferente. Como os valores são codificados, para alterá-los, você terá que modificar o código, criar o aplicativo novamente, fornecer um novo número de versão e atualizá-lo no Google Play. Isso é muito trabalho para uma correção tão pequena. Além disso, se os usuários mudarem de idéia, você terá que fazer tudo de novo!

Com o Firebase Remote Config, você pode configurar o tamanho da fonte e as variáveis configuráveis remotamente na cor da fonte e usar o Firebase console para alterar rapidamente seus valores sempre que quiser, quantas vezes quiser. Essa abordagem moderna também garante que as alterações ocorram o mais rápido possível nos dispositivos de todos os seus usuários, sem que eles precisem baixar manualmente as atualizações.

2. Configuração do Projeto

Com o Firebase Assistant do Android Studio, adicionar o Remote Config ao seu projeto leva apenas alguns cliques.

Comece acessando Tools > Firebase e escolhendo Remote Config > Set up Firebase Remote Config no painel exibido.

Firebase Assistant for Remote Config

Em seguida, pressione o botão Connect to Firebase para associar seu projeto do Android Studio a um projeto do Firebase. Na caixa de diálogo exibida, selecione a opção Create new Firebase project e pressione o botão Connect to Firebase.

Connect to Firebase dialog

Após uma conexão bem-sucedida, você pode pressionar o botão Add Remote Config to your app para adicionar todas as dependências necessárias aos arquivos Gradle do seu projeto. Quando solicitado, pressione o botão Accept Changes para concluir a configuração do projeto.

Project changes prompt

3. Definindo Parâmetros de Configuração

Todas as variáveis que você deseja alterar remotamente devem ser definidas no seu projeto do Firebase como parâmetros de Remote Config. Portanto, use um navegador para fazer login no Firebase console, role para baixo na seção Project Overview do projeto para encontrar o card Remote Config e pressione o botão Get Started.

Na tela de boas-vindas do serviço Remote Config, pressione o botão Adicionar seu primeiro parâmetro para começar a adicionar as variáveis.

Remote Config welcome screen

Deixe-nos definir dois parâmetros agora: font_size e font_color. O antigo deve ser um número e o segundo uma sequência de caracteres. Certifique-se de que você atribuir valores corretos para ambos.

Parameter creation dialog

Agora você deve conseguir ver os dois parâmetros criados. No entanto, seus valores não estarão disponíveis para seu aplicativo, a menos que você os publique. Então, pressione o botão Publicar alterações.

List of parameters

4. Preparando o Layout

Para poder usar os parâmetros que criamos, adicione um widget TextView exibindo uma mensagem no arquivo XML de layout de sua activity. Se você criou um novo projeto do Android Studio para este tutorial, sinta-se à vontade para usar o widget TextView "Hello World" disponível por padrão, mas certifique-se de fornecer um id.

Dentro do método onCreate() de sua activity, agora você pode obter uma referência ao widget usando o método findViewById().

5. Inicializando o Remote Config

Nosso aplicativo deve ser capaz de funcionar corretamente na primeira vez em que for aberto, mesmo que o usuário não esteja conectado à Internet. Portanto, ele precisa conhecer os nomes e os valores padrões dos nossos parâmetros do Remote Config. Criar um map para armazená-los é uma boa ideia.

Observe que os nomes e os valores padrões devem ser idênticos aos seus correspondentes no Firebase console.

Agora podemos inicializar um cliente para o Remote Config service usando o map padrão. Para fazer isso, primeiro crie uma instância do cliente chamando o método getInstance() da class FirebaseRemoteConfig e, em seguida, passe o map para seu método setDefaults().

Neste ponto, o Remote Config client está pronto e podemos começar a usar os valores que ele fornece.

6. Usando os Valores padrões

A instância do FirebaseRemoteConfig oferece alguns métodos intuitivamente nomeados que você pode usar para buscar os valores dos parâmetros do Remote Config. Por exemplo, você pode chamar o método getDouble() para buscar valores que são números. Da mesma forma, você pode chamar o método getString() para buscar valores que são strings.

O código a seguir mostra como buscar os valores dos parâmetros font_size e font_color.

Depois de ter os valores, você é livre para usá-los da maneira que quiser. Por enquanto, vamos usá-los para mudar a aparência do widget myMessage.

Se você executar o aplicativo agora, poderá ver o widget TextView usando os valores padrões dos parâmetros do Remote config.

App running with default values

7. Buscando os Valores mais recentes

No momento, o Remote Config client está apenas retornando valores do map que passamos para ele. Para permitir que ele use valores obtidos do Firebase, devemos chamar seu método activateFetched ().

O método activateFetched(), no entanto, na verdade não busca valores do Firebase. Portanto, devemos chamar o método fetch() a seguir, que é executado de forma assíncrona, para buscar os valores.

Se você executar o aplicativo neste momento, ele ainda usará os valores padrões. No entanto, se você esperar alguns segundos, fechá-lo e abri-lo novamente, ele começará a usar os valores inseridos no Firebase console.

Normalmente, é uma boa ideia permitir que os valores alterados entrem em vigor somente quando os usuários abrirem o aplicativo na próxima vez. Você pode anexar um ouvinte ao objeto Task retornado pelo método fetch() e atualizar sua interface de usuário dentro do listener, mas seus usuários podem não gostar de alterações repentinas.

Você pode, no entanto, usar o listener para fins de depuração.

8. Alterando os Valores

Atualmente, os valores no map correspondem aos valores remotos. Para poder ver o Remote Config service em ação, precisamos alterar os valores mencionados no console do Firebase. Então, volte ao console e clique em um dos parâmetros que você vê na seção Remote Config.

Na caixa de dialog exibida, deixe o campo Chave do parâmetro inalterado, mas altere o valor. Da mesma forma, você pode alterar o valor do outro parâmetro também.

Por fim, certifique-se de pressionar o botão Publicar alterações para que os valores se tornem disponíveis para o Remote Config client.

Updated values for the parameters

Se você abrir o aplicativo agora, fechá-lo e abri-lo novamente, verá que o widget TextView parece diferente.

App running with latest values from Firebase

9. Adicionando Condições aos Parâmetros

Você nem sempre precisa distribuir os mesmos valores do  Remote Config para todos os seus usuários. O console do Firebase permite adicionar condições aos seus parâmetros, de modo que eles retornem valores diferentes para diferentes subconjuntos de sua base de usuários. Existem muitas regras que você pode usar para criar esses subconjuntos. Por exemplo, você pode segmentar usuários que pertencem a um país específico, usuários com dispositivos que executam uma versão específica do Android ou até mesmo usuários que falam um idioma específico.

Como o Firebase os gerencia de forma transparente, você não precisa fazer alterações no código para lidar com as condições associadas aos seus parâmetros.

Por exemplo, vamos agora adicionar uma condição ao parâmetro font_color de forma que seu valor seja azul apenas para usuários Indianos.

Comece clicando no parâmetro no Firebase console. No formulário exibido, clique no campo suspenso Adicionar valor para condição e selecione Definir nova condição.

Add value for condition field

Na caixa de diálog que é aberta a seguir, você poderá dar um nome à sua condição e, na lista suspensa Aplicável se..., selecionar uma variedade de opções que permitirão que você se concentre em um grupo específico de usuários. Para segmentar usuários de um país específico, você terá que escolher a opção País/região. Na lista que aparece ao lado, você pode escolher um ou mais países. Escolha a Índia.

Condition creation dialog

Depois de preencher todos os campos, pressione o botão Criar condição para finalizar a condição.

Neste ponto, seu parâmetro poderá aceitar dois valores em vez de um. Deixe o campo de Valor Padrão como está e digite o código hexadecimal da cor azul no campo de valor condicional.

Conditional values dialog

Se você publicar as alterações agora, os usuários na Índia receberão uma atualização adicional e o texto no widget TextView aparecerá em azul para eles.

Same app running on devices in different countries

Conclusão

Agora você sabe como modificar um aplicativo remotamente usando o Firebase Remote Config e o Firebase console. Com alguma criatividade, você pode fazer muito com esse serviço para melhorar a experiência do usuário do seu aplicativo. Por exemplo, a maioria dos desenvolvedores hoje usam para alterar os temas de seus aplicativos para marcar os dias festivos. Muitos também usam o Firebase Analytics para executar testes A/B nas bases de usuários.

Para aprender mais sobre o Remote Config, consulte a documentação oficial.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.