Firebase Remote Config per le app Android

Firebase Remote Config è un servizio unico progettato per fornire un controllo preciso sulle istanze delle tue app mentre sono installate sui dispositivi dell'utente. Usandolo, puoi modificare in modo affidabile l'aspetto e i comportamenti delle tue app su tutta la tua base di utenti senza pubblicare aggiornamenti su Google Play.

Se stai pensando che questo potrebbe essere un rischio per la sicurezza, ti assicuro che Remote Config non ti consente di iniettare in remoto un nuovo codice nelle tue app. Permette solo di modificare, tramite la console di Firebase, i valori di alcune variabili pre-decise che sono già presenti nel codice. In effetti, puoi pensare alle variabili come variabili lato server da cui dipende la tua app.

In questo tutorial, ti mostrerò come utilizzare alcune delle più potenti funzionalità di Remote Config nelle app Android.

1. Perché utilizzare Remote Config?

L'API Remote Config è pensata principalmente per essere utilizzata come alternativa ai semplici valori hardcoded delle tue app. Esempi di tali valori possono essere colori, dimensioni, ritardi ed etichette.

Per comprendere meglio il significato dell'API, prendere in considerazione il seguente scenario: si crea e pubblica un'app con valori hardcoded per la dimensione e il colore del carattere di tutte le sue etichette. Alcuni giorni dopo, i tuoi utenti ti dicono che preferiscono una dimensione del carattere più grande e un diverso colore del carattere. Poiché i valori sono codificati, per poterli modificare, ora devi modificare il codice, creare nuovamente l'app assegnandogli un nuovo numero di versione e ripubblicarlo su Google Play. Questo è un sacco di lavoro per una soluzione così piccola. Inoltre, se gli utenti cambiano idea, dovrai farlo di nuovo!

Con Firebase Remote Config, puoi impostare variabili di carattere e colore del carattere variabili configurabili a distanza e utilizzare la console Firebase per modificare rapidamente i loro valori ogni volta che vuoi, tutte le volte che vuoi. Questo approccio moderno garantisce inoltre che le modifiche avvengano il prima possibile sui dispositivi di tutti gli utenti, senza che debbano scaricare manualmente gli aggiornamenti.

2. Impostazione del progetto

Con l'Assistente Firebase di Android Studio, l'aggiunta di Remote Config al tuo progetto richiede solo pochi clic.

Inizia andando a Strumenti> Firebase e scegliendo Remote Config> Configura Firebase Remote Config nel pannello che appare. 

Quindi, premere il tasto Connetti a Firebase pulsante per associare il tuo progetto Android Studio a un progetto Firebase. Nella finestra di dialogo che si apre, seleziona il Crea un nuovo progetto Firebase opzione e premere il tasto Connetti a Firebase pulsante.

Dopo una connessione riuscita, è possibile premere il tasto Aggiungi Remote Config alla tua app pulsante per aggiungere tutte le dipendenze richieste ai file Gradle del progetto. Quando richiesto, premere il tasto Accetta modifiche pulsante per completare la configurazione del progetto.

3. Definizione dei parametri di configurazione

Tutte le variabili che si desidera poter modificare in remoto devono essere definite nel progetto Firebase come parametri di Remote Config. Quindi utilizza un browser per accedere alla console Firebase, scorrere verso il basso Panoramica del progetto sezione per trovare il Configurazione remota scheda e premere il tasto Iniziare pulsante.

Nella schermata di benvenuto del servizio Remote Config, premere il tasto Aggiungi il tuo primo parametro pulsante per iniziare ad aggiungere le variabili.

Cerchiamo di definire due parametri ora: dimensione del font e colore del carattere. Il primo deve essere un numero e il secondo una stringa. Assicurati di assegnare valori di default ragionevoli a entrambi.

Ora dovresti essere in grado di vedere i due parametri che hai creato. Tuttavia, i loro valori non saranno disponibili per la tua app a meno che tu non li pubblichi. Quindi premere il Pubblica modifiche pulsante.

4. Preparazione di un layout

Per essere in grado di utilizzare i parametri che abbiamo creato, aggiungere a TextView widget che visualizza un messaggio nel file XML del layout dell'attività. Se hai creato un nuovo progetto Android Studio per questo tutorial, sentiti libero di usare "Hello World" TextView widget disponibile per impostazione predefinita, ma assicurati di dargli un ID.

Dentro il onCreate () metodo della tua attività, ora puoi ottenere un riferimento al widget usando il findViewById () metodo.

val myMessage = findViewById(R.id.my_message)

5. Inizializzazione di Remote Config

La nostra app deve essere in grado di funzionare correttamente la prima volta che viene aperta, anche se l'utente non è connesso a Internet. Pertanto, è necessario conoscere sia i nomi che i valori predefiniti dei nostri parametri di Remote Config. Creare una mappa per archiviarli è una buona idea.

val defaults = mapOf ("font_size" a 18, "font_color" a "# ff0000")

Tieni presente che i nomi e i valori predefiniti devono essere identici alle loro controparti nella console Firebase.

Ora possiamo inizializzare un client per il servizio Remote Config usando il default carta geografica. Per fare ciò, prima creare un'istanza del client chiamando il getInstance () metodo del FirebaseRemoteConfig classe, quindi passa la mappa al suo setDefaults () metodo.

val remoteConfig = FirebaseRemoteConfig.getInstance () remoteConfig.setDefaults (default)

A questo punto, il client Remote Config è pronto e possiamo iniziare a utilizzare i valori che fornisce.

6. Utilizzo dei valori predefiniti

