Descripción general de los widgets de apps

Los widgets son un aspecto esencial de la personalización de la pantalla principal. Son como vistas "resumidas" de los datos y las funciones más importantes de una app a los que se puede acceder directamente desde la pantalla principal del usuario. Los usuarios pueden mover widgets por los paneles de la pantalla principal y, si son compatibles, cambiar su tamaño para adaptar la cantidad de información en el widget según sus preferencias.

En esta documentación, se presentan los diferentes tipos de widgets que puedes crear y los principios de diseño que debes seguir. Para compilar el widget de una app con las APIs de Quitar View y los diseños XML, consulta Cómo crear un widget simple. Para compilar un widget con las APIs de estilo de Kotlin y Compose, consulta Jetpack Glance.

Tipos de widgets

Cuando planifiques el widget, piensa qué tipo de widget quieres compilar. Los widgets suelen pertenecer a una de las siguientes categorías:

Widgets informativos

Ejemplo del widget del clima que muestra Tokio como mayormente
            nublado, 14 grados y la temperatura proyectada desde las
            4 p.m. hasta las 7 p.m.
Figura 1: Un widget de información de una app de clima.

Por lo general, los widgets de información muestran elementos de información cruciales y realizan un seguimiento de cómo esa información cambia con el tiempo. Algunos ejemplos de widgets de información son los widgets del clima, los widgets de reloj o los widgets de seguimiento de resultados deportivos. Por lo general, cuando se presiona un widget de información, se inicia la app asociada y se abre una vista detallada de la información del widget.

Widgets de colección

Los widgets de colección se especializan en mostrar varios elementos del mismo tipo, como una colección de imágenes de una app de galería, una colección de artículos de una app de noticias o una colección de correos electrónicos o mensajes de una app de comunicación. Los widgets de colección pueden desplazarse verticalmente.

Los widgets de colección suelen enfocarse en los siguientes casos prácticos:

  • Explorando la colección.
  • Abrir un elemento de la colección en su vista detallada en la app asociada
  • Interactuar con elementos, como marcarlos como hechos, con compatibilidad con botones compuestos en Android 12 (nivel de API 31)

Widgets de control

Un widget para una app llamada "Lista de luces", que muestra interruptores de activación etiquetados como "Habitación", "Cocina" y "Sala de estar", con los dos primeros interruptores desactivados
Figura 4: Ejemplo de un widget de control.

El objetivo principal de un widget de control es mostrar las funciones que se usan con frecuencia para que el usuario pueda activarlas desde la pantalla principal sin tener que abrir la app. Puedes considerarlas como controles remotos para una app. Un ejemplo de widget de control es uno que permite a los usuarios encender o apagar las luces de la casa.

La interacción con un widget de control puede abrir una vista de detalles asociada en la app. Esto depende de si la función del widget de control genera algún dato, como en el caso de un widget de búsqueda.

Widgets híbridos

Una app de música general que muestra botones de "No me gusta", "Atrás", "Reproducir/pausar", "Adelante" y "Me gusta". El artista y la pista aparecen como "Artista" y "Música de ejemplo", respectivamente.
Figura 5: Ejemplo del widget de una app de música

Si bien algunos widgets representan uno de los tipos de las secciones anteriores (información, colección o control), muchos son híbridos que combinan elementos de diferentes tipos. Por ejemplo, un widget de reproductor de música es, principalmente, un widget de control, pero también le muestra al usuario qué pista se está reproduciendo en ese momento, como un widget de información.

Cuando planifiques el widget, diseña en torno a uno de los tipos de base y agrega elementos de otros tipos según sea necesario.

Cómo integrar widgets en el Asistente de Google

Asistente de Google puede mostrar cualquier tipo de widget en respuesta a los comandos por voz del usuario. Puedes configurar tus widgets para entregar Acciones en apps, lo que les permite a los usuarios recibir respuestas rápidas y experiencias de app interactivas en plataformas de Asistente, como Android y Android Auto. Si quieres obtener más detalles sobre la entrega de widgets para Asistente, consulta Cómo integrar Acciones en apps con widgets de Android.

Limitaciones de los widgets

Si bien los widgets se pueden entender como "miniapps", existen ciertas limitaciones que es importante comprender antes de diseñar el widget.

Gestos

Debido a que los widgets se encuentran en la pantalla principal, deben coexistir con la navegación que se establece allí. Esto limita la compatibilidad con gestos disponible en un widget en comparación con una app de pantalla completa. Si bien las apps pueden permitir que los usuarios naveguen entre pantallas de forma horizontal, ese gesto ya aparece en la pantalla principal para navegar entre pantallas principales.

Los únicos gestos disponibles para widgets son el táctil y el deslizamiento vertical.

Elementos

Dadas las limitaciones de los gestos disponibles para los widgets, algunos componentes básicos de la IU que se basan en gestos restringidos no están disponibles para los widgets. Para obtener una lista completa de los componentes básicos compatibles y más información sobre las restricciones de diseño, consulta Cómo crear el diseño del widget y Cómo proporcionar diseños flexibles de widgets.

Lineamientos de diseño

Contenido del widget

Los widgets son una excelente manera de atraer a un usuario a tu app, ya que "anuncian" contenido interesante y nuevo disponible en ella.

Al igual que los avances en la primera página de un periódico, los widgets consolidan y concentran la información de una app y proporcionan una conexión con más detalles dentro de la app. Podrías decir que el widget es el "bocadillo" de información, mientras que la app es la "comida". Asegúrate de que tu app muestre más detalles sobre un elemento de información que lo que muestra el widget.

Además del contenido puro de información, considera hacer que el widget proporcione vínculos de navegación a áreas de tu app que se usan con frecuencia. Esto permite a los usuarios completar tareas más rápido y extiende el alcance funcional de la app a la pantalla principal.

