Nos complace anunciar que Jetpack WindowManager 1.5.0 ya es estable.
Esta versión se basa en la sólida base de adaptabilidad de WindowManager, lo que facilita aún más la creación de IU adaptables y pulidas que se ven geniales en todos los tamaños de pantalla. A medida que el ecosistema de Android sigue creciendo, los usuarios interactúan con las apps en una variedad de dispositivos más amplia que nunca: desde teléfonos y dispositivos plegables hasta tablets, pantallas conectadas, Chromebooks y hasta pantallas de automóviles en modo de estacionamiento.
WindowManager 1.5 se enfoca en proporcionar mejores herramientas para este entorno de dispositivos diversos.
Novedades de WindowManager 1.5
Esta versión estable introduce nuevos puntos de interrupción para pantallas muy grandes, mejora la API de incorporación de actividades y proporciona más flexibilidad para calcular las métricas de ventanas.
Nuevas clases de tamaño de ventana: grande y extragrande
La actualización más importante de la versión 1.5 es la incorporación de dos nuevas clases de tamaño de ventana de ancho: grande y extragrande.
Las clases de tamaño de ventana son nuestro conjunto oficial y bien definido de puntos de interrupción de viewport que te ayudan a diseñar y desarrollar diseños adaptables. Con la versión 1.5, ampliamos esta orientación para las pantallas que van más allá de las tablets típicas.
Estos son los nuevos puntos de interrupción de ancho:
- Grande: Para anchos entre 1,200 dp y 1,600 dp
- Extragrande: Para anchos ≥1600 dp
Las diferentes clases de tamaño de ventana según el ancho de la pantalla.
¿Por qué son importantes?
A partir de la versión beta 2 de Android 16 QPR1, Android admite pantallas conectadas, lo que permite a los usuarios conectar una pantalla externa a su dispositivo y transformarlo en una herramienta similar a una computadora con una pantalla grande.
Teléfono conectado a una pantalla externa, con una sesión de escritorio en la pantalla externa.
Con esta nueva función disponible, es fundamental ofrecer orientación basada en opiniones para incluir pantallas más grandes.
En estas superficies muy grandes, simplemente escalar el diseño expandido de una tablet no siempre es la mejor experiencia del usuario. Por ejemplo, un cliente de correo electrónico podría mostrar cómodamente dos paneles (una bandeja de entrada y un mensaje) en la clase de tamaño de ventana Expanded. Sin embargo, en un monitor de escritorio extragrande, el cliente de correo electrónico podría mostrar de forma elegante tres o incluso cuatro paneles, tal vez una bandeja de entrada, una lista de mensajes, el contenido completo del mensaje y un panel de calendario o tareas, todo al mismo tiempo.
Al proporcionar puntos de interrupción oficiales para tamaños de pantalla muy grandes, WindowManager 1.5 te brinda una señal clara para introducir diseños creados específicamente para una experiencia de escritorio productiva y con mucha información.
Las clases de tamaño de ventana se pueden calcular con computeWindowSizeClass(), que es una función de extensión de la biblioteca androidx.window.core.layout que extiende el tipo Set<WindowSizeClass>.
Para incluir las nuevas clases de tamaño de ventana en tu proyecto, simplemente llama a la función desde el conjunto WindowSizeClass.BREAKPOINTS_V2 en lugar de WindowSizeClass.BREAKPOINTS_V1:
val currentWindowMetrics = WindowMetricsCalculator.getOrCreate() .computeCurrentWindowMetrics(LocalContext.current) val sizeClass = WindowSizeClass.BREAKPOINTS_V2 .computeWindowSizeClass(currentWindowMetrics)
Luego, aplica el diseño correcto cuando te asegures de que tu app tiene al menos ese espacio:
if(sizeClass.isWidthAtLeastBreakpoint(
WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){
...
// window is at least 1200 dp wide
}Bibliotecas adaptables
La biblioteca adaptable de Compose Material 3 te ayuda a crear IU adaptables que se ajustan automáticamente según las configuraciones de ventana actuales, como las clases de tamaño de ventana o las posturas del dispositivo.
La buena noticia es que la biblioteca ya está actualizada con los nuevos puntos de interrupción. A partir de la versión 1.2 (ahora en etapa de candidato a lanzamiento), las funciones de la directiva de scaffold del panel predeterminado admiten las clases de tamaño de ancho de ventana grande y extra grande.
Solo debes habilitar la función declarando en tu archivo de compilación de Gradle que deseas usar los nuevos puntos de interrupción:
currentWindowAdaptiveInfo( supportLargeAndXLargeWidth = true)
Mejoras adicionales
- Incorporación de actividad: Guardado y restablecimiento automáticos: WindowManager ahora puede guardar y restablecer automáticamente el estado de las divisiones de incorporación de actividad. Esto ayuda a conservar el diseño del usuario durante la recreación del proceso, lo que genera una experiencia más estable y coherente. Los desarrolladores ya no tienen que guardar y restablecer el estado de forma manual, sino que pueden habilitar la opción automática con solo establecer la propiedad EmbeddingConfiguration#isAutoSaveEmbeddingState.
- Expansión de WindowMetrics: Ahora puedes calcular WindowMetrics desde un contexto de aplicación, no solo desde un contexto de actividad. Esto proporciona más flexibilidad para acceder a la información de la ventana desde diferentes partes de tu app.
Cómo comenzar
Para comenzar a usar las nuevas clases de tamaño grande y extragrande, y otras funciones de la versión 1.5 en tus proyectos de Android, actualiza las dependencias de tu app en build.gradle.kts a la versión estable más reciente:
dependencies {
implementation("androidx.window:window:1.5.0")
// or, if you're using the WindowManager testing library:
testImplementation("androidx.window:window-testing:1.5.0")
}WindowManager 1.5 es otro paso hacia la creación de apps completamente adaptables que se ejecutan en todos los factores de forma de Android. Consulta las notas de la versión oficiales para obtener una lista completa de los cambios y las correcciones de errores.
¡Suerte con la programación!
-
Novedades del productoNos complace anunciar un hito importante en la unificación de la informática para dispositivos móviles y computadoras de escritorio en Android: la compatibilidad con pantallas conectadas ya está disponible de forma general con el lanzamiento de Android 16 QPR3.
Francesco Romano • Lectura de 7 min -
Novedades del productoComo desarrolladores de Android, tienen muchas opciones cuando se trata de los agentes, los LLMs, las herramientas y las interfaces de línea de comandos (CLI) que usan para el desarrollo de apps. Nuestro objetivo es ayudarte a crear apps para Android atractivas y de alta calidad, independientemente de cómo elijas desarrollarlas.
Simona Milanovic • Lectura de 4 min -
Novedades del productoEn Google Play, expandimos continuamente nuestra plataforma de suscripciones para ayudarte a impulsar el crecimiento, adaptarte a nuevos modelos de negocio y llegar a tus usuarios exactamente donde se encuentran.
Sheenam Mittal • Lectura de 4 min
Recibe la información más reciente sobre el desarrollo de Android en tu bandeja de entrada todas las semanas.