Descripción general de los widgets de apps

Prueba hacerlo con Compose
Jetpack Compose es el kit de herramientas de IU recomendado para Android. Aprende a compilar widgets con APIs de estilo Compose.

Los widgets son un aspecto esencial de la personalización de la pantalla principal. Puedes considerarlos como vistas "rápidas" de los datos y la funcionalidad más importantes de una app a los que se puede acceder directamente desde la pantalla principal del usuario. Los usuarios pueden mover widgets en los paneles de la pantalla principal y, si la función es compatible, cambiarles el tamaño para adaptar la cantidad de información que se debe incluir en un 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 un widget de app con las APIs de Remote View y los diseños XML, consulta Cómo crear un widget simple. Para compilar un widget con Kotlin y APIs de estilo Compose, consulta Jetpack Glance.

Tipos de widgets

Cuando planifiques tu widget, piensa en qué tipo de widget quieres compilar. Por lo general, los widgets están dentro de una de las siguientes categorías:

Widgets informativos

Ejemplo de widget del clima que muestra que en Tokio está mayormente nublado, la temperatura es de 14 grados y la temperatura proyectada desde las 4 p.m. hasta las 7 p.m.
Figura 1. Un widget informativo de una app del clima.

Por lo general, los widgets informativos muestran datos clave y hacen un seguimiento del modo en que esa información cambia con el tiempo. Algunos ejemplos de widgets informativos son los widgets del clima, los widgets del reloj o los widgets de seguimiento de resultados deportivos. Por lo general, cuando se presiona un widget informativo, 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 fotos de una app de galería, un grupo de artículos de una app de noticias o un conjunto de correos electrónicos o mensajes de una app de comunicación. Los widgets de colección pueden desplazarse verticalmente.

Por lo general, los widgets de colección se enfocan en los siguientes casos de uso:

  • Explorar la colección
  • Abrir la vista detallada de un elemento de la colección en la app asociada
  • Interactuar con elementos, como marcarlos como completados, con compatibilidad para 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 palanca
            etiquetados como "Dormitorio", "Cocina" y "Sala de estar", con los dos primeros
            interruptores de palanca 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 considerarlos como controles remotos para una app. Un ejemplo de un widget de control es un widget de control de la casa que permite a los usuarios encender o apagar las luces de la casa.

Si interactúas con un widget de control, es posible que se abra una vista detallada asociada en la app. Esto depende de si la función del widget de control genera datos, como en el caso de un widget de búsqueda.

Widgets híbridos

Una app de música general que muestra botones para "No me gusta", atrás, reproducir/pausar, adelante y "Me gusta". El artista y la pista se indican como "Artista" y "Música de ejemplo", respectivamente.
Figura 5. Ejemplo de un widget de app de música.

Si bien algunos widgets representan uno de los tipos de las secciones anteriores (informativo, de colección o de control), muchos widgets 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, como un widget informativo.

Cuando planifiques tu widget, diseña en torno a uno de los tipos básicos y agrega elementos de otros tipos según sea necesario.

Integra widgets en el Asistente de Google

El Asistente de Google puede mostrar cualquier tipo de widget en respuesta a los comandos de voz del usuario. Puedes configurar tus widgets para que cumplan con las Acciones en apps, lo que permite a los usuarios recibir respuestas rápidas y experiencias interactivas de la app en superficies de Asistente como Android y Android Auto. Para obtener más detalles sobre el cumplimiento de widgets para Asistente, consulta Integra Acciones en apps con widgets de Android.

Limitaciones de los widgets

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

Gestos

Debido a que los widgets se ubican en la pantalla principal, tienen que coexistir con la navegación que se establece allí. Esto limita la compatibilidad con gestos que está 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 se realiza en la pantalla principal para navegar entre pantallas principales.

Los únicos gestos disponibles para widgets son tocar y deslizar verticalmente.

Elementos

Dadas las limitaciones de gestos disponibles para widgets, algunos de los bloques de compilación de la IU que dependen de gestos restringidos no están disponibles para los widgets. Para obtener una lista completa de los bloques de compilación compatibles y más información sobre las restricciones de diseño, consulta Crea el diseño del widget y Proporciona diseños de widgets flexibles.

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 nuevo e interesante que está disponible en tu app.

