Usa Remote Config con Firebase

Kevin Morales
5 min readFeb 28, 2024

¡Hola amig@! Mi nombre es Kevin Morales y soy desarrollador mobile por más de 7 años. Alguna vez te has preguntado cómo cambiar un flujo o comportamiento de una aplicación sin tener que enviar una actualización a la tienda, hoy te lo explico de una forma sencilla usando un servicio de Firebase.

En muchas ocaciones, empresas o negocios con aplicaciones móviles quieren hacer cambios que pueden afectar a todos sus usuarios. Muchos de ellos, deben llevar a cabo el cambio y subir una actualización, la cual dura mínimo un día y muchas veces hasta una semana.

Recuerdo por el 2016 cuando envías una aplicación a revisión no te contestaban hasta después de dos semanas y lo peor aún era que podía ser una respuesta negativa. Imagina esto para una actualización en la que debes efectuar un cambio urgente para tus usuarios.

Bueno, para resolver estos pequeños inconvenientes, Google construyo un servicio llamado Remote Config, que como se entiende es básicamente una configuración remota desde un servidor. A continuación te explico unos conceptos importantes acerca de Firebase y Remote Config antes de realizar la integración.

Firebase

Es una plataforma de desarrollo de aplicaciones móviles de Google, ofrece una variedad de servicios para simplificar el desarrollo y mejorar la calidad de las aplicaciones. Uno de estos servicios es Firebase Remote Config, una herramienta poderosa que permite a los desarrolladores personalizar la apariencia y el comportamiento de sus aplicaciones sin necesidad de actualizarlas en la tienda.

Remote Config

Es un servicio en la nube que te permite ajustar la configuración y el funcionamiento de tu aplicación en tiempo real sin necesidad de realizar actualizaciones. Puedes usarlo para modificar el diseño del usuario, adaptar la lógica interna de la aplicación e incluso activar o desactivar funciones específicas.

Configuración inicial en Firebase

Antes de comenzar a utilizar Remote Config en tu aplicación Android con Kotlin, es importante realizar ciertas configuraciones iniciales. Asegúrate previamente haber integrado Firebase en tu proyecto y habilitado Remote Config desde la consola correspondiente.

Para la configuración de Remote Config en la plataforma de Firebase vamos a necesitar crear un parámetro como clave (key) y otro parámetro como valor (value), en el siguiente ejemplo nuestra clave es PruebaKey y nuestro valor es Esto es una prueba desde Remote Config. Este valor puede ser de diferentes tipos de datos, desde una cadena de texto hasta un formato JSON en el que envíes un objeto.

Luego de guardar vamos a poder publicar los cambios y es en ese momento que podemos integrar código para que nuestra aplicación lea este valor mediante esta clave en el momento que deseamos sin tener que actualizar.

Integración

Lo primero que debemos hacer es crearnos un proyecto en Firebase con nuestra cuenta de Google. Una vez creado dicho proyecto, procederemos a darle el nombre, en este ejemplo, RemoteConfigFirebaseKotlin, en el cual configuraremos todo para el funcionamiento de nuestra herramienta.

Una vez creado el proyecto en Firebase, agregaremos la aplicación Android. Descargaremos el archivo google-services.json y colócalo en tu aplicación, en concreto dentro de Proyecto ⇾ app como se muestra en la imagen.

Agregamos la dependencia de google-services en nuestro proyecto.

plugins {
// ...

// Agregar id de google-services
id("com.google.gms.google-services") version "4.4.1" apply false
}

Y dentro de plugins también agregaremos el id de google-services. En dependencias se agregará la librería de Firebase y de Remote Config, cabe recalcar que Analytics está por defecto, pero lo podrías dejar para tener analíticas de tu aplicación.

plugins {
id("com.android.application")
// Agregamos el google plugin de google-services
id("com.google.gms.google-services")
...
}

dependencies {
// Importaremos Firebase BoM
implementation(platform("com.google.firebase:firebase-bom:32.7.2"))

// Agregaremos las dependencias de los productos de Firebase que deseas usar
implementation("com.google.firebase:firebase-analytics:21.5.1")
implementation("com.google.firebase:firebase-config:21.6.1")
}

Una vez configurado nuestro Gradle con la librería de Remote Config, procederemos a agregar la siguiente línea de código en nuestro Activity, que será la que configure inicialmente nuestra configuración remota.

private fun setUpRemoteConfig() {
val configSettings = remoteConfigSettings {
// milisegundos de actualización
minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)
setUpRemoteConfigMessage()
}

Después implementaremos la función setUpRemoteConfigMessage() que es la cual descarga el mensaje en tiempo real y para este ejemplo lo estaremos mostrando en pantalla.

private fun setUpRemoteConfigMessage() {
remoteConfig.fetchAndActivate()
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
val updated = task.result
val messateFromFirebase = remoteConfig.getString(PRUEBA_KEY)
binding.testId.text = messateFromFirebase
} else {
// Maneja los errores
}
}
}

Se mostrará el mismo mensaje que escribimos como valor en la plataforma de Firebase.

¡Qué excelente! Pudiste ver cómo de una forma sencilla podemos cambiar el comportamiento de nuestras aplicaciones sin actualizar la aplicación como tal. Esto es muy importante, ya que en mi experiencia en la mayoría de mis proyectos personales lo he usado para poder forzar una nueva versión. Si existe un bug que en algún momento se corrigió y es crítico, de esta forma foro la versión que yo necesito que el usuario tenga y aparece un cartel en la vista que obliga sí o si a actualizar.

Puedes hacer un sinnúmero de funcionalidades con Remote Config, gracias a que puedes cambiar un valor desde un servidor sin necesidad de actualizar la aplicación.

Descarga el proyecto en el siguiente enlace de GitHub.

RemoteConfigFirebaseKotlin

Conclusión

En resumen, este servicio brinda a los desarrolladores una manera efectiva de personalizar y mejorar sus aplicaciones de Android sin tener que lanzar actualizaciones con frecuencia. Al utilizar Kotlin, puedes incorporar de forma sencilla Remote Config en tu proyecto y sacar provecho de sus funcionalidades para crear experiencias de usuario dinámicas y adaptables.

Recuerda

Aprende cada día y serás una nueva persona

¡Gracias por leer este artículo, estoy muy emocionado de seguir compartiendo mi conocimiento al mundo entero!

--

--

Kevin Morales

iOS Developer | Android Developer | Mobile Lead | UX & UI in Apps | Software Engineer | Entrepreneur | GDG Guayaquil Organizer | iOS Certified by @Meta