Implementación de la API de la pantalla de presentación principal | Igor Escodero | Julio de 2021
Android 12 nos trae una nueva característica que mejora la experiencia del usuario, es decir, el soporte oficial de la pantalla de bienvenida. Anteriormente, si una aplicación necesitaba esta característica visual, podría necesitar agregar una implementación personalizada, por lo que había muchas formas diferentes de lograrlo. La última versión de Android lo agregará automáticamente a todas las aplicaciones y permitirá la personalización con parámetros simples, pero desafortunadamente, esta función está limitada a Android 12.
Sin embargo, el 30 de junio de 2021, nos presentaron el primer alfa Pantalla de bienvenida del núcleo API para proporcionar compatibilidad con versiones anteriores de la nueva API de pantalla de presentación. Con esta biblioteca, esta nueva función se puede implementar en API 23, proporcionando la misma apariencia en varias versiones de Android.
Pero antes de sumergirnos en la implementación, ¿qué es exactamente la pantalla de presentación?
La pantalla de bienvenida es la información visual que se muestra al usuario cuando se inicializa la aplicación. La animación proporciona una mejor experiencia de usuario porque el usuario no se quedará mirando una pantalla en blanco, sino que podrá ver el icono de la aplicación o la animación personalizada. El ejemplo proporcionado en la documentación oficial puede ilustrarlo mejor:
Esta pantalla se muestra en dos situaciones:
- período Inicio fresco – Cuando el proceso de aplicación no se está ejecutando y el usuario abre la aplicación
- período Arranque en caliente – Cuando el proceso de aplicación se está ejecutando pero la Actividad no se ha creado (o se ha destruido antes)
Vale la pena mencionar que la pantalla de bienvenida No se mostrará período Arranque en calienteEsto significa que, por ejemplo, si el usuario presiona el botón de inicio para poner la aplicación en segundo plano y la vuelve a abrir antes de que el sistema destruya la Actividad, no se mostrará la pantalla de inicio.
La nueva API Core Splashscreen solo funciona cuando la aplicación está compilada en Android 12 (API 31).Una vez que esta versión esté actualmente en vista previa, debemos cargar compileSdkVersion
A esta versión build.gradle
expediente. Cuando se lance la versión estable de Android 12 en el futuro, la versión utilizada será API 31
.
android
compileSdkVersion "android-S" // while Android 12 is in preview
// compileSdkVersion 31 - when the Android 12 is stable
Sin embargo, en este archivo, agregamos una dependencia para esta nueva biblioteca:
implementation "androidx.core:core-splashscreen:1.0.0-alpha01"
Después de sincronizar los archivos de Gradle, necesitamos actualizar nuestra themes/values.xml
(queda uno night/
Si la aplicación admite temas oscuros) con nuevos parámetros.
Primero, creamos un tema nuevo, en nuestro ejemplo se llama Theme.MySplash
.Ahora agregamos los siguientes parámetros:
- El estilo padre debe ser
Theme.Splashscreen
De API windowSplashScreenBackground
Establecer color de fondowindowSplashScreenAnimatedIcon
Establecer icono de iniciopostSplashScreenTheme
Establezca el tema que se utilizará una vez que la pantalla de presentación ya no esté visible
Ahora configuramos la aplicación o el tema del evento principal como la nueva pantalla de presentación:
Después de configurar el tema, un paso muy importante es invocar la instalación de la pantalla de inicio antes de comenzar setContentView
En Actividad, o realice otras operaciones de vista en la vista raíz (como establecer una bandera).Conecta Actividad con postSplashScreenTheme
Reemplazamos el tema de la pantalla inicial con el tema regular que definimos anteriormente.
Si no sigue este paso, la aplicación fallará:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
¡Eso es! Ahora trasladaremos la pantalla de presentación de Android 12 a API 23. 🎉
Al desarrollar aplicaciones varias veces, debemos brindar a los usuarios una mejor experiencia, especialmente durante la primera ejecución. Esta primera impresión puede determinar si los usuarios utilizarán su aplicación. Agregar una pantalla de bienvenida para obtener información visual de que la aplicación se está cargando ayudará a dar una mejor impresión en lugar de mostrar una pantalla en blanco durante unos pocos milisegundos.
He trabajado en algunas aplicaciones que necesitan implementar una pantalla de bienvenida, una vez que no hay una biblioteca oficial para hacer esto, probamos algunas implementaciones. Durante este proceso, encontramos algunos problemas, como que la pantalla o la animación no se ejecutaran correctamente en algunos dispositivos durante el inicio en caliente. Tener la solución oficial de Google, y poder contribuir a ella, compartiendo ideas y errores en IssueTracker, creará una solución poderosa para todas las personas relevantes.
Para obtener más información sobre las pantallas de presentación, visite la documentación oficial. Contiene información sobre conceptos, parámetros y más opciones de personalización.
Nuevas funciones en la pantalla de bienvenida de Android 12