Al igual que los avances en la portada de un diario, los widgets consolidan y concentran la información de una app, además de proporcionar una conexión más detallada dentro de la app. Podrías decir que el widget es la "entrada", mientras que la app es el "plato principal". 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 de información pura, considera hacer que tu widget proporcione vínculos de navegación a las áreas de uso frecuente de tu app. Esto permite a los usuarios completar tareas más rápido y extiende el alcance funcional de la app a la pantalla principal.

Los siguientes son posibles vínculos de navegación a la superficie en widgets:

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

  • Abrir la app en el nivel superior: Si se presiona un elemento de información, por lo general, se dirige al usuario a una pantalla de detalles de nivel inferior. Proporcionar acceso al nivel superior de tu app proporciona más flexibilidad de navegación y puede reemplazar a un acceso directo puntual que los usuarios usarían para navegar hasta la app desde la pantalla principal. Usar el ícono de tu aplicación para esta funcionalidad también puede proporcionar a tu widget una identidad clara si los datos que muestras son ambiguos.

Cambio del tamaño del widget

Widget estándar del Reloj de Google
Figura 6. Widget estándar de Reloj de Google.

Si mantienes presionado un widget que se puede cambiar de tamaño y luego lo sueltas, se abre el modo de cambio de tamaño. Los usuarios pueden usar los controladores de arrastre o las esquinas de los widgets para establecer el tamaño deseado.

El cambio del tamaño permite a los usuarios ajustar la altura o el ancho de un widget según las restricciones de la cuadrícula de ubicación de la pantalla principal. Puedes decidir si tu widget se puede cambiar de tamaño libremente o si está restringido a cambios de tamaño horizontales o verticales. No es necesario que admitas el cambio de tamaño si tu widget tiene un 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 mejorar el diseño de los widgets y accesos directos de los paneles de la pantalla principal.

Planifica una estrategia de cambio de tamaño para tu widget según el tipo de widget que estés creando. Los widgets de listas o de colecciones basadas en cuadrículas suelen ser sencillos, ya que el cambio de tamaño del widget solo despliega o contrae el área de desplazamiento vertical. Independientemente del tamaño del widget, el usuario puede desplazarse por todos los elementos de información para verlos.

Los widgets informativos requieren un poco más de planificación práctica, ya que no se pueden desplazar y todo el contenido debe ajustarse a un tamaño determinado. Debes ajustar de forma dinámica el contenido y el diseño de tu widget al tamaño que el usuario define a través de 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 crece el widget.

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


Ejemplo de widget del clima en un tamaño "mediano" de 5 x 2, que incluye toda la IU del tamaño de cuadrícula de 3 x 2, además de la etiqueta "Mayormente nublado" y las temperaturas pronosticadas de las 4 p.m. a las 7 p.m.
Figura 8. Ejemplo de widget del clima en un tamaño "mediano" de cuadrícula de 5x2.


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

Para cada tamaño de 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

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

  • Si planificas la estrategia de cambio de tamaño de tus widgets en "segmentos de tamaño", en lugar de dimensiones de cuadrícula variables, obtendrás los resultados más confiables.
  • La cantidad, el tamaño y la separación de las celdas pueden variar mucho de un dispositivo a otro. Por lo tanto, es muy importante que tu widget sea flexible y pueda incorporar más espacio de lo previsto.
  • A medida que el usuario modifique el tamaño de un widget, el sistema responderá con un rango de tamaño en dp según el cual se podrá rediseñar el widget.
  • A partir de Android 12, puedes brindar atributos de tamaño más definidos y diseños más flexibles. Incluye lo siguiente:

Configuración de widgets por parte de los usuarios

A veces, el usuario debe configurar el widget para que pueda ser útil. Piensa en un widget de correo electrónico en el que el usuario debe seleccionar la carpeta de correo antes de que se pueda mostrar la bandeja de entrada o un widget de fotos fijo en el que el usuario tiene que asignar una imagen de la galería para que se muestre. En Android, los widgets muestran sus opciones de configuración justo después de que el usuario los coloca en una pantalla principal.

Lista de tareas de diseño de widgets

  • Concéntrate en pequeñas porciones de información visible en el widget. Amplía la información en tu app.
  • Elige el tipo de widget adecuado para tu objetivo.
  • Planifica cómo se adapta el contenido de tu widget a diferentes tamaños.
  • Asegúrate de que el diseño del widget sea independiente de la orientación y el dispositivo, y de que el diseño se pueda expandir y contraer.
  • Considera si tu widget necesita alguna configuración adicional.