Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Remote Config de Firebase para aplicaciones Android

by
Difficulty:IntermediateLength:MediumLanguages:

Spanish (Español) translation by Ana Paulina Figueroa Vazquez (you can also view the original English article)

Remote Config de Firebase es un servicio único diseñado para brindarte un control detallado sobre las instancias de tus aplicaciones mientras estén instaladas en los dispositivos de los usuarios. Al emplear este servicio puedes modificar de manera confiable la apariencia y el comportamiento de tus aplicaciones a lo largo de toda tu base de usuarios sin publicar actualizaciones en Google Play.

Si piensas que esto podría ser un riesgo para la seguridad, déjame asegurarte que Remote Config no te permite inyectar código nuevo remotamente en tus aplicaciones. Solamente te permite modificar, a través de la consola de Firebase, los valores de ciertas variables predeterminadas que ya están presentes en el código. De hecho puedes pensar en ellas como variables del lado del servidor de las que depende tu aplicación.

En este tutorial te mostraré cómo usar algunas de las características más poderosas de Remote Config en aplicaciones Android.

1. ¿Por qué usar Remote Config?

La API Remote Config está principalmente destinada a ser usada como una alternativa a los valores estáticos simples en tus aplicaciones. Ejemplos de tales valores pueden ser colores, dimensiones, retrasos y etiquetas.

Para comprender mejor la importancia de la API considera el siguiente escenario: tú creas y publicas una aplicación con valores estáticos para el tamaño de la fuente y el color de todas sus etiquetas. Unos días más tarde, tus usuarios te dicen que prefieren un tamaño de fuente más grande y un color de fuente diferente. Ya que los valores son estáticos, para cambiarlos ahora tendrás qué modificar tu código, compilar la aplicación otra vez asignándole un nuevo número de versión y publicarla nuevamente en Google Play. Eso es mucho trabajo para una corrección tan pequeña. Además, si los usuarios cambian de opinión ¡tendrás qué hacerlo todo de nuevo!.

Con Remote Config de Firebase puedes lograr que el tamaño y el color de la fuente sean variables configurables remotamente y usar la consola de Firebase para cambiar rápidamente sus valores en el momento que lo desees y tantas veces como quieras. Este moderno enfoque también garantiza que los cambios ocurran tan pronto como sea posible en los dispositivos de todos tus usurios, sin necesidad de que éstos descarguen actualizaciones manualmente.

2. Configuración del proyecto

Con el asistente de Firebase en Android Studio, añadir Remote Config a tu proyecto requiere solamente unos cuantos clics.

Comienza yendo a Tools > Firebase (Herramientas > Firebase) y eligiendo Remote Config > Set up Firebase Remote Config (Remote Config > Configurar Remote Config de Firebase) en el panel que aparece.

Firebase Assistant for Remote Config

A continuación presiona el botón Connect to Firebase (Conectar con Firebase) para asociar tu proyecto de Android Studio a un proyecto de Firebase. En el cuadro de diálogo que aparece, selecciona la opción Create new Firebase project (Crear nuevo proyecto de Firebase) y presiona el botón Connect to Firebase (Conectar con Firebase).

Connect to Firebase dialog

Después de lograr una conexión exitosa, puedes presionar el botón Add Remote Config to your app (Añadir Remote Config a tu aplicación) para agregar todas las dependencias necesarias a los archivos Gradle de tu proyecto. Cuando se te solicite, presiona el botón Accept Changes (Aceptar cambios) para finalizar la configuración del proyecto.

Project changes prompt

3. Definiendo parámetros de configuración

Todas las variables que quieras cambiar remotamente deben estar definidas en tu proyecto de Firebase como parámetros de Remote Config. Por lo tanto, usa un navegador para iniciar sesión en la consola de Firebase, desplázate hacia abajo a la sección Project Overview (Vista general del proyecto) para encontrar la tarjeta Remote Config y presiona el botón Get Started (Comenzar).

En la pantalla de bienvenida del servicio Remote Config, presiona el botón Add your first parameter (Agrega tu primer parámetro) para comenzar a agregar las variables.

Remote Config welcome screen

Ahora vamos a definir dos parámetros: font_size y font_color. El primero debe ser un número y el segundo una cadena. Asegúrate de asignar valores predeterminados razonables a ambos.

Parameter creation dialog

Ahora deberás poder ver los dos parámetros que creaste. Sin embargo, sus valores no estarán disponibles en tu aplicación a menos que los publiques, así que presiona el botón Publish changes (Publicar cambios).

List of parameters

4. Preparando un diseño

Para poder usar los parámetros que creamos, agrega un widget TextView mostrando un mensaje en el archivo de diseño XML de tu activity. Si creaste un nuevo proyecto de Android Studio para este tutorial, puedes usar el widget TextView con el texto "Hello World" ("Hola Mundo") que está disponible de forma predeterminada, pero asegúrate de asignarle un id.

Ahora puedes obtener una referencia al widget dentro del método onCreate() de tu activity usando el método findViewById().

5. Inicializando Remote Config

Nuestra aplicación debe ser capaz de funcionar correctamente la primera vez que se abra, incluso si el usuario no está conectado a Internet. Por lo tanto, ésta necesita conocer tanto los nombres como los valores predeterminados de nuestros parámetros de Remote Config. Crear un mapa para almacenarlos es una buena idea.

Toma en cuenta que los nombres y los valores predeterminados deben ser idénticos a sus equivalentes en la consola de Firebase.

