Android Jetpack
Jetpack es un conjunto de bibliotecas que ayuda a seguir las prácticas recomendadas, reducir el código estándar y escribir código que funcione de manera coherente en los dispositivos y las versiones de Android para que los desarrolladores puedan enfocarse en el código que les interesa.
Jetpack Compose
Cómo desarrollar IU con Compose
Es un moderno kit de herramientas para compilar IU nativas que te permite simplificar y acelerar el desarrollo de IU en Android.
¿Por qué deberías usar Android Jetpack?
Seguir las mejores prácticas
Las bibliotecas de Android Jetpack, creadas con prácticas de diseño modernas, disminuyen la cantidad de fallas y fugas de memoria, además de brindar retrocompatibilidad.
Elimina el código estándar
Android Jetpack administra actividades tediosas, como las tareas en segundo plano, la navegación y la gestión del ciclo de vida, para que puedas enfocarte en los mejores aspectos de tu app.
Reduce la fragmentación
Reduce la complejidad con bibliotecas que funcionan con coherencia en diferentes dispositivos y versiones de Android.
Bibliotecas de Jetpack Explorar todas las bibliotecas
* Las bibliotecas populares y de uso frecuente aparecen primero.
activity* | Accede a las APIs componibles compiladas sobre Activity. |
appcompat* | Permite el acceso a nuevas APIs en versiones de APIs anteriores de la plataforma (muchas con Material Design). |
appsearch * | Ofrece a los usuarios búsquedas personalizadas en la app. |
camera* | Compila apps para cámaras móviles. |
compose * | Define tu IU de manera programática con funciones de componibilidad y que describan su forma y sus dependencias de datos. |
databinding* | Usa un formato declarativo para vincular los componentes de la IU en tus diseños con las fuentes de datos de tu app. |
fragment* | Segmenta tu app en varias pantallas independientes alojadas en un objeto Activity. |
hilt * | Extiende la funcionalidad de Dagger Hilt para habilitar la inserción de dependencias de ciertas clases de las bibliotecas de AndroidX. |
lifecycle* | Compila componentes optimizados para ciclos de vida que puedan ajustar el comportamiento según el estado actual del ciclo de vida de una actividad o un fragmento. |
Componentes de Material Design* | Son componentes de IU de Material Design modulares y personalizables para Android. |
navigation* | Compila y estructura la IU integrada en la app, controla los vínculos directos y navega entre pantallas. |
paging* | Carga datos en páginas y preséntalos en una RecyclerView. |
room* | Crea, almacena y administra datos persistentes con copia de seguridad en una base de datos SQLite. |
test* | Pruebas en Android |
work* | Programa y ejecuta tareas en segundo plano diferibles y basadas en restricciones. |
ads | Obtén un ID de publicidad con o sin los Servicios de Play. |
annotation | Expón los metadatos que ayudan a las herramientas y a otros desarrolladores a comprender el código de tu app. |
arch.core | Asistente para otras dependencias de arquitectura, incluidas las reglas de prueba JUnit que se pueden usar con LiveData. |
asynclayoutinflater | Aumenta los diseños de forma asíncrona para evitar bloqueos en la IU. |
autofill | Mejora la precisión de la función Autocompletar con sugerencias de extensiones. |
benchmark | Mide con precisión el rendimiento de tu código dentro de Android Studio. |
biometric | Autentica con credenciales biométricas o del dispositivo, y realiza operaciones criptográficas. |
bluetooth | Usa las funciones de Bluetooth de la plataforma de Android con APIs retrocompatibles. |
browser | Muestra páginas web en el navegador predeterminado del usuario. |
camera.viewfinder | "Visor independiente componible y basado en vistas para la cámara" |
car-app | Compila apps basadas en plantillas para Android Auto y el SO Android Automotive. |
cardview | Implementa el patrón de tarjeta de Material Design con esquinas redondeadas y sombras paralelas. |
collection | Reduce el impacto de la memoria de las colecciones existentes y nuevas que sean pequeñas. |
compose.animation | Compila animaciones en las aplicaciones de Jetpack Compose para enriquecer la experiencia del usuario. |
compose.compiler | Transforma las funciones que admite @Composable y habilita las optimizaciones con un complemento de compilador de Kotlin. |
compose.foundation | Escribe aplicaciones de Jetpack Compose con componentes fundamentales listos para usar y extiende la base para compilar tus propias piezas de sistema de diseño. |
compose.material | Compila las IUs de Jetpack Compose con componentes de Material Design listos para usar. Este es el punto de entrada de nivel superior de Compose, diseñado para proporcionar componentes que coincidan con los descritos en www.material.io. |
compose.material3 | Compila las IUs de Jetpack Compose con componentes de Material Design 3, la siguiente evolución de Material Design. Material 3 incluye temas y componentes actualizados, y funciones de personalización de Material You, como el color dinámico. Además, se diseñó para ser coherente con el nuevo estilo visual y la IU del sistema de Android 12. |
compose.material3.adaptive | Usa la biblioteca adaptable de Material 3 para crear IU adaptables que se adapten automáticamente según la configuración actual de la ventana, como las clases de tamaño de ventana o las posiciones del dispositivo. La biblioteca proporciona implementaciones de andamios predeterminados y elementos componibles de los componentes básicos necesarios para crear tus propias experiencias personalizadas. |
compose.runtime | Se trata de los componentes fundamentales del modelo de programación de Compose y de su administración de estados, así como del entorno de ejecución principal al cual se orienta el complemento de compilación de Compose. |
compose.ui | Se trata de los componentes fundamentales de la IU de Compose necesarios para interactuar con el dispositivo, incluidos el diseño, el dibujo y la entrada. |
concurrent | Quita las tareas del subproceso principal con corrutinas y aprovecha ListenableFuture. |
constraintlayout | Posiciona y ajusta el tamaño de los widgets de un modo flexible con posicionamiento relativo. |
contentpager | Carga y numera los datos del objeto ContentProvider en un subproceso en segundo plano. |
coordinatorlayout | Posiciona los widgets de la aplicación de nivel superior, como AppBarLayout y FloatingActionButton. |
core | Orienta tu contenido a las APIs y funciones más recientes de la plataforma y, a la vez, admite dispositivos anteriores. |
core.uwb | Implementa UWB (banda ultraancha) en dispositivos compatibles. |
credentials | Esta biblioteca proporciona acceso unificado a las credenciales de un usuario. Esto puede incluir contraseñas, llaves de acceso y credenciales federadas. Esta biblioteca debe usarse para proporcionar experiencias de acceso seguras y sin interrupciones. |
credentials.registry | Para resolver estos problemas, agregamos un nuevo mecanismo de registro que permite que una app proporcione credenciales digitales de una manera que preserva la privacidad. En un nivel superior, la app del proveedor registrará previamente todas sus credenciales digitales candidatas con el Administrador de credenciales. Cuando el Administrador de credenciales reciba una solicitud de app para una credencial digital específica, ejecutará la IU de coincidencia de credenciales y selector de usuarios en una zona de pruebas. |
cursoradapter | Expón los datos de Cursor a un widget de ListView. |
customview | Implementa vistas personalizadas. |
datastore | Almacena los datos de forma asíncrona, coherente y transaccional, y, por ende, resuelve algunos de los inconvenientes de SharedPreferences. |
documentfile | Consulta un documento de archivo. |
draganddrop | Acepta datos de la función de arrastrar y soltar dentro de una app o desde otra y muestra una opción coherente de destino para soltar. |
drawerlayout | Implementa un widget de panel lateral de Material Design. |
dynamicanimation | Crea animaciones fluidas con una API de animación basada en la física. |
emoji | Muestra emojis en dispositivos modernos y antiguos. |
emoji2 | Muestra emojis en dispositivos modernos y antiguos. |
enterprise | Crea aplicaciones listas para su uso en empresas. |
exifinterface | Lee y escribe etiquetas EXIF de archivos de imagen. |
games | Usa el SDK de juegos de Android de forma nativa en tu app para realizar tareas complejas de videojuegos, como definir ritmo de fotogramas. |
glance | Compila diseños para superficies remotas con una API del estilo de Jetpack Compose. |
graphics | Aprovecha las instalaciones de gráficos en diferentes versiones de la plataforma de Android. |
gridlayout | Implementa un diseño de cuadrícula. |
health | Crea aplicaciones de salud eficaces en de manera independiente de plataformas. |
health.connect | Permite que los desarrolladores lean o escriban los registros de salud y fitness de los usuarios. |
heifwriter | Codifica una imagen o una colección de imágenes en formato HEIF con los códecs disponibles en el dispositivo Android. |
ink | Inspira las mejores apps de plumas. Bajar la barrera de entrada para los desarrolladores y ofrecer experiencias de escritura fluidas y de alto rendimiento |
input | Reduce la latencia de las interacciones de entrada mediante la predicción de MotionEvents futuros. |
interpolator | Usa interpolación de animación en plataformas anteriores. |
javascriptengine | Habilita tu app de Android para evaluar JavaScript. |
jetifier | Una herramienta independiente que migra las dependencias en una biblioteca de compatibilidad obsoleta a dependencias de AndroidX equivalentes. |
leanback | Usa Compose para TV en lugar de este artefacto. |
legacy | Este artefacto y sus clases dejaron de estar disponibles. A partir de Android 8, las restricciones de verificación de antecedentes hacen que esta clase ya no sea útil. |
lint | Lint realiza verificaciones para verificar el uso de las APIs de Gradle. |
loader | Carga datos para tu IU que se conserven después de los cambios de configuración. |
localbroadcastmanager | Este artefacto y sus clases dejaron de estar disponibles. En su lugar, debes usar LiveData o transmisiones reactivas. |
media | Comparte contenido y controles multimedia con otras apps. Sustituida por media2. |
media2 | Comparte contenido y controles multimedia con otras apps. |
media3 * | Admite bibliotecas para casos de uso de contenido multimedia. |
mediarouter | Habilita la reproducción y la visualización de contenido multimedia en dispositivos receptores remotos mediante una interfaz de usuario común. |
multidex | Implementa aplicaciones con varios archivos dex en dispositivos anteriores a Android 5. |
metrics | Realiza un seguimiento y genera informes de varias métricas del tiempo de ejecución de tu aplicación. |
palette | Extrae paletas de colores representativas de imágenes. |
Es una biblioteca para agregar capacidades de visualización de PDF en las apps. | |
percentlayout | Este artefacto y sus clases dejaron de estar disponibles. En su lugar, usa ConstraintLayout y los diseños asociados. |
preference | Crea pantallas de configuración interactivas sin necesidad de interactuar con el almacenamiento del dispositivo ni de administrar la IU. |
Imprime fotos, documentos y otros gráficos o imágenes desde tu app. | |
privacysandbox.activity | PENDIENTE |
privacysandbox.ads | Esta biblioteca permite la integración con las APIs de preservación de la privacidad, que forman parte de Privacy Sandbox en Android. |
privacysandbox.plugins | Complemento de Gradle de la biblioteca del SDK de Privacy Sandbox de Android |
privacysandbox.sdkruntime | Esta biblioteca proporciona componentes para los consumidores que conocen el SdkRuntime. |
privacysandbox.tools | Una biblioteca para usar la funcionalidad de Privacy Sandbox en Android |
privacysandbox.ui | PENDIENTE |
profileinstaller | Permite que las bibliotecas prepropaguen los registros de compilación de manera anticipada para que ART los lea. |
recommendation | Promociona contenido en la pantalla principal del Launcher de Android TV. |
recyclerview | Muestra grandes conjuntos de datos en tu IU y, a la vez, minimiza el uso de memoria. |
remotecallback | Crea un wrapper para que los desarrolladores puedan proporcionar un elemento PendingIntent con mayor facilidad. |
resourceinspection | Muestra los atributos de las vistas personalizadas en el Inspector de diseño en vivo de Android Studio. |
savedstate | Escribe componentes que se puedan conectar y que guarden el estado de la IU cuando se cierre un proceso y lo restablezcan cuando se reinicie. |
security | Administra claves y encripta archivos y preferencias compartidas de forma segura. |
sharetarget | Proporciona retrocompatibilidad para usar accesos directos como objetivos de uso compartido directo. |
slice | Muestra elementos de la IU con plantillas fuera de la app. |
slidingpanelayout | Implementa un patrón de IU de panel deslizante. |
startup | Implementa una forma sencilla y eficaz de inicializar componentes cuando se abre una app. |
sqlite | Trabaja con bases de datos locales de SQLite. Si es posible, usa Room. |
swiperefreshlayout | Implementa el patrón de UI de deslizar para actualizar. |
test.uiautomator | Framework para pruebas de IU funcionales entre apps |
textclassifier | Identifica conversaciones, vínculos, selecciones y otras construcciones similares en textos. |
tracing | Escribe eventos de seguimiento en el búfer de registro del sistema. |
transition | Anima el movimiento en la IU con diseños iniciales y finales. |
tv | Les proporciona a los desarrolladores funciones de Compose y Material Design para escribir aplicaciones para TV |
tvprovider | Proporciona canales de Android TV. |
vectordrawable | Renderiza gráficos vectoriales. |
versionedparcelable | Proporciona un formato de serialización binario estable y compacto que se puede pasar de un proceso a otro o conservar de forma segura. |
viewpager | Muestra objetos de Views o Fragments en formato deslizable. Si es posible, usa el objeto viewpager2 en su lugar. |
viewpager2 | Muestra objetos de Views o Fragments en formato deslizable. |
wear | Crea aplicaciones para relojes inteligentes de Wear OS by Google. |
wear.compose | Proporciona funcionalidades que admiten dispositivos, tamaños, formas y gestos de navegación específicos para wearables para escribir aplicaciones de Jetpack Compose para wearables. |
wear.protolayout | Esta biblioteca permite definir un conjunto de diseños de la IU y expresiones ajenas a ella para que se rendericen o evalúen en plataformas remotas. |
wear.tiles | Crea aplicaciones para relojes inteligentes de Wear OS by Google. |
wear.watchface | Crea aplicaciones para relojes inteligentes de Wear OS by Google. |
webkit | Trabaja con las APIs modernas de WebView en Android 5 y versiones posteriores. |
window | Ayuda a admitir diferentes factores de forma de dispositivos, como dispositivos plegables. |
window.extensions.core | Las APIs de Core para las extensiones de biblioteca de Window Manager |
Novedades
- Compose agosto de 2023
- Jetpack Compose 1.5.0 pasa a la versión estable y ofrece mejoras importantes en el rendimiento, incluida una refactorización de modificadores de alto nivel, como "Clickable", que puede mejorar el tiempo de composición en un 80%. Compose también ofrece hasta un 70% de mejora en la asignación de memoria (especialmente en la pila de gráficos), lo que reducirá el espacio en memoria de Compose en los dispositivos.
- Wear Compose y Tiles 1.2
- Wear Compose y Wear Tiles pasaron a la versión estable para mejorar aún más la experiencia de los desarrolladores de Wear OS. Ambos se complementan, en los que se puede usar Wear Compose para compilar pantallas de apps complejas en dispositivos para Wear, y se pueden usar tarjetas de Wear para crear las tarjetas de apps. La nueva versión de Wear Compose incluye nuevas funciones, como elementos expandibles y deslizamiento para revelar. La versión de tarjetas para Wear ahora también admite la animación de widgets y la vinculación de datos de la plataforma (como la fuente de datos de salud).
- Ventana 1.1
- 1.1 estabiliza las APIs de incorporación de actividades, lo que permite que apps como WhatsApp, eBay y Temu envíen diseños de pantalla grande. La API se enriquece con funciones, ya que permite a los desarrolladores modificar el comportamiento de la pantalla dividida, verificar (y cambiar) el estado de la división en el tiempo de ejecución, implementar divisiones horizontales y comenzar un elemento modal en la ventana completa.
- Notas de la versión
- Para obtener más información, consulta las notas de la versión.
Aprende a usar Jetpack
Capacitación sobre aspectos básicos
Aprende las bibliotecas de Jetpack esenciales en el curso Aspectos básicos de Android con Compose y reduce el código estándar en tu app.
Instructivo práctico
Obtén información práctica con tres bibliotecas de Jetpack que simplifican tu capa de datos: LiveData, ViewModel y Room.
App de ejemplo de Sunflower
Explora cómo se usan juntas las bibliotecas de Jetpack más populares en una app de producción