Alerta a los verificadores sobre las nuevas versiones de tus apps con el SDK de Android para Firebase App Distribution: Codelab

1. Descripción general

c7a9160ef7b184c7.png 22e0b52f771c060d.png

Te damos la bienvenida al codelab sobre cómo integrar el SDK de Firebase App Distribution en tu app para Android. En este codelab, agregarás el SDK de Android para App Distribution a tu app a fin de mostrar alertas en la app a los verificadores cuando haya nuevas compilaciones disponibles para descargar. Aprenderás a usar una configuración básica y una personalizada a fin de lograr que los verificadores accedan para recibir actualizaciones. Luego, enviarás una versión nueva a App Distribution y activarás una alerta de compilación nueva directamente en la app.

Aprendizajes esperados

  • Cómo usar App Distribution para distribuir una app previa al lanzamiento a los verificadores
  • Cómo integrar el SDK de Android para App Distribution en tu app
  • Cómo alertar a un verificador cuando haya una nueva compilación previa al lanzamiento lista para instalar
  • Cómo personalizar el SDK para que se adapte a tus necesidades de pruebas

Requisitos

  • La versión más reciente de Android Studio
  • Código de muestra.
  • Un dispositivo de prueba con Android 4.4 o versiones posteriores y Servicios de Google Play 9.8 o versiones posteriores, o un emulador con Servicios de Google Play 9.8 o versiones posteriores
  • Si usas un dispositivo, debes usar un cable de conexión.

¿Cómo usarás este instructivo?

Leer Leer y completar los ejercicios

¿Cómo calificarías tu experiencia con la compilación de apps para Android?

Principiante Intermedio Avanzado

2. Obtén el código de muestra

Clona el repositorio de GitHub a partir de la línea de comandos.

$ git clone https://github.com/FirebaseExtended/codelab-appdistribution-android.git

Si no tienes Git instalado, también puedes descargar el proyecto de muestra desde su página de GitHub o haciendo clic en este vínculo.

3. Importa la app de partida

En Android Studio, selecciona el directorio codelab-appdistribution-android/start ( carpeta_android_studio.png) de la descarga del código de muestra (File > Open > .../codelab-appdistribution-android/start).

Ahora, deberías tener el proyecto de inicio abierto en Android Studio.

4. Crea un proyecto de Firebase console

Agregar un proyecto de Firebase nuevo

  1. Abre Firebase console.
  2. Selecciona Agregar proyecto y, luego, asígnale el nombre “Codelab de Firebase”.

No es necesario que habilites Google Analytics en este proyecto.

  1. Haz clic en Crear proyecto.

Agrega una app a Firebase

Registra tu app en Firebase. Usa "com.google.firebase.appdistributioncodelab" como nombre del paquete.

Agrega el archivo google-services.json a tu app

Después de agregar el nombre del paquete y seleccionar Registrar, sigue estos pasos para agregar google-services.json a tu app:

  1. Haz clic en Descargar google-services.json a fin de obtener el archivo de configuración de Firebase para Android.
  2. Copia el archivo google-services.json en el directorio app de tu proyecto.
  3. Una vez que se descargue el archivo, puedes omitir los próximos pasos que se muestran en la consola (ya se realizaron en el proyecto build-android-start).

Actualiza el ID de aplicación para que coincida con el de tu app de Firebase

  1. En el menú de la izquierda (pestaña Project), asegúrate de estar en la vista "Android", busca la pestaña "Gradle Scripts" y abre el archivo Gradle (generalmente app/build.gradle.kts) de tu módulo (nivel de app).
  2. Cambia la propiedad applicationId para que coincida con el ID de aplicación de tu app de Firebase. Debe ser “com.google.firebase.appdistributioncodelab”.

Cómo sincronizar tu proyecto con archivos Gradle

Para asegurarte de que todas las dependencias estén disponibles para tu app, sincroniza el proyecto con los archivos de Gradle. Para ello, selecciona File > Sync Project with Gradle Files en la barra de herramientas de Android Studio.

5. Configura alertas de compilación nuevas en la app con el SDK de Android para App Distribution

En este paso, agregarás el SDK de Android para Firebase App Distribution a tu app y mostrarás alertas en la app a los verificadores cuando haya nuevas compilaciones disponibles para instalar. Para ello, asegúrate de habilitar la API de Firebase App Testers en tu proyecto "Codelab de Firebase" (en la consola de Google Cloud). Debes acceder con la misma cuenta y seleccionar el proyecto correcto en el menú desplegable de la parte superior.

Cómo configurar alertas en la app

El SDK de Android para App Distribution ofrece dos formas de configurar alertas de compilación en la app para los verificadores:

  • Una configuración de alertas básica, que incluye un diálogo compilado previamente para mostrar a los verificadores.
  • Una configuración de alertas avanzada, que te permite personalizar la interfaz de usuario (IU).

Comenzaremos con la configuración básica de alertas. Puedes usar updateIfNewReleaseAvailable para mostrar un diálogo de habilitación de alertas compilado previamente a los verificadores que aún no habilitaron las alertas y, luego, comprobar si hay una compilación nueva disponible. Para habilitar las alertas, los verificadores deben acceder a una cuenta que tenga acceso a la app en App Distribution. Cuando se llama al método, este invoca la siguiente secuencia:

  1. Comprueba si un verificador habilitó las alertas. De lo contrario, el método mostrará un diálogo compilado previamente que les solicitará a los verificadores que accedan a App Distribution con su Cuenta de Google.

La habilitación de alertas es un proceso único en el dispositivo de prueba que persiste en todas las actualizaciones de tu app. Las alertas permanecerán habilitadas en el dispositivo de prueba hasta que se desinstale la app o se llame al método signOutTester.

  1. Busca compilaciones disponibles recientemente para que las instale el verificador.
  2. Muestra una alerta compilada previamente que le solicita al verificador que descargue la versión más reciente.
  3. Comprueba el nuevo tipo de compilación antes de continuar con la actualización:
  4. Si la nueva compilación es un paquete de aplicación (AAB), redirecciona al verificador a Play Store para completar el proceso de actualización.
  5. Si la compilación nueva es un APK, el SDK descarga la compilación nueva en segundo plano y le solicita al verificador que instale la compilación nueva cuando se complete la descarga. El SDK envía notificaciones de progreso de descarga al usuario mediante NotificationManager.. Puedes agregar tu propio indicador de progreso adjuntando un controlador onProgressUpdate a la tarea updateIfNewReleaseAvailable.

Puedes llamar a updateIfNewReleaseAvailable() en cualquier momento de tu app. Por ejemplo, puedes llamar a updateIfNewReleaseAvailable() durante el método onResume() de MainActivity:

Abre MainActivity.kt y crea el método onResume() de la siguiente manera:

MainActivity.kt

override fun onResume() {
    super.onResume()
    checkForUpdate()
}

Ahora implementemos el método checkForUpdate().

MainActivity.kt

   private fun checkForUpdate() {
        firebaseAppDistribution.updateIfNewReleaseAvailable()
            .addOnProgressListener { updateProgress ->
                // (Optional) Implement custom progress updates in addition to
                // automatic NotificationManager updates.
            }
            .addOnFailureListener { e ->
                if (e is FirebaseAppDistributionException) {
                    // Handle exception.
                }
            }
    }

6. Crea verificadores e invita a verificadores para que descarguen tu app

En este paso, distribuirás la compilación a los verificadores con Firebase console para compilar la app y probar la implementación.

Cómo compilar tu app

Cuando esté todo listo para distribuir una versión previa al lanzamiento de tu app a los verificadores, compila tu APK siguiendo el proceso normal. Debes firmar el APK con tu clave de depuración o la clave de firma de la app.

Distribuye tu app a los verificadores

Para distribuir tu app a los verificadores, sube el archivo APK con Firebase console como se indica a continuación:

  1. Abre la página App Distribution de Firebase console. Selecciona tu proyecto de Firebase cuando se te solicite.
  2. En la página Lanzamientos, selecciona la app que quieres distribuir desde el menú desplegable.

623460c3c8a82ce6.png

  1. Haz clic en Comenzar.

bf503b25066ff4a4.png

  1. Arrastra el archivo APK a la consola para subirlo.
  2. Cuando se complete la carga, especifica los grupos de verificadores y los verificadores individuales que quieres que reciban la compilación. (Agrega tu correo electrónico para recibir la invitación). Luego, agrega las notas de la versión de la compilación. Si quieres obtener más información para crear grupos de verificadores, consulta Agrega y quita verificadores.

3343048f0930e84b.png

  1. Haz clic en Distribuir a fin de hacer que la compilación esté disponible para los verificadores.

518ff418184.png

En Firebase console, ahora puedes ver los verificadores que agregaste a la versión de tu app.