Ahora podemos inicializar un cliente para el servicio de Remote Config usando el mapa defaults. Para hacerlo, primero crea una instancia del cliente invocando al método getInstance() de la clase FirebaseRemoteConfig y luego envía el mapa a su método setDefaults().

En este punto el cliente de Remote Config está listo y podemos comenzar a usar los valores que proporciona.

6. Usando los valores predeterminados

La instancia FirebaseRemoteConfig proporciona algunos métodos con nombres intuitivos que puedes usar para recuperar los valores de los parámetros de Remote Config. Por ejemplo, puedes invocar al método getDouble() para recuperar valores numéricos. De forma similar, puedes invocar al método getString() para recuperar valores de tipo cadena.

El siguiente código te muestra cómo recuperar los valores de los parámetros font_size y font_color.

Una vez que tengas los valores, puedes usarlos de cualquier forma que desees. Por ahora vamos a usarlos para cambiar la apariencia del widget myMessage.

Si ahora ejecutas la aplicación podrás ver el widget TextView usando los valores predeterminados de los parámetros de Remote Config.

App running with default values

7. Obteniendo los valores más recientes

En este momento el cliente de Remote Config solamente está devolviendo valores del mapa que le enviamos. Para permitirle usar valores obtenidos de Firebase debemos invocar a su método activateFetched().

Sin embargo, el método activateFetched() en realidad no recupera valores de Firebase. Por lo tanto, a continuación debemos invocar al método fetch(), que se ejecuta de forma asíncrona, para obtener los valores.

Si ejecutas la aplicación en este punto, ésta aún usará los valores predeterminados. Sin embargo, si esperas algunos segundos, cierras la aplicación y la abres de nuevo, ésta comenzará a usar los valores que asignaste en la consola de Firebase.

Usualmente es una buena idea dejar que los valores modificados surtan efecto hasta la próxima vez que el usuario abra la aplicación. Puedes adjuntar un método de escucha al objeto Task devuelto por el método fetch() y actualizar tu interfaz de usuario dentro del método de escucha, pero es posible que a tus usuarios no les guste este abrupto cambio.

Sin embargo, puedes usar el método de escucha para fines de depuración.

8. Cambiando los valores

Actualmente los valores del mapa coinciden con los valores remotos. Para poder ver el servicio de Remote Config en acción debemos cambiar los valores que mencionamos en la consola de Firebase. Así que regresa a la consola y haz clic en alguno de los parámetros que puedes ver en la sección Remote Config.

En el cuadro de diálogo que aparece deja el campo Parameter key (Clave de parámetro) sin modificaciones pero cambia el valor. De forma similar puedes cambiar el valor del otro parámetro también.

Finalmente asegúrate de presionar el botón Publish Changes (Publicar cambios) para que los valores estén disponibles para el cliente de Remote Config.

Updated values for the parameters

Si ahora abres la aplicación, la cierras y la vuelves a abrir, deberás ver que el widget TextView tiene una apariencia diferente.

App running with latest values from Firebase

9. Añadiendo condiciones a los parámetros

No siempre tienes que enviar los mismos valores de Remote Config a todos tus usuarios. La consola de Firebase te permite agregar condiciones a tus parámetros, de manera que éstos puedan devolver diferentes valores a diferentes subconjuntos de tu base de usuarios. Existen muchas reglas que puedes usar para crear tales subconjuntos. Por ejemplo, puedes orientar tus valores a los usuarios que pertenezcan a un país específico, a usuarios con dispositivos que ejecuten una versión en particular de Android o incluso a usuarios que hablen un idioma determinado.

Dado que Firebase hace la administración de forma transparente, no es necesario que hagas cambios en tu código para gestionar las condiciones asociadas a tus parámetros.

Con el propósito de mostrar un ejemplo, vamos a agregar una condición al parámetro font_color de manera que su valor sea azul solamente para los usuarios de la India.

Comienza haciendo clic sobre el parámetro en la consola de Firebase. En el formulario que aparece haz clic en el campo desplegable Add value for condition (Añadir valor para la condición) y selecciona Define new condition (Definir nueva condición).

Add value for condition field

En el cuadro de diálogo que se abre a continuación podrás asignarle un nombre a tu condición y seleccionar diferentes opciones desde la lista desplegable Applies if... (Aplica si...), lo que te permitirá enfocarte en un grupo específico de usuarios. Para enfocarte en usuarios de un país específico tendrás que elegir la opción Country/Region (País/Región). En la lista que aparece a un lado puedes elegir uno o más países. Elige India aquí.

Condition creation dialog

Una vez que hayas llenado todos los campos, presiona el botón Create condition (Crear condición) para finalizar la condición.

En este punto tu parámetro será capaz de aceptar dos valores en vez de uno. Deja el campo Default value como está y escribe el código hexadecimal del color azul en el campo del valor condicional.

Conditional values dialog

Si publicas los cambios ahora, los usuarios de la India recibirán una actualización adicional, y el texto del widget TextView aparecerá azul para ellos.

Same app running on devices in different countries

Conclusión

Ahora sabes cómo modificar una aplicación remotamente usando Remote Config de Firebase y la consola de Firebase. Con un poco de creatividad hay muchas cosas que puedes hacer con este servicio para mejorar la experiencia del usuario en tu aplicación. Por ejemplo, hoy en día la mayoría de los desarrolladores lo usan para cambiar los temas de sus aplicaciones y así marcar días festivos. Muchos también lo usan con Analytics de Firebase para ejecutar pruebas A/B en sus bases de usuarios.

Para obtener más información sobre Remote Config consulta la documentación oficial.

Advertisement
Advertisement
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.