Glance

Crea diseños para superficies remotas mediante una API de estilo de Jetpack Compose.
Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
7 de mayo de 2025 1.1.1 - - 1.2.0-alpha01

Cómo declarar dependencias

Si deseas agregar una dependencia en Glance, debes agregar el repositorio de Maven de Google a tu proyecto. Lee el repositorio Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:

Groovy

dependencies {
    // For Glance support
    implementation "androidx.glance:glance:1.2.0-alpha01"
    // For AppWidgets support
    implementation "androidx.glance:glance-appwidget:1.2.0-alpha01"

    // For Wear-Tiles support
    implementation "androidx.glance:glance-wear-tiles:1.0.0-alpha05"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.0-beta03"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    // For Glance support
    implementation("androidx.glance:glance:1.2.0-alpha01")
    
    // For AppWidgets support
    implementation("androidx.glance:glance-appwidget:1.2.0-alpha01")

    // For Wear-Tiles support
    implementation("androidx.glance:glance-wear-tiles:1.0.0-alpha05")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.1.0-beta03"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.

Crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

Versión 1.2

Versión 1.2.0-alpha01

7 de mayo de 2025

Lanzamiento de androidx.glance:glance-*:1.2.0-alpha01. La versión 1.2.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se dio de baja currentCompositeKeyHash. Usa currentCompositeKeyHashCode en su lugar. La API de reemplazo codifica el mismo hash con más bits, lo que reduce exponencialmente la probabilidad de que dos grupos aleatorios no relacionados en la jerarquía de composición tengan la misma clave de hash (I4cb6a, b/177562901).
  • Se agregó una nueva API para especificar alfa (0f a 1f) para el elemento componible de imagen de vista previa y el modificador de imagen de fondo. Cuando no se especifica, retiene el alfa de la imagen de origen. (I8ad05).
  • Se agregaron APIs de Glance para las vistas previas generadas. Anula GlanceAppWidget.providePreview para proporcionar un diseño de vista previa para tu widget. Luego, llama a GlanceAppWidgetManager.setWidgetPreview para configurar la vista previa. (Iced16).
  • Se agregó MultiProcessGlanceAppWidget para admitir configuraciones de varios procesos (Idbb90).
  • Se quitó la etiqueta experimental. Ahora, admitimos lambdas (I74d98, b/299361317).
  • Se permite especificar el receptor lambda para GlanceAppWidget.runComposition (I84829).
  • Se agregó el parámetro previewSize a requestPinGlanceAppWidget (I9f8f0, b/303256067).

Correcciones de errores

  • Se quitó el esquema manual de acceso a las nuevas APIs de la plataforma, ya que esto se realiza automáticamente a través del modelado de API cuando se usa R8 con AGP 7.3 o versiones posteriores (p.ej., R8 versión 3.3) y para todas las compilaciones cuando se usa AGP 8.1 o versiones posteriores (p.ej., D8 versión 8.1). Se recomienda a los clientes que no usen AGP que actualicen a la versión 8.1 de D8 o una posterior. Consulta este artículo para obtener más detalles. (If6b4c, b/345472586).
  • Se actualizaron las bibliotecas de glance-appwidget a compileSdk 35 (I2e26b).

Versión 1.1

Versión 1.1.1

16 de octubre de 2024

Lanzamiento de androidx.glance:glance-*:1.1.1. La versión 1.1.1 contiene estas confirmaciones.

Correcciones de seguridad

  • A partir de este cambio, androidx compila con protobuf 4.28.2 para abordar el CVE-2024-7254. Actualiza la dependencia de la versión 1.1.0 de androidx.glance:glance-appwidget-proto y androidx.glance:glance-appwidget-external-protobuf a la 1.1.1 para abordar el riesgo de vulnerabilidad.

Versión 1.1.0

12 de junio de 2024

Lanzamiento de androidx.glance:glance-*:1.1.0. La versión 1.1.0 contiene estas confirmaciones.

Cambios importantes desde 1.0.0

  • Se trasladó Glance a la versión 1.1.0 estable.

Versión 1.1.0-rc01

14 de mayo de 2024

Lanzamiento de androidx.glance:glance-*:1.1.0-rc01. La versión 1.1.0-rc01 contiene estas confirmaciones.

Nuevas funciones

  • Se agregaron parámetros de ancho y alto a las anotaciones de vista previa para Glance. Se mueve la versión 1.1.0 a la versión candidata.

Cambios en la API

  • Agrega un parámetro opcional a Scaffold. (If753f).
  • Se agregaron parámetros de ancho y alto a @Preview de Glance. (Ibabe8).
  • Se quitó la compatibilidad con las vistas previas de tarjetas de Glance para Wear. (I3850a).
  • Se agregó una API para establecer valores de peso personalizados para FontStyle. (I7390a)
  • Se cambió el nombre de las enums ImplementationMode de Viewfinder para reflejar mejor las implementaciones subyacentes y se agregaron constantes fijas para TransformationInfo.sourceRotation (Ic6149).

Correcciones de errores

  • Se corrigió un error que causaba problemas de renderización para ViewGroups en el modo de retrocompatibilidad (I8de92).

Contribución externa

Versión 1.1.0-beta02

17 de abril de 2024

Lanzamiento de androidx.glance:glance-*:1.1.0-beta02. Esta versión contiene frascos de origen que faltaban en la versión anterior.

Versión 1.1.0-beta01

3 de abril de 2024

Lanzamiento de androidx.glance:glance-*:1.1.0-beta01. La versión 1.1.0-beta01 contiene estas confirmaciones.

Versión 1.1.0-alpha01

7 de febrero de 2024

Lanzamiento de androidx.glance:glance-*:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Biblioteca de pruebas de unidades para Glance que no requiere UI Automator. El código de Glance se puede probar directamente sin tener que aumentar la vista.
  • Componentes de nivel superior para diseños más simples.
  • Nuevos modificadores y opciones de temas.
  • Nueva API para obtener un flujo de RemoteViews desde una composición, runComposition

Cambios en la API

  • Se agregó un nuevo rol de color widgetBackground a los temas de Glance. (Ia2ab8).
  • Se agregó GlanceAppWidget.runComposition (I6344c, b/298066147).
  • Se agregó un nuevo componente TopBar (Ibd361).
  • Agrega anulaciones al modificador clickable. (Iacecf).
  • Se agregó una nueva API para teñir botones. Esto debería ser experimental hasta que se envíe la versión 1.0. (I92523).
  • Agrega runGlanceAppWidgetUnitTest que proporciona alcance para llamar a métodos en GlanceAppWidgetUnitTest, como provideComposable para proporcionar un elemento componible aislado pequeño para la prueba, onNode para encontrar un elemento componible de Glance en el contenido proporcionado. Esto te permite escribir pruebas de unidades para funciones de componibilidad individuales en tu appWidget para verificar que, dadas ciertas entradas, la función genere el conjunto previsto de elementos componibles de la vista rápida. (I2f682).
  • Agrega un modificador testTag en la semántica para usarlo en pruebas de unidades. (I8f62f).
  • Actualiza TitleBar: El texto y el ícono se pueden teñir de forma individual. (Ia0a60).
  • Se agregó el componente de andamiaje (I8a736).
  • Agrega el filtro hasActionRunCallbackClickAction y la aserción assertHasActionRunCallbackClickAction para probar actionRunCallack. Además, agrega funciones de variante de abreviatura adicionales para los filtros de prueba relacionados con la acción: hasStartActivityClickAction<activityClass>(..), hasStartServiceAction<receiverClass>(..) y hasSendBroadcastAction<receiverClass>(..). Agrega variantes similares para sus contrapartes de assertHasXXX. (Ieca63).
  • Mueve la API sin lanzar. Cambia un modificador de interno a público, pero con la biblioteca restringida (If2a08).
  • Se agregó el método onCompositionError en el que los desarrolladores pueden ejecutar código cuando se produce un error (I9b56f).
  • Se agregaron las APIs de botones y botones de íconos a Glance (I0fd6f).
  • Se agregaron los filtros isLinearProgressIndicator, isIndeterminateLinearProgressIndicator y isIndeterminateCircularProgressIndicator para que coincidan con los indicadores de progreso. Se agregó el filtro hasAnyDescendants para probar si un nodo tiene un descendiente en su subjerarquía que coincide con un comparador específico (Ifd426).
  • Agrega aserciones y filtros para habilitar la prueba de acciones de clic que inician servicios, actividades o transmisiones. También incluye pruebas para verificar si se marcan los elementos de entrada. (I3041c).

Versión 1.0.0

Versión 1.0.0-alpha06

7 de febrero de 2024

Lanzamiento de androidx.glance:glance-appwidget-preview:1.0.0-alpha06 y androidx.glance:glance-preview:1.0.0-alpha06. La versión 1.0.0-alpha06 contiene estas confirmaciones.

Nuevas funciones

  • Se actualizó la versión para seguir el módulo principal de Glance.

Versión 1.0.0

6 de septiembre de 2023

Lanzamiento de androidx.glance:glance-*:1.0.0. La versión 1.0.0 contiene estas confirmaciones.

Funciones principales de la versión 1.0.0

  • Se trasladó Glance a la versión estable 1.0.0.

Versión 1.0.0-rc01

26 de julio de 2023

Lanzamiento de androidx.glance:glance-*:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.

Se mueve Glance a rc01 en el camino a la versión estable 1.0.0.

Nuevas funciones

  • Agrega parámetros clave a las lambdas de acción para lograr una invocación de acción más estable.
  • Se agregó la capacidad de proporcionar a ActvityOptions a las acciones de startActivity.
  • Se agregó compatibilidad con Android 14.

Cambios en la API

  • Se agregó un parámetro de clave opcional para todos los elementos que aceptan lambdas. (Id96c1, b/282445798).
  • Se agregó compatibilidad para configurar el paquete ActivityOptions para actionStartActivity (I6a08d).
  • Se combinaron los archivos de API públicos y experimentales para las rutas d, e, f y g (I03646, b/278769092).
  • N/A, los cambios en el archivo de la API son solo métodos de reordenamiento (I5fa95).
  • Se agregó la API para configurar CoroutineContext para solicitudes GlanceAppWidgetReceiver (I0a100).
  • Se agregó una nueva API para proporcionar ActivityOptions para LazyColumn y LazyVerticalGrid que se usará para todas las acciones de la lista.(Id8d71)

Correcciones de errores

  • N/A, los cambios en el archivo de la API son solo métodos de reordenamiento (I5fa95).
  • Demostración del estilo del componente de texto de Glance (Ie78a4)

Versión 1.0.0-beta01

10 de mayo de 2023

Lanzamiento de androidx.glance:glance-*:1.0.0-beta01. La Versión 1.0.0-beta01 contiene estas confirmaciones.

Nuevas funciones

  • Mueve la biblioteca a la versión beta.
  • Compatibilidad con temas con GlanceTheme. Se agregaron los módulos glance-material y glance-material3 para admitir temas de estilo de Material 2 y Material 3 en Glance.
  • Se agregó compatibilidad con FontFamily a las APIs de texto.
  • Se trasladó GlanceAppWidget a un mecanismo de actualización basado en una sesión WorkManager. Los usuarios de Glance para AppWidgets ahora deben anular GlanceAppWidget.provideGlance en lugar del método Content anterior. Como esto ahora ocurre en un trabajador, es un buen lugar para cargar recursos, elementos de red o de base de datos sin tener que tener un trabajador independiente.

Cambios en la API

  • Se agregó la API de *Defaults para Button, Checkbox, RadioButton y Switch. Hace que Glance esté más alineado con los patrones de Jetpack Compose. (I94828).
  • Nuevo módulo de plantillas de Glance (I94459)
  • Se hizo ResourceColorProvider interno en el módulo. Cambio rotundo. Es necesario porque ResourceColorProvider solo debe usarse para temas dinámicos para evitar situaciones en las que algunos colores sean recursos dinámicos y otros estén completamente resueltos. (Ib0db7).
  • Se agregó FontFamily como una opción para TextStyle. (Ic19ba, b/274179837).
  • Se cambió el nombre del parámetro de valor para Enum.valueOf (Ia9b89).
  • Se agregaron más excepciones arrojadas de la enum valueOf (I818fe).
  • Se actualizó GlanceAppWidget para usar provideGlance como el punto de entrada principal. Se dio de baja GlanceAppWidget.Content (I202b5).
  • Se agregó una opción para proporcionar un color de tono para las imágenes (I26192, b/212418562).
  • Se aumentó la nulabilidad de tipo de datos que se muestra de las funciones ocultas obsoletas. (Ibf7b0).
  • Se agregó la anotación @JvmDefaultWithCompatibility (I8f206).
  • Se quitó el SingleEntityTemplateData.displayHeader sin usar. (I7f094).
  • Se agregó compatibilidad con el uso de lambdas como devoluciones de llamada (Ia0bbd).
  • Se trasladó DayNightColorProvider al módulo de vista rápida (I1842c, b/256934779).
  • Quita LocalColorProvider de Plantillas. Las plantillas ahora usarán GlanceTheme.colors (Ic15e2).
  • Se quitó la nulabilidad de Text(style: TextStyle) (I7123b, b/237012816).
  • El color de texto predeterminado es negro. Se quita la nulabilidad (I3072c, b/237012816).
  • Hacer que el tema dinámico ColorProviders sea su propio objeto Hacer que ResourceColorProvider sea interno en el módulo (Id0e2d, b/237012816).
  • Agrega la categoría Undefined a ImageSize. (I2fa39).
  • Se quitó la función GlanceAppWidget.Content obsoleta (Ib05f6).
  • Agrega el modificador como parámetro a AndroidRemoteViews. (I515d4).
  • Se agregó GlanceAppWidget.compose para facilitar las pruebas de unidades (Ie9b28).

Correcciones de errores

  • Se agregó un widget de demostración para las fuentes de texto de Glance (I5c3d7).
  • Hace que AndroidRemoteViews sea de tamaño variable con Modifier.
  • Se resolvieron los problemas con los colores de tema incoherentes
  • Ahora todos los recursos tienen un prefijo para evitar colisiones.

Versión 1.0.0-alpha05

5 de octubre de 2022

Lanzamiento de androidx.glance:glance:1.0.0-alpha05, androidx.glance:glance-appwidget:1.0.0-alpha05 y androidx.glance:glance-wear-tiles:1.0.0-alpha05. La versión 1.0.0-alpha05 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó requestPinGlanceAppWidget a GlanceAppWidgetManager para permite que las apps le soliciten al usuario que agregue su widget basado en Glance a la pantalla principal (Ic6e47).
  • Se agregó ACTION_DEBUG_UPDATE a GlanceAppWidgetReceiver para permitir que los desarrolladores fuercen su widget para que se actualice desde adb en emuladores y dispositivos con permisos de administrador (I94ae1).

Cambios en la API

  • Se quitaron los botones de acción del encabezado en las plantillas de Glance para simplificar el caso de uso (Ie4387).
  • Se refactorizó la plantilla de una sola entidad para reutilizar el diseño del subsistema de bloqueo (Iecd2c).
  • Se refactorizó la plantilla de lista de resumen para usar los diseños de bloques Text/Image/Action (If0cc1).
  • Se agregó un rango de números de prioridad para TextBlock y ImageBlock (I73100).

Correcciones de errores

  • Se quitó la dependencia de Material 3 (I28d1c).
  • Se migró a un sistema más coherente para agregar márgenes y espaciado en los diseños de plantilla de vista rápida (I29773).
  • Se corrigió la regla de Proguard con formato incorrecto que impedía la compilación de versiones reducidas.

Versión 1.0.0-alpha04

10 de agosto de 2022

Lanzamiento de androidx.glance:glance:1.0.0-alpha04, androidx.glance:glance-appwidget:1.0.0-alpha04 y androidx.glance:glance-wear-tiles:1.0.0-alpha04. La versión 1.0.0-alpha04 contiene estas confirmaciones.

Nuevas funciones

  • Se agregaron funciones para colorear botones.
  • Se agregó la anotación GlanceComposable para mejorar la verificación del tiempo de compilación.
  • Se agregaron funciones específicas de Wear.

Cambios en la API

  • Se actualizó las APIs de datos de Glance Gallery y la vista condensada (Ibc7a8).
  • Se agregó ButtonColors para configurar botones (Iea88d, b/236305351).
  • Se cambió el nombre de ColorProvider.resolve por ColorProvider.getColor (Ic9dfe).
  • Se agregó el método copy() a TextStyle (I9aef6).
  • Se agregó una clase ColorProviders que se puede usar como parte de los temas de Glance (I848b9, b/237012816).
  • Se agregó compatibilidad con plantillas de lista a los estilos de lista y la vista contraída (I50cdc).
  • Se agregaron elementos semánticos a GlanceModiier y GlanceCurvedModifier (Ifda7e).
  • Se agregó la anotación GlanceComposable (I5dbf0).
  • Se trasladaron las plantillas de Glance al proyecto principal de Glance (I9db94).
  • Se agregó ColorProvider.resolve() (Ife532, b/214733442).
  • Se agregó un método nuevo para obtener GlanceId de un appWidgetId existente o un intent de una actividad de configuración (Icb70c, b/230391946).
  • Se agregó la anotación GlanceComposable (I2c21f).
  • Se agregó GlanceRemoteViews para ejecutar la composición fuera de GlanceAppWidget (I18f92).
  • Se quitó el color en ProgressIndicatorDefaults (I40299).
  • Se cambió el nombre del método onRun de ActionCallback a onAction para que sea coherente con los comentarios de revisión de la API (Icfa57).
  • Se convirtieron los diseños de plantilla de un vistazo para usar un mapa (I46bfd).
  • Se agregó el elemento RadioButton que admite composición (I4ecce).
  • Se agregó GlanceWearTiles para componer tarjetas de Wear (Ia9f65).
  • Se agregó la posibilidad de hacer clics a GlanceCurvedModifier (Iec2a0).
  • Implementa CurvedRow como alcance y crea un DSL para agregar elementos normales que admiten composición o curvas. También se agregaron curvedLine y curvedSpacer, que se traducen a ArcLine y ArcSpacer en prototarjetas (Ib955b).
  • Se actualizó la nulabilidad en core y appcompat para que coincida con Tiramisu DP2 (I0cbb7).
  • Se agregó compatibilidad con RuncallbackAction en tarjetas de un vistazo. Por ahora, solo se admite RunCallbackAction SIN parámetro (Ide64a).

Contribución externa

  • Se actualizó la API de :compose:ui:ui-test (updateApi) debido a la migración de test-coroutines-lib (I3366d).

Versión 1.0.0-alpha03

23 de febrero de 2022

Lanzamiento de androidx.glance:glance-*:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.

Nuevas funciones

  • La definición del estado simplificado tiene el valor predeterminado Preferences.

Cambios en la API

  • Para simplificar el control de estado, haz que PreferencesGlanceStateDefinition sea el control de estado predeterminado. Se quitó GlanceAppWidget.updateAppWidgetState y se agregó updateAppWidgetState, que usa Preferences de forma predeterminada (I58963).
  • Se agregó la clase TemplateText de Glance y se actualizó el diseño de la plantilla (I4e146).
  • Se agregó la infraestructura de contorno para la plantilla de forma libre (If03d6).
  • Se actualizaron los diseños de SingleEntityTemplate (If925d).
  • Se agregó LazyVerticalGrid (I5f442).
  • Usa ColorProvider en SingleEntityTemplate (I01ee0).
  • Se actualizó el nombre de la clase de plantilla (I3720e).
  • Se agregaron los elementos LinearProgressIndicator y CircularProgressIndicator que admiten composición (Ie116b).

Correcciones de errores

  • Implementación inicial de las plantillas de un vistazo; define los datos de "plantilla de un solo elemento" y un diseño de plantilla de ejemplo (I35837).
  • De forma predeterminada, alinea el contenido de la tarjeta en el centro (I264be).
  • Se corrigió un error de fillMaxSize/Width/Height en wear-tiles-tiles (I0a39f).

Versión 1.0.0-alpha02

26 de enero de 2022

Lanzamiento de androidx.glance:glance-*:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Nuevas funciones

Esta versión contiene el conjunto de API para compilar Wear Tiles con el uso del entorno de ejecución de Compose y elementos componibles optimizados para "Glanceable".

  • Para declarar tu servicio de tarjetas para Wear, extiende GlanceTileService, un servicio para crear una tarjeta en la función Content() que admite composición.
  • Elementos específicos de glance que admiten composición: CurvedRow y CurvedText.
  • Controla diferentes modos de cronograma de mosaicos mediante la definición de TimelineMode.SingleEntry y TimelineMode.TimeBoundEntries.
  • LocalTimeInterval, la composición local hace referencia a un intervalo de tiempo específico.
  • BorderModifer es un elemento GlanceModifier que aplica un borde alrededor de un elemento.

Esta versión también incluye indicadores de progreso a la herramienta AppWidget Glance.

Cambios en la API

  • Se agregaron los elementos LinearProgressIndicator y CircularProgressIndicator que admiten composición. (Ie116b)
  • Se cambió actionStartBroadcastReceiver a actionSendBroadcast. (I7d555)
  • Se pasó Context a la devolución de llamada GlanceAppWidget onDelete. (I4c795)

Correcciones de errores

  • Se corrigió el manejo de OPTIONS_APPATTRIBUTE_SIZES si está presente, pero vacío. (I01f82)

Versión 1.0.0-alpha01

15 de diciembre de 2021

Lanzamiento de androidx.glance:glance:1.0.0-alpha01, androidx.glance:glance-appwidget:1.0.0-alpha01 y androidx.glance:glance-appwidget-proto:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Funciones de la versión inicial

  • La primera versión de Glance incluye el primer conjunto de API para compilar AppWidget mediante el tiempo de ejecución de Compose con un conjunto de nuevos elementos componibles optimizados para "Glanceables".

Funciones