Blog de desarrolladores de Android: Google I/O 2023: ¿Qué hay de nuevo en Jetpack?



Publicado por Amanda Alexander, Gerente de Producto, Android

Android Jetpack es un pilar importante del desarrollo moderno de Android. Es un conjunto de más de 100 bibliotecas, herramientas y guías para ayudar a los desarrolladores a seguir las mejores prácticas, reducir el código estándar y escribir código que funcione de manera consistente en todas las versiones y dispositivos de Android, para que pueda concentrarse en desarrollar características únicas para su aplicación. De hecho, la mayoría de las aplicaciones de Google Play se basan en Jetpack. Más del 90% de las 1000 aplicaciones principales usan Jetpack.

A continuación, cubrimos los aspectos más destacados de las actualizaciones recientes en tres áreas principales de Jetpack:

  • Bibliotecas arquitectónicas y guía
  • Optimización del rendimiento de la aplicación
  • Bibliotecas y guías de interfaz de usuario

Y luego termine con algunas actualizaciones más importantes.

1. Bibliotecas arquitectónicas y orientación

Las bibliotecas y los componentes de la arquitectura de aplicaciones garantizan que las aplicaciones sean sólidas, comprobables y fáciles de mantener.

Índice del contenido
  • persistencia de datos
  • Administrar tareas con WorkManager
  • almacenamiento de datos
  • Gestión del ciclo de vida
  • Gesto mirando hacia adelante
  • Actualizaciones de actividad para una experiencia de Photo Picker más consistente
  • Recuperación de datos incrementales
  • Mejora en los tiempos de inicio
  • Jetpack componer
  • Vista
  • componer para tv
  • Material 3 para Componer
  • Comprender el estado de la ventana
  • Multiplataforma Kotlin
  • persistencia de datos

    La mayoría de las aplicaciones necesitan mantener el estado local, ya sea almacenando en caché los resultados, manteniendo listas locales de datos de entrada del usuario o sirviendo datos devueltos en la interfaz de usuario. Room es la capa de persistencia de datos recomendada, que proporciona una capa de abstracción sobre SQLite, lo que permite una mayor usabilidad y seguridad en la plataforma.

    Agregamos muchas funciones nuevas a Room, como la operación upsert, que intenta insertar una entidad si no hay un conflicto de exclusividad o actualizar la entidad si hay un conflicto, y compatibilidad con el uso de clases de valor de Kotlin para KSP. Estas nuevas funciones están disponibles en Room 2.6-alpha con todas las fuentes de la biblioteca escritas en Kotlin, y admiten tanto el lenguaje de programación Java como la generación de código Kotlin.

    Administrar tareas con WorkManager

    La biblioteca WorkManager facilita la programación de tareas asincrónicas diferibles que deben realizarse de manera confiable, como cargar copias de seguridad o análisis. Estas API le permiten crear una tarea y pasarla a WorkManager para que se ejecute cuando se cumplan las restricciones de trabajo.

    Ahora puede usar WorkManager para actualizar una WorkRequest después de haberla puesto en cola. Esto suele ser necesario para aplicaciones más grandes que con frecuencia necesitan cambiar restricciones o actualizar su personal sobre la marcha. A partir de WorkManager 2.8.0, la API updateWork() es la manera de hacer esto sin pasar por el proceso de cancelar manualmente y poner en cola una nueva WorkRequest. Esto simplifica enormemente el proceso de desarrollo.

    almacenamiento de datos

    La biblioteca DataStore es una sólida solución de almacenamiento de datos que soluciona problemas con SharedPreferences y proporciona una API moderna basada en rutinas.

    En DataStore 1.1 Alpha, agregamos una función solicitada con frecuencia: soporte multiproceso, que le permite acceder a DataStore desde múltiples procesos mientras brinda garantías de consistencia de datos entre ellos. Otras funciones incluyen una nueva interfaz de almacenamiento que permite cambiar el mecanismo de almacenamiento subyacente por Datastore (proporcionamos implementaciones para java.io y okio), y también agregamos soporte para Kotlin Multiplatform.

    Gestión del ciclo de vida

    Los componentes conscientes del ciclo de vida realizan acciones en respuesta a un cambio en el estado del ciclo de vida de otro componente, p. B. Actividades y Fragmentos. Estos componentes lo ayudan a crear un código más organizado y, a menudo, más liviano que es más fácil de mantener.

    Hemos lanzado una versión estable de Lifecycle 2.6.0 que incluye más integración de Compose. Agregamos un nuevo método de extensión para Flow: CollectAsStateWithLifecycle(), que se recolecta de los ríos y representa su valor más reciente como Estado Compuesto de una manera consciente del ciclo de vida. Además, numerosas clases se convierten a Kotlin y aún conservan su compatibilidad binaria con versiones anteriores.

    Gesto mirando hacia adelante

    Imagen en movimiento que ilustra la textura de cresta predictiva

    En Android 13, presentamos un gesto de retroceso predictivo para dispositivos Android como teléfonos, pantallas grandes y plegables. Es parte de un lanzamiento de varios años; Cuando se implemente por completo, esta función permitirá a los usuarios obtener una vista previa del objetivo u otro resultado de un gesto hacia atrás antes de completarlo por completo, lo que les permitirá decidir si continuar o permanecer en la vista actual.

    Las API de actividad para Predictive Back para Android son estables y hemos actualizado las mejores prácticas para usar las devoluciones de llamada del sistema admitidas; BackHandler (para Compose), OnBackPressedCallback o OnBackInvokedCallback. Estamos emocionados de ver que las aplicaciones de Google adoptan Predictive Back, incluidos PlayStore, Calendar, News y TV.

    En las versiones alfa de la Actividad 1.8, The OnBackPressedCallback La clase ahora incluye nuevas devoluciones de llamada de progreso de Predictive Back para manejar el inicio del gesto de retroceso, el progreso durante el gesto y la cancelación del gesto de retroceso además de los anteriores. handleOnBackPressed() Devolución de llamada en caso de que se realice el gesto de regreso. También agregamos ComponentActivity.setUpEdgeToEdge() para configurar una pantalla de borde a borde fácilmente y compatible con versiones anteriores.

    Actualizaciones de actividad para una experiencia de Photo Picker más consistente

    El selector de fotos de Android es una interfaz de búsqueda que presenta al usuario su biblioteca multimedia. En la actividad 1.7.0, los contratos de actividad de Photo Picker se actualizaron para incluir un respaldo adicional que permite a los OEM y aplicaciones del sistema, como los servicios de Google Play, tener una experiencia uniforme de Photo Picker en una gama más amplia de dispositivos Android y niveles de API que brindan implementación de acción de repliegue. Obtenga más información en el blog Photo Picker Everywhere.

    Recuperación de datos incrementales

    La biblioteca de paginación le permite cargar y mostrar pequeños fragmentos de datos para mejorar el consumo de recursos de la red y del sistema. Los datos de la aplicación se pueden cargar de forma gradual y elegante en RecyclerViews o Compose Lazy Lists.

    Todos los diseños perezosos son compatibles con Paging Compose 1.0.0-alpha19, incluidos los diseños personalizados proporcionados por las bibliotecas de Wear y TV. Para admitir diseños más lentos, Paging Compose ahora ofrece métodos de extensión de nivel ligeramente inferior LazyPagingItems En itemKey Y itemContentType. El objetivo de estas API es ayudarlo a implementar las funciones más importantes y tipo de contenido Parámetros para las API de elementos estándar que ya existen Columna perezosa, LazyVerticalGrid así como sus equivalentes en API como Paginador horizontal. Mientras estos cambian el Columna perezosa Y LazyRow Si los ejemplos son unas pocas líneas más largos, se garantiza la coherencia en todos los diseños perezosos.

    2. Optimización del rendimiento de la aplicación

    Mediante el uso de bibliotecas de rendimiento, puede crear aplicaciones de alto rendimiento e identificar optimizaciones para mantener un alto rendimiento, lo que da como resultado mejores experiencias para el usuario final.

    Mejora en los tiempos de inicio

    Los perfiles de referencia le permiten compilar parcialmente su aplicación en el momento de la instalación para mejorar el tiempo de ejecución y el rendimiento del lanzamiento. También obtiene grandes mejoras en nuevas herramientas y bibliotecas:

    Jetpack presenta un nuevo complemento Gradle de perfil básico en Alpha que admite AGP 8.0+ y se puede agregar fácilmente a su proyecto Studio Hedgehog (ahora en Canary). El complemento le permite automatizar la tarea de realizar tareas de generación, extraer perfiles del dispositivo e incorporarlos a su compilación, ya sea periódicamente o como parte de su proceso de lanzamiento.

    El complemento también le permite automatizar fácilmente la nueva función de optimización de diseño Dex en AGP 8.1, que le permite definir Regla de perfil de línea base Pruebas que recopilan clases utilizadas en el lanzamiento y las mueven al archivo dex principal en una aplicación multidex para aumentar la localidad. En una aplicación grande, esto puede reducir el tiempo de arranque en frío en un 30 % además de los perfiles de referencia.

    Macrobenchmark 1.2 entregó muchas características nuevas en el alfa, como B. Métricas de rendimiento y métricas de seguimiento personalizadas, generación de perfil de referencia sin raíz en Android 13 y recompilación sin borrar los datos de la aplicación en Android 14.

    Puede leer todo al respecto en detalle en el blog Novedades en el rendimiento de Android.

    3. Bibliotecas y guías de la interfaz de usuario

    Se han realizado varios cambios en nuestras bibliotecas de interfaz de usuario para admitir mejor la compatibilidad con pantalla grande, plegable y emoji.

    Jetpack componer

    Jetpack Compose, el conjunto de herramientas moderno de Android para crear una interfaz de usuario nativa, se lanzó recientemente en mayo de 2023 e incluye nuevas funciones para texto y diseños, mejoras continuas en el rendimiento, soporte de herramientas mejorado, soporte de pantalla grande ampliado y guías actualizadas. Para obtener más información, consulte el blog Novedades de Jetpack Compose I/O.

    Vista

    Con la biblioteca Glance, ahora en versión beta 1.0, puede usar Jetpack Compose para desarrollar widgets de aplicaciones optimizados para teléfonos, tabletas y pantallas de inicio plegables con Android. La biblioteca le brinda instantáneamente las últimas mejoras de widgets de Android usando Kotlin y Compose.

    componer para tv

    Con TV Library Alpha, ahora puede crear experiencias para Android TV con componentes optimizados para la experiencia de la sala de estar. Compose for TV trae todos los beneficios de Jetpack Compose a sus aplicaciones de TV, lo que le permite crear aplicaciones con menos código, un mantenimiento más fácil y una apariencia moderna de Material 3 desde el primer momento. Para obtener más información, consulte el blog Compose for TV.

    Material 3 para Componer

    Material Design 3 es la próxima evolución de Material Design, que le permite crear aplicaciones expresivas, vibrantes y personales. Es el sistema de temas recomendado para las aplicaciones de Android y la versión 1.1 estable ofrece nuevas y emocionantes funciones, como hojas inferiores, selector de fecha y hora, barras de búsqueda, información sobre herramientas y más soporte de movimiento e interacción. Lea más en el blog de lanzamiento.

    Comprender el estado de la ventana

    La nueva biblioteca WindowManager ayuda a los desarrolladores a adaptar sus aplicaciones para admitir entornos de múltiples ventanas y nuevos factores de forma de dispositivos al proporcionar una superficie de API común con compatibilidad con el nivel de API 14.

    En 1.1.0-beta01, se agregaron nuevas características y capacidades a la incorporación de actividades y al diseño de ventanas, lo que le permite optimizar sus aplicaciones de actividades múltiples para pantallas grandes. Con Jetpack WindowManager versión 1.1, las API de inserción de actividades ya no son experimentales y se recomiendan para aplicaciones de múltiples actividades para proporcionar diseños de pantalla grande mejorados. Para obtener más información y los pasos de migración, consulte el blog Novedades de WindowManager 1.1.0-beta01.

    Otras actualizaciones importantes

    Multiplataforma Kotlin

    Seguimos experimentando con el uso de Kotlin Multiplatform para compartir la lógica comercial entre Android e iOS. Las colecciones 1.3.0-alpha03 y DataStore 1.1.0-alpha02 se actualizaron para que ahora pueda usar estas bibliotecas en proyectos de KMM. Si está utilizando Kotlin Multiplatform en su aplicación, ¡nos encantaría escuchar sus comentarios!

    Este fue un vistazo a todos los cambios en Jetpack en los últimos meses, diseñados para ayudarlo a crear aplicaciones de manera más productiva. Para obtener más detalles sobre cada biblioteca de Jetpack, consulte las notas de la versión de AndroidX, encuentre rápidamente bibliotecas relevantes con el selector de API y consulte las charlas de Google I/O para obtener más información destacada.

    Java es una marca comercial o una marca registrada de Oracle y/o sus afiliados.

    Si quieres conocer otros artículos parecidos a Blog de desarrolladores de Android: Google I/O 2023: ¿Qué hay de nuevo en Jetpack? puedes visitar la categoría Android.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir