Cómo aplicar una versión mínima de la app con Remote Config

A medida que evoluciona tu app, las versiones nuevas pueden introducir cambios rotundos en las APIs de backend, resolver vulnerabilidades de seguridad críticas o reemplazar servicios y modelos de IA obsoletos. En estas situaciones, las versiones anteriores de la app pueden dejar de funcionar de manera confiable o segura.

Con Remote Config, puedes controlar los requisitos de la versión de la app de forma dinámica desde la nube. Si defines parámetros de versión en Remote Config, puedes solicitar o exigir a los usuarios que actualicen la app sin implementar una infraestructura de servidor personalizada ni lanzar una actualización de emergencia.

Elige una estrategia de actualización

Remote Config proporciona los parámetros de versión que se evaluarán en el cliente, lo que te permite configurar la IU de actualización de tu app para cualquiera de las dos estrategias, según la gravedad del cambio:

  • Actualización forzada (bloqueo): Si una versión anterior de la app no es compatible con tu backend o representa un riesgo de seguridad, puedes bloquear el acceso a la app hasta que el usuario la actualice. Cuando la versión instalada es anterior a la mínima requerida, puedes configurar tu app para que muestre un diálogo que no se pueda descartar y que dirija al usuario a la tienda de aplicaciones de la plataforma para que instale la versión más reciente.
  • Actualización flexible (opcional): Si una actualización incluye funciones nuevas, mejoras de rendimiento o correcciones de errores menores, puedes configurar tu app para que muestre un banner o un mensaje descartable que anime a los usuarios a actualizarla cuando les resulte conveniente, sin impedir que sigan usándola.

Paso 1: Configura los parámetros en Firebase console

Para administrar las versiones de la app, define parámetros en tu plantilla de Remote Config:

  1. En Firebase console, ve a la página DevOps y participación > Remote Config > Parámetros.
  2. Haz clic en Agregar parámetro (o Crear configuración si es tu primer parámetro).
  3. Define los siguientes parámetros:
    • minimum_version: Es una cadena que representa la versión más antigua compatible de tu app (por ejemplo, "2.4.0"). Las apps que ejecutan una versión anterior a este valor se bloquean hasta que se actualizan.
    • latest_version (opcional): Es una cadena que representa la versión más reciente disponible de tu app (por ejemplo, "2.5.1"). Las apps que ejecutan una versión entre minimum_version y latest_version pueden mostrar una recomendación de actualización opcional.
    • update_url (opcional): Es la URL de la tienda en la que los usuarios pueden descargar la actualización (como la ficha de Google Play Store o la ficha de la tienda de aplicaciones de Apple).
  4. Opcional: Agrega condiciones específicas de la plataforma:
    • Como las apps para Android y Apple suelen usar diferentes versiones de actualización y URLs de tienda, puedes agregar valores condicionales para cada plataforma con el mismo parámetro.
    • Haz clic en Agregar valor de condición > Crear condición. Asigna un nombre a la condición (como Android App o iOS App), selecciona App como la regla de segmentación y elige tu app.
    • Establece la cadena de versión adecuada para cada condición de plataforma y mantén el valor predeterminado como resguardo.
  5. Haz clic en Guardar y, luego, en Publicar cambios para aplicar la plantilla.

Paso 2: Implementa verificaciones de versiones del cliente

En el cliente, verifica la versión de la app instalada con los parámetros de Remote Config durante el inicio:

  1. Establece valores predeterminados en la app: Siempre proporciona valores predeterminados seguros en la app en tu paquete de aplicación (por ejemplo, establece minimum_version en la versión inicial de la app, como "1.0.0"). Esta configuración de resguardo garantiza que la app siga funcionando con normalidad si el dispositivo está sin conexión o si falla la solicitud de recuperación inicial. Para obtener orientación específica de la plataforma, consulta Descarga los valores predeterminados de las plantillas de Remote Config.
  2. Recupera y activa Remote Config: Recupera y activa los valores de plantilla más recientes cuando se inicie la app.
  3. Compara las versiones: Recupera las cadenas activas de minimum_version y latest_version, y compáralas con la versión de la app instalada actualmente.

  4. Toma medidas según la comparación de versiones:

    • Aplicar la actualización obligatoria: Si current_version es anterior a minimum_version, muestra una alerta modal de pantalla completa que no se pueda descartar. Inhabilita la navegación al resto de la app y proporciona un botón que abra el update_url en la tienda de aplicaciones de la plataforma.
    • Solicita una actualización opcional: Si current_version es anterior a latest_version, muestra un diálogo o una notificación descartables para informar a los usuarios que hay una actualización disponible, con las opciones Actualizar ahora o Más tarde.
    • Permitir el acceso: De lo contrario, permite que el usuario continúe en la app.

Prácticas recomendadas

  • Agrega un objeto de escucha en tiempo real: Cuando se requieren actualizaciones de versión debido a problemas de seguridad o una degradación grave de la UX, agregar un objeto de escucha de Remote Config en tiempo real a tu app puede ayudar a garantizar que los cambios en los requisitos de la versión se apliquen de inmediato en los dispositivos activos sin esperar a la próxima actualización de datos programada o al reinicio de la app.
  • Realiza pruebas con un grupo de prueba limitado: Antes de aumentar el minimum_version para todos los usuarios de producción, prueba la condición con un grupo de prueba limitado o segmenta a los verificadores internos con propiedades del usuario personalizadas. Esta prueba verifica que el modal de bloqueo se muestre correctamente y que los vínculos de la tienda se resuelvan de forma adecuada.
  • Usa las APIs de actualización integrada en la app de la plataforma: En Android, considera integrar las actualizaciones integradas en la app de Google Play junto con tus verificaciones de Remote Config para permitir que los usuarios descarguen e instalen actualizaciones sin salir de la app.
  • Lee las listas de tareas de producción: Lee la lista de tareas para el lanzamiento de Firebase y la lista de tareas de producción de AI Logic para obtener más orientación sobre cómo preparar tu app y las funciones potenciadas por IA para la producción.