Il FirebaseRemoteConfig istanza offre alcuni metodi con nomi intuitivi che è possibile utilizzare per recuperare i valori dei parametri di Remote Config. Ad esempio, puoi chiamare il getDouble () metodo per recuperare valori che sono numeri. Allo stesso modo, puoi chiamare il getString () metodo per recuperare i valori che sono stringhe.

Il seguente codice mostra come recuperare i valori di dimensione del font e colore del carattere parametri.

val fontSize = remoteConfig.getDouble ("font_size") val fontColor = remoteConfig.getString ("font_color")

Una volta che hai i valori, sei libero di usarli come preferisci. Per ora, usiamoli per cambiare l'aspetto del il mio messaggio widget di.

myMessage.textSize = fontSize.toFloat () myMessage.setTextColor (Color.parseColor (fontColor))

Se esegui l'app ora, sarai in grado di vedere il TextView widget utilizzando i valori predefiniti dei parametri di Remote Config.

7. Recupero degli ultimi valori

In questo momento, il client Remote Config sta semplicemente restituendo i valori dalla mappa che gli abbiamo passato. Per consentirgli di usare i valori che riceve da Firebase, dobbiamo chiamarne la sua activateFetched () metodo.

remoteConfig.activateFetched ()

Il activateFetched () metodo, tuttavia, non recupera effettivamente i valori da Firebase. Pertanto, dobbiamo chiamare il fetch () metodo successivo, che viene eseguito in modo asincrono, per recuperare i valori.

remoteConfig.fetch ()

Se esegui l'app a questo punto, utilizzerà comunque i valori predefiniti. Tuttavia, se attendi qualche secondo, chiudilo e aprilo di nuovo, inizierà a utilizzare i valori immessi nella console di Firebase.

Di solito, è una buona idea lasciare che i valori modificati diventino effettivi solo quando gli utenti aprono l'app la volta successiva. Puoi collegare un ascoltatore al Compito oggetto restituito dal fetch () metodo e aggiorna la tua interfaccia utente all'interno del listener, ma i tuoi utenti potrebbero non gradire il brusco cambiamento.

Tuttavia, è possibile utilizzare l'ascoltatore per scopi di debug.

remoteConfig.fetch (). addOnSuccessListener Log.i (TAG, "Valori recuperati con successo")

8. Modifica dei valori

Attualmente, i valori nella mappa corrispondono ai valori remoti. Per poter vedere il servizio Remote Config in azione, dobbiamo modificare i valori menzionati nella console Firebase. Quindi torna alla console e fai clic su uno dei parametri che vedi nella sezione Remote Config.

Nella finestra di dialogo che si apre, lascia il Chiave dei parametri campo invariato, ma modifica il valore. Allo stesso modo, è possibile modificare anche il valore dell'altro parametro.

Infine, assicurati di premere il tasto Pubblica modifiche pulsante in modo che i valori diventino disponibili per il client Remote Config.

Se apri l'app ora, chiudila e aprila di nuovo, dovresti vedere che il TextView il widget sembra diverso.

9. Aggiunta di condizioni ai parametri

Non è sempre necessario distribuire gli stessi valori di Remote Config a tutti gli utenti. La console Firebase ti consente di aggiungere condizioni ai tuoi parametri in modo tale che restituiscano valori diversi a diversi sottoinsiemi della tua base di utenti. Esistono molte regole che è possibile utilizzare per creare tali sottoinsiemi. Ad esempio, puoi scegliere come target utenti appartenenti a un Paese specifico, utenti con dispositivi che eseguono una versione specifica di Android o anche utenti che parlano una lingua specifica.

Poiché Firebase li gestisce in modo trasparente, non è necessario apportare modifiche al codice per gestire le condizioni associate ai parametri.

Per fare un esempio, aggiungiamo ora una condizione al colore del carattere parametro tale che il suo valore è blu solo per gli utenti indiani.

Inizia facendo clic sul parametro nella console di Firebase. Nel modulo che appare, clicca su Aggiungi valore per condizione campo a discesa e selezionare Definisci una nuova condizione.

Nella finestra di dialogo che si apre in seguito, sarai in grado di dare un nome alla tua condizione e, dal Si applica se ...  elenco a discesa, selezionare una varietà di opzioni che consentono di concentrarsi su un gruppo specifico di utenti. Per scegliere come target gli utenti di un determinato paese, dovrai scegliere il Paese / Regione opzione. Nell'elenco che appare accanto ad esso, puoi scegliere uno o più paesi. Scegliere India Qui.

Dopo aver riempito tutti i campi, premere il tasto Crea condizione pulsante per finalizzare la condizione.

A questo punto, il tuo parametro sarà in grado di accettare due valori anziché uno. Lasciare il Valore predefinito campo così com'è e digitare il codice esadecimale per il colore blu nel campo del valore condizionale.

Se pubblichi ora le modifiche, gli utenti in India riceveranno un aggiornamento aggiuntivo e il testo in TextView il widget apparirà blu a loro.

Conclusione

Ora sai come modificare un'app da remoto usando Firebase Remote Config e la console Firebase. Con un po 'di creatività, c'è molto che puoi fare con il servizio per migliorare l'esperienza utente della tua app. Ad esempio, la maggior parte degli sviluppatori oggi lo usa per cambiare i temi delle proprie app in occasione delle festività. Molti lo usano anche con Firebase Analytics per eseguire test A / B sulle loro basi di utenti.

Per ulteriori informazioni su Remote Config, fare riferimento alla documentazione ufficiale.