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 hace que sea aún más fácil crear interfaces de usuario adaptativas y pulidas que se vean bien en todos los tamaños de pantalla. A medida que el ecosistema Android sigue creciendo, los usuarios interactúan con las aplicaciones en una variedad de dispositivos más amplia que nunca: desde teléfonos y plegables hasta tablets, pantallas conectadas, Chromebooks e incluso pantallas de coche en modo aparcado.
WindowManager 1.5 se centra en ofrecer mejores herramientas para este entorno de dispositivos diversos.
Novedades de WindowManager 1.5
En esta versión estable se introducen nuevos puntos de interrupción para pantallas muy grandes, se mejora la API Activity Embedding y se ofrece más flexibilidad para calcular las métricas de las ventanas.
Nuevas clases de tamaño de ventana: grande y muy grande
La mayor novedad de la versión 1.5 es la incorporación de dos nuevas clases de tamaño de ventana de ancho: grande y extra grande.
Las clases de tamaño de ventana son nuestro conjunto oficial de puntos de interrupción de la ventana gráfica que te ayudan a diseñar y desarrollar diseños adaptables. Con la versión 1.5, ampliamos estas directrices a las pantallas que van más allá de las tablets típicas.
Estos son los nuevos puntos de interrupción de ancho:
- Grande: para anchuras entre 1200 y 1600 dp
- Extragrande: para anchuras ≥ 1600 dp
Las diferentes clases de tamaño de ventana en función de la anchura de la pantalla.
¿Por qué son importantes?
A partir de Android 16 QPR1 Beta 2, Android admite pantallas conectadas, lo que permite a los usuarios conectar una pantalla externa a su dispositivo y convertirlo en una herramienta similar a un ordenador de escritorio con una pantalla grande.
Teléfono conectado a una pantalla externa, con una sesión de escritorio en la pantalla externa.
Ahora que esta nueva función está disponible, es fundamental ofrecer recomendaciones sobre cómo incluir pantallas más grandes.
En estas superficies tan grandes, ampliar el diseño expandido de una tablet no siempre ofrece la mejor experiencia de usuario. Por ejemplo, un cliente de correo podría mostrar cómodamente dos paneles (un buzón de correo y un mensaje) en la clase de tamaño de ventana Ampliada. Sin embargo, en un monitor de escritorio extra grande, el cliente de correo podría mostrar de forma elegante tres o incluso cuatro paneles: quizás un buzón de correo, una lista de mensajes, el contenido completo del mensaje y un panel de calendario o tareas, todo a la vez.
Al proporcionar puntos de interrupción oficiales para tamaños de pantalla muy grandes, WindowManager 1.5 te ofrece una señal clara para introducir diseños específicamente diseñados 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 amplía el tipo Set<WindowSizeClass>.
Para incluir las nuevas clases de tamaño de ventana en tu proyecto, solo tienes que llamar 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)
A continuación, aplica el diseño correcto cuando tengas la certeza de que tu aplicación tiene al menos ese espacio:
if(sizeClass.isWidthAtLeastBreakpoint(
WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){
...
// window is at least 1200 dp wide
}Bibliotecas adaptativas
La biblioteca Compose Material 3 Adaptive te ayuda a crear interfaces de usuario adaptables que se ajustan automáticamente según las configuraciones de la ventana actual, 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 (que ahora está en la fase de versión candidata), las funciones de la directiva de estructura del panel predeterminada admiten las clases de tamaño de ancho de ventana grande y extra grande.
Solo tienes que habilitar la función declarando en tu archivo de compilación de Gradle que quieres usar los nuevos puntos de interrupción:
currentWindowAdaptiveInfo( supportLargeAndXLargeWidth = true)
Mejoras adicionales
- Inserción de actividad: guardado y restauración automáticos: WindowManager ahora puede guardar y restaurar automáticamente el estado de las divisiones de inserción de actividad. De esta forma, se conserva el diseño del usuario en la recreación del proceso, lo que da lugar a una experiencia más estable y coherente. Los desarrolladores ya no tienen que guardar y restaurar el estado manualmente, sino que pueden habilitar la opción automática configurando la propiedad EmbeddingConfiguration#isAutoSaveEmbeddingState.
- WindowMetrics ampliado: ahora puedes calcular WindowMetrics a partir de un contexto de aplicación, no solo de un contexto de actividad. De esta forma, tendrás más flexibilidad para acceder a la información de las ventanas desde diferentes partes de tu aplicación.
Cómo empezar
Para empezar a usar las nuevas clases de tamaño grande y extra grande, así como otras funciones de la versión 1.5 en tus proyectos de Android, actualiza las dependencias de tu aplicación en build.gradle.kts a la última versión estable:
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 más para crear aplicaciones totalmente adaptables que se ejecuten en diferentes factores de forma de Android. Consulta las notas de la versión oficiales para ver una lista completa de los cambios y las correcciones de errores.
¡Disfruta programando!
Seguir leyendo
-
Noticias sobre productos
Nos complace anunciar un hito importante para acercar la informática móvil y 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 minutos
-
Noticias sobre productos
Nos complace anunciar importantes actualizaciones de nuestros recursos de diseño, que te ofrecen la guía completa que necesitas para crear aplicaciones Android adaptables y de alta calidad en todos los factores de forma. Ahora tenemos una guía sobre la experiencia de escritorio y una galería de diseño de Android renovada.
Ivy Knight • Tiempo de lectura: 2 min
-
Noticias sobre productos
Se ha lanzado la primera versión alfa de Room 3.0. Room 3.0 es una versión principal de la biblioteca que introduce cambios importantes y se centra en Kotlin Multiplatform (KMP). Además, añade compatibilidad con JavaScript y WebAssembly (WASM) a la compatibilidad con Android, iOS y JVM para ordenadores.
Daniel Santiago Rivera • Tiempo de lectura: 4 min
Mantente al día
Recibe cada semana en tu bandeja de entrada las últimas novedades sobre el desarrollo para Android.