Estos son algunos buenos candidatos para crear vínculos de navegación en widgets:

  • Funciones generativas: Son las funciones que permiten al usuario crear contenido nuevo para una app, como crear un documento o mensaje nuevo.

  • Abre la app en el nivel superior: cuando el usuario presiona un elemento de información, se lo lleva a una pantalla de detalles de nivel inferior. Proporcionar acceso al nivel superior de tu aplicación ofrece más flexibilidad de navegación y puede reemplazar un acceso directo exclusivo a la app que los usuarios usarían para navegar a ella desde la pantalla principal. El uso del ícono de la aplicación para esta funcionalidad también puede proporcionarle al widget una identidad clara si los datos que muestras son ambiguos.

Cambio del tamaño del widget

Widget de Reloj de Google estándar
Figura 6: Widget de Reloj de Google estándar

Si mantienes presionado un widget de tamaño variable y, luego, lo sueltas, activa el modo de cambio de tamaño. Los usuarios pueden usar los controladores de arrastre o las esquinas del widget para establecer su tamaño preferido.

El cambio de tamaño permite a los usuarios ajustar la altura y el ancho de un widget dentro de las restricciones de la cuadrícula de posición de la pantalla principal. Puedes decidir si el tamaño del widget se puede cambiar libremente o si se restringe a cambios de tamaño horizontales o verticales. No es necesario que admitas el cambio de tamaño si tu widget tiene tamaño fijo.

Permitir a los usuarios cambiar el tamaño de los widgets tiene importantes beneficios:

  • Pueden ajustar la cantidad de información que desean ver en cada widget.
  • Pueden influir mejor en el diseño de los widgets y accesos directos en sus paneles principales.

Planifica una estrategia de cambio de tamaño para tu widget según el tipo de widget que estés creando. Los widgets de colección basados en listas o cuadrículas suelen ser sencillos, ya que el cambio de tamaño del widget expande o contrae el área de desplazamiento vertical. Sin importar el tamaño del widget, el usuario aún puede desplazar todos los elementos de información hasta la vista.

Los widgets informativos requieren una planificación más práctica, ya que no se pueden desplazar y todo el contenido debe adaptarse a un tamaño determinado. Debes ajustar de forma dinámica el contenido y el diseño de tu widget al tamaño que define el usuario mediante la operación de cambio de tamaño.

En el siguiente ejemplo, el usuario puede cambiar el tamaño de un widget del clima en tres pasos, lo que expone información más detallada sobre el clima en la ubicación actual a medida que el widget crece.

Ejemplo de widget del clima en el tamaño de cuadrícula más pequeño de 3 × 2, con el nombre de la ubicación (Tokio), la temperatura (14°) y un símbolo que indica el clima parcialmente nublado
Figura 7: Ejemplo de widget del clima en un tamaño “pequeño” de 3x2 cuadrícula.


Ejemplo del widget del clima en un tamaño “mediano” de 5 × 2, que incluye toda la IU del tamaño de cuadrícula de 3 × 2 más la etiqueta “mayormente nublado” y
 se prevén temperaturas desde las 4 p.m. hasta las 7 p.m.
Figura 8: Ejemplo de widget del clima con un tamaño “mediano” de una cuadrícula de 5 × 2.


Ejemplo de widget del clima en un tamaño “grande” de 5 × 4, que incluye toda la IU de los tamaños de cuadrícula de 3 × 2 y 5 × 2, además de un pronóstico del clima de martes a viernes
Figura 9: Ejemplo de widget del clima con tamaño “grande” de cuadrícula de 5 × 4.

Para cada tamaño del widget, determina cuánta información de tu app se muestra. Para tamaños más pequeños, concéntrate en la información esencial y, luego, agrega información contextual a medida que el widget crece de forma horizontal y vertical.

Consideraciones de diseño

Resulta tentador diseñar los widgets de acuerdo con las dimensiones de la cuadrícula de posiciones de un dispositivo con el que desarrollas. Esta puede ser una aproximación inicial útil, pero ten en cuenta los siguientes puntos:

  • Planificar la estrategia de cambio de tamaño del widget en "buckets de tamaño" en lugar de dimensiones de cuadrícula variables te brinda los resultados más confiables.
  • La cantidad, el tamaño y el espaciado de las celdas pueden variar ampliamente de un dispositivo a otro. Por lo tanto, es muy importante que tu widget sea flexible y pueda acomodar más o menos espacio de lo previsto.
  • A medida que el usuario cambia el tamaño de un widget, el sistema responde con un rango de tamaño de dp en el que el widget puede volver a dibujarse.
  • A partir de Android 12, puedes proporcionar atributos de tamaño más definidos y diseños más flexibles. Se incluye lo siguiente:

Configuración del widget por parte de los usuarios

A veces, el usuario debe configurar el widget antes de que pueda ser útil. Piensa en un widget de correo electrónico en el que el usuario debe seleccionar la carpeta de correo electrónico antes de que se pueda mostrar la carpeta Recibidos o en un widget de fotos estático en el que el usuario debe asignar una imagen de la galería para que se muestre. Los widgets de Android muestran las opciones de configuración justo después de que el usuario lo suelta en una pantalla principal.

Lista de tareas para el diseño de widgets

  • Concéntrate en pequeñas porciones de información visible en el widget. Expande la información en tu app.
  • Elige el tipo de widget adecuado para tu objetivo.
  • Planifica cómo se adaptará el contenido de tu widget a diferentes tamaños.
  • Para lograr que el diseño del widget sea independiente de la orientación y del dispositivo, asegúrate de que el diseño se pueda estirar y contraer.
  • Considera si tu widget necesita una configuración adicional.