9935a41810344c61.png

Dado que incluiste tu dirección de correo electrónico, recibirás un mensaje de Firebase App Distribution en el que se te invitará a probar la app. Ahora eres el primer verificador. Sigue las instrucciones que se indican en Aceptar la invitación para comenzar a configurar como verificador en tu dispositivo de prueba.

Aceptar la invitación

Primero, deberás aceptar la invitación para descargar y probar la versión.

  1. En tu dispositivo de prueba Android, abre el correo electrónico enviado desde Firebase App Distribution y presiona Comenzar.
  2. En la app web de verificadores de Firebase App Distribution que aparece, accede con tu Cuenta de Google y presiona Aceptar invitación. Ahora puedes ver la versión para la que te invitaron a probar.

c18cb684f8e82ad6.png

Descarga la versión desde el dispositivo de prueba

Cuando navegas a la app del codelab de AppDistribution, puedes ver que la versión está lista para descargar.

5414d9a536f25ece.png

  1. Presiona Descargar y, luego, instala y ejecuta la app.
  2. Cuando se inicie la app, se te solicitará que habilites alertas de compilación nuevas. Presiona Activar.

b059e09acaa4779f.png

  1. Accede con tu cuenta de verificador.

22e0b52f771c060d.png

Volverás a la app. La próxima vez que la ejecutes, no será necesario que accedas ni aceptes alertas.

c9f33df16a2680d.png

Distribuye una actualización a tus verificadores

  1. Actualiza tu versionName a "1.1" y versionCode a 2 en tu archivo Gradle (generalmente app/build.gradle) de tu módulo (nivel de app).
  2. Compila tu APK siguiendo el proceso normal. Debes firmar el APK con tu clave de depuración o la clave de firma de la app.
  3. Sube este APK nuevo a Firebase console, vuelve a agregar tu correo electrónico como verificador y haz clic en Distribuir.

2dfa702edfdce6b8.png

Alertas de compilaciones de prueba

  1. Asegúrate de haber cerrado la app si estaba abierta.
  2. Reinicia la app.
  3. Cuando se reinicie la app, recibirás una alerta de nueva versión disponible.

987e3d0ba4e56f84.png

  1. Para recibir la versión más reciente, haz clic en Actualizar.
  2. Si se te solicita, elige la opción para habilitar las instalaciones desde fuentes desconocidas.
  3. Haz clic en Instalar (o Actualizar) en la siguiente pantalla.

7c7cd15d60bc764.png

  1. ¡Felicitaciones! Pudiste actualizar tu app con las alertas integradas.

7. Personaliza el acceso de verificadores

Los métodos isTesterSignedIn y signInTester/signOutTester te brindan más flexibilidad para personalizar la experiencia de acceso de tus verificadores para que coincida mejor con la apariencia de tu app.

En el siguiente ejemplo, se verifica si el verificador ya accedió a su cuenta de Firebase App Distribution, de modo que puedes elegir mostrar la IU de acceso solo a los verificadores que aún no lo hicieron. Una vez que el verificador haya accedido, podrás llamar a checkForUpdate para comprobar si tiene acceso a una compilación nueva.

Para inhabilitar la comprobación de actualizaciones automáticamente en onResume, marcamos como comentario la llamada checkForUpdate().

MainActivity.kt

override fun onResume() {
        super.onResume()
        //checkForupdate()
    }

En su lugar, checkForUpdate() ya se agregó en OnClickListener de updatebutton.

Ahora, implementemos el método signIn() que hará que el usuario acceda si no accedió a su cuenta o que cerrará la sesión del usuario si ya accedió.

MainActivity.kt

    private fun signIn() {
        if (isTesterSignedIn()) {
            firebaseAppDistribution.signOutTester()
            configureUpdateButton()
            configureSigninButton()
        } else {
            firebaseAppDistribution.signInTester()
        }
    }

Por último, implementemos el método isTesterSignedIn.

MainActivity.kt

    private fun isTesterSignedIn() : Boolean {
        return firebaseAppDistribution.isTesterSignedIn
    }

Compila y prueba tu implementación

8. ¡Felicitaciones!

Integraste la función de “visualización de alertas en la app” en una app con el SDK de Android para Firebase App Distribution.

Temas abordados

  • Firebase App Distribution
  • SDK de Android sobre alertas nuevas de Firebase App Distribution

Próximos pasos

Más información

¿Tienes alguna pregunta?

Informar problemas