Google developer lanza la la versión 1.2 de Jetpack Compose, el kit de herramientas de interfaz de usuario nativo y moderno de Android, que continúa dando grandes pasos. Jetpack Compose 1.2 incluye fuentes descargables, cuadrículas perezosas y mejoras para tabletas y Chrome OS. Jetpack Compose 1.2 también ha mejorado el enfoque del teclado, el manejo del mouse y las interacciones del usuario en las tabletas y Chrome OS.
Las fuentes descargables le permiten especificar fuentes locales para usar en su aplicación. Las fuentes descargables se descargan de forma asíncrona de una fuente de datos de fuentes descargables y se cargan en memoria una vez que se haya completado la descarga. Las fuentes descargables se pueden usar con tipografías y fuentes de texto Compose. Las fuentes descargables se mantienen en memoria hasta que las fuentes se cierran.
La versión 1.2 de Jetpack Compose también incluye cuadrículas perezosas. Las cuadrículas perezosas se cargan de forma asíncrona y se actualizan en la interfaz de usuario cada vez que se modifica el conjunto de datos. Las cuadrículas perezosas admiten varios diseños de cuadrícula, como cuadrículas, listas y bandejas, y se pueden aplicar a casi cualquier tipo de conjunto de datos.
El enfoque del teclado se ha mejorado para que las aplicaciones de Android se comporten de la misma manera que las aplicaciones de escritorio y web. Ahora, las aplicaciones de Android pueden enfocar los elementos de la interfaz de usuario con el teclado y el mouse. También se han mejorado las interacciones del usuario en las tabletas y Chrome OS.
Nota: Actualizar la biblioteca Compose Compiler a 1.2 requiere el uso de Kotlin 1.7.0. A partir de este momento, las versiones del Compilador se desvincularán de las versiones de otras bibliotecas de Compose. Obtenga más información sobre la justificación de esto en nuestra publicación de blog sobre el control de versiones independiente de las bibliotecas de Jetpack Compose .
Nuevas funciones y API estables
Varias funciones y API se agregaron como estables. Los puntos destacados incluyen:
- Las API
LazyHorizontalGrid
yLazyVerticalGrid
le permiten colocar listas de elementos en una cuadrícula. Estas API ya existían en Compose 1.1 pero estaban marcadas como@Experimental
. - La
WindowInsets
clase proporciona modificadores comowindowInsetsPadding
,systemBarsPadding
ywindowInsetsTopHeight
para tratar con las inserciones del dispositivo. Esta clase se basa en gran medida en la biblioteca de inserciones de Accompanist y la reemplaza como el mecanismo preferido para las inserciones. Modifier.nestedScroll
proporciona interoperabilidad de desplazamiento anidado con vistas. Aquí hay una muestra que demuestra esta nueva funcionalidad. Obtenga más información en la documentación de gestos .- Se agregaron curvas de relajación que ayudan a escribir bellas animaciones de manera eficiente. Lea más sobre cómo usarlos en nuestra guía de animación .
- Se mejoró la compatibilidad con el mouse al agregar Modifier.pointerHoverIcon , PointerEventType.Scroll y
PointerEvent.scrollDelta
.
Nuevas API experimentales
Seguimos incorporando nuevas funciones a Compose. Aquí hay algunos puntos destacados:
- Cree sus propios diseños desplazables eficientes personalizados con
LazyLayout
. Agregue efectos de sobredesplazamiento personalizados a su contenedor desplazable usandoModifier.overscroll
. - Fuentes descargables usando
GoogleFont
. Lea la documentación para comenzar. - Se agregaron muchas funciones de texto, como permitir la personalización
includeFontPadding
y la altura de las líneas (consulte la documentación de texto y la publicación del blog ), lasBrush
API (consulte la publicación del blog ) y la adición depluralStringResource
. - API de prueba mejoradas. Por ejemplo, la
performKeyInput
acción imita la entrada del teclado en sus pruebas. La nueva propiedad semántica testTagsAsResourceId permite la integración con UI Automator.
Errores arreglados
Solucionamos muchos problemas planteados por la comunidad, en particular:
- Deje que las animaciones sigan la “Escala de duración del animador” definida por el sistema .
- Permitir la desactivación del desplazamiento de diseños perezosos agregando
userScrollEnabled
parámetros. - Haga que el comportamiento del botón Atrás sea
TextField
idéntico al comportamiento enEditText
.