X

Notificaciones

El sistema de notificaciones permite a tu app mantener al usuario informado sobre todo lo que ocurra como un nuevo mensaje o algún evento del calendario. Piensa en las notificaciones como un canal de noticias que alerta al usuario sobre los eventos importantes que ocurran como un registro que almacena los mismos mientras el usuario no está prestando atención.

Nuevo en Android

En Android 5.0, las notificaciones reciben una actualización importante en sus vertientes estructural, visual y funcional:

  • Las notificaciones tienen el nuevo estilo material design.
  • Las notificaciones ahora están disponibles en la pantalla de bloqueo del dispositivo, con la opción de ocultar o mostrar el contenido sensible.
  • Las notificaciones de alta prioridad recibidas mientras el dispositivo está en uso tienen un nuevo formato llamado heads-up notificacions.
  • Notificaciones sincronizadas con la nube: Descargar una notificación en un dispositivo Android provocará que se descarte en los otros dispositivos también.

Anatomía de una notificación

Esta sección trata las partes básicas de una notificación y como se muestran en función de cada uno de los diferentes tipos de dispositivos.

Layout Base

Como mínimo, todas las notificaciones consisten en un layout base que incluye:

  • El icono de la notificación. El icono simboliza la app que la origina. También puede indicar el tipo de notificación si la aplicación en concreto genera más de un tipo de notificaciones.
  • Un título además de un texto adicional.
  • Una fecha o marca de tiempo.

Las notificaciones se crean con el Notificacion.Builder el cual funciona de la misma forma tanto en Android 5.0 que en versiones previas, salvo que en Lollipop (5.0) tiene algunos cambios visuales.

Layout base de una notificación de un smartphone (izquierda) y la misma notificación en Wear (derecha), con una foto del usuario y un icono de la notificación.

Layouts Ampliados

Puedes elegir cuantos detalles de las notificaciones de tu app deberías proporcionar. Pueden mostrarse al principio con unas pocas líneas de un mensaje, o mostrar una imagen de previsualización grande. La información adicional que proporciones al usuario según el contexto, en muchos casos, puede llegar incluso a permitir que el usuario lea el mensaje completo en dicha notificación. El usuario puede utilizar el gesto pinch-zoom o deslizar un dedo hacía abajo en la notificación para ampliarla. Para notificaciones de evento único, Android proporciona tres plantillas de layouts ampliados (textos, apiladas e imagen), para que puedas utilizarlas en tu aplicación. Las siguientes imágenes te muestran el aspecto de las notificaciones de evento único en smartphones (izquierda) y wearables (derecha).

Acciones

Android soporta acciones opcionales que se muestran en la parte inferior de las notificaciones. Con estas acciones, los usuarios pueden realizar las tareas más habituales para una notificación en concreto sin tener que acceder a la aplicación que la origina. Así aumenta la velocidad de interacción, que junto al gesto de deslizamiento para descargarlas, ayuda al usuario a centrarse únicamente en las notificaciones que les interesa en un momento dado.

Ten cuidado a la hora de elegir cuantas acciones incluyes en una notificaciones. Cuantas más acciones incluyas, más compleja será de crear tanto la notificación, como la adaptación del usuario al uso de la misma. Intenta siempre utilizar el mínimo número de acciones posible, incluyendo únicamente solo las acciones más significativas e importantes.

Unos buenos candidatos para las acciones de las notificaciones son:

  • Esenciales, frecuentes, y habituales en el tipo de contenido que muestras
  • Permiten al usuario realizar tareas rápidamente

Evita las acciones que son:

  • Ambiguas
  • La misma acción por defecto que presionar la notificación en si misma (por ejemplo: Leer, o Abrir)

Puedes añadir un máximo de tres acciones, cada una incluye el nombre e icono asociado a la misma. Añadir acciones a un layout base provocará que se pueda ampliar, incluso si la notificación no tiene un layout ampliado. Como las notificaciones solo se muestran en layout ampliados, asegúrate de que cualquier acción que el usuario pueda realizar desde las notificaciones también pueda realizar dicha acción desde dentro de la app.

Notificaciones flotantes

Cuando una notificación de alta prioridad llega (ver imagen de la derecha), se presenta al usuario durante un breve periodo de tiempo mediante un layout ampliado, mostrando las posibles acciones que permite.

Después de dicho periodo, la notificación va a la pila de notificaciones en el centro de notificaciones. Si una prioridad de una notificación es Alta, Máxima, o pantalla completa, el dispositivo mostrará una notificación flotante siempre.

Unos buenos ejemplos de notificaciones flotante son:

  • Llamadas entrantes
  • Alarmas
  • Nuevos mensajes
  • Batería baja

Ejemplo de una notificación flotante (llamada entrante, alta prioridad), la cual aparece en la parte superior de una aplicación en modo inmersivo.

Guías de Diseño

Hazla personal

Para notificaciones de elementos enviados por otra persona (como mensajes o actualizaciones de estado), incluye el avatar de la persona mediante el método setLargeIcon(). También añade información de la persona a los metadatos de la notificación.

Tu icono principal de tus notificaciones se mostrarán siempre, para que así el usuario pueda asociar la misma con el icono visible en la status bar.

Una notificación que muestra la persona que la ha provocado además del contenido que quiere transmitir.

 

Cuando el usuario toca el cuerpo de una notificación (fuera de los botones de acción), la app se abrirá donde el usuario pueda ver y actuar con los datos a los que hacía referencia dicha notificación. En la mayoría de los casos, se detallará una vista de un elemento de datos único como puede ser un mensaje, pero también puede ser una vista resumen si es una notificación que se encontraba apilada junto a otras. Si la notificación lleva al usuario a cualquier parte por debajo del nivel superior de tu app, inserta a la navegación de tu app la función de que cuando el usuario presione el botón atrás, regrese al nivel superior. Para más información, visita Navegación en tu App a través de los Widgets en la Pantalla de Inicio y Notificaciones, en la pauta de diseño en Navegación.

Ajustar y gestionar correctamente la prioridad de una notificación

Android soporta indicadores de prioridad (priority flag) para las notificaciones. Este indicador te permite decidir donde se mostrarán las notificaciones, en relación a otras notificaciones, para conseguir que el usuario siempre sepa cuales son las notificaciones más importantes. Puedes elegir los siguientes niveles de prioridad cuando muestres una notificación:

Prioridad

Uso

MAX

Se usa para notificaciones urgentes y críticas que alertan al usuario de una condición que es crítica en el tiempo o necesita ser resuelta antes de continuar con otra tarea.

HIGH

Se usa principalmente para comunicaciones importantes, como un mensaje o eventos de chat con contenido que es usualmente interesante para el usuario. Las notificaciones de alta prioridad muestran las notificaciones flotantes durante un breve periodo de tiempo.

DEFAULT

Se usa para todas las notificaciones que no cumplen el resto de prioridades de esta tabla.

LOW

Se usa para notificaciones que quieres que el usuario conozca, pero que no son urgentes. Estas notificaciones se suelen mostrar en la parte inferior de la lista, lo cual provoca que sea una buena elección el utilizarlas para actualizaciones sociales o públicas indirectas: El usuario ha pedido ser notificado sobre ellas, pero nunca son más urgentes o importantes que el resto de notificaciones de carácter más directo y urgente.

MIN

Se usa para información de contexto o de fondo, como puede ser información sobre el tiempo o la ubicación. Estas notificaciones no se muestran en la status bar. Para que el usuario pueda verlas, debe abrir el centro de notificaciones.

Cómo elegir la prioridad apropiada

DEFAULT, HIGH, and MAX son los niveles de prioridad de interrupción existentes, además de tener el riesgo de interrumpir al usuario en mitad de una actividad. Para evitar molestar a los usuarios de tu app, reserva los niveles de prioridad que interrumpen para las notificaciones que:

  • Involucran a otra persona
  • Son susceptibles al tiempo
  • Pueden cambiar inmediatamente el comportamiento del usuario en el mundo real

Ajustar las categorías de las notificaciones

Si tus notificaciones forman parte de una de las categorías predefinidas (ver más abajo), asigna las mismas respectivamente. Los aspectos de la UI del sistema como puede ser el centro de notificaciones, pueden utilizar esta información para elegir el orden de las notificaciones y filtrar ciertas decisiones.

CATEGORY_CALL

Llamada entrante (de voz o vídeo) o alguna comunicación similar.

CATEGORY_MESSAGE

Mensajes directos entrantes (SMS, mensajes instantáneos, etc.).

CATEGORY_EMAIL

Mensajes asíncronos de correo electrónico.

CATEGORY_EVENT

Evento del calendario.

CATEGORY_PROMO

Promoción o anuncio.

CATEGORY_ALARM

Alarma o cronómetro.

CATEGORY_PROGRESS

Progreso de una tarea en segundo plano.

CATEGORY_SOCIAL

Actualización de una red social o de un elemento compartido.

CATEGORY_ERROR

Error en una operación en segundo plano o estado de autentificación.

CATEGORY_TRANSPORT

Control de transporte de medios de una reproducción

CATEGORY_SYSTEM

Actualización del sistema, y por ende, reservado para el mismo.

CATEGORY_SERVICE

Indicación de que un servicio está ejecutándose en segundo plano.

CATEGORY_RECOMMENDATION

Una recomendación específica. Por ejemplo, una nueva app puede recomendar una nueva historia que crea que el usuario querrá leer.

CATEGORY_STATUS

Información sobre la marcha acerca de información sobre el dispositivo.

Resume tus notificaciones

Si una notificación de cierto tipo está ya pendiente cuando tu app trata de enviar otra nueva notificación del mismo tipo, combina las dos en una notificación resumida de tu app. No crees un nuevo objeto.

Una notificación resumida genera a su vez una descripción resumida y permite al usuario comprender cuantas notificaciones de cierto tipo están pendientes.

No

Puedes proporcionar más detalles sobre las notificaciones individuales haciendo un resumen con más datos gracias a un layout ampliado. Esto permitirá al usuario comprender si las notificaciones están pendientes y si son lo suficientemente interesantes para leerlas en detalle dentro de la app.

Notificación sin ampliar y ampliada con un resumen (usando InboxStyle)

Haz notificaciones opcionales

Los usuarios deberían tener siempre el control de las notificaciones. Permite a los usuarios deshabilitar las notificaciones de tu app o cambiar las propiedades de la alerta, así como el sonido de la alerta o el uso de la vibración, añadiendo elementos de ajustes de notificaciones en los ajustes de tu aplicación.

Usa iconos distinguidos

Mediante un vistazo al área de notificaciones, el usuario debería ser capaz de distinguir que tipo de notificaciones se encuentran pendientes en dicho momento.

Echa un vistazo a los iconos de las apps Android que actualmente proporcionan y crean iconos de notificaciones para asegurarte que el icono de tu app es lo suficientemente diferente en apariencia.

Usa un estilo de iconos de notificaciones para iconos pequeños, y el estilo de iconos de la action bar Material Light para tus iconos de acción.

Mantén tus iconos con un estilo visual simple, evita añadir demasiados detalles que dificulten su visualización.

No

Los iconos en si mismos tienen que tener una opacidad del 100% exceptuando, evidentemente, lo que va más allá de los bordes de los mismos.

No

Utilizar un color diferente para tu app. Los iconos de las notificaciones deberían ser siempre blancos sobre un fondo completamente transparente.

Pulso apropiado del LED de notificaciones

Muchos dispositivos Android tienen un LED de notificaciones, el cual se utiliza para mantener al usuario informado sobre los eventos que ocurren mientras la pantalla se encuentra apagada. Las notificaciones con un nivel de prioridad de MAX, HIGH, or DEFAULT deberían provocar que el LED brille, mientras que las que tienen un nivel de prioridad más bajo (LOW and MIN) no deberían provocar dicho brillo.

El control del usuario sobre las notificaciones también debería extenderse a este LED. Cuando uses DEFAULT_LIGHTS, el LED deberá brillar con un color blanco. Tus notificaciones no deberían mostrar un color diferente a menos que el usuario lo personalice de forma explícita.

Crear Notificaciones que por las que se Preocupen los Usuarios

Para crear una app que los usuarios adoren, es importante crear las notificaciones cuidadosamente. Las notificaciones expresan la voz de tu app, y contribuyen a su vez a la personalidad de la misma. Las notificaciones que no son importantes o que el usuario no quiere ver pueden molestarlo, o hacer que se resienta la idea de prestar atención a las mismas, así que ten cuidado con las notificaciones que pretendes mostrar.

Cuando mostrar una notificación

Para crear una aplicación que los usuarios disfruten al utilizarla, es importante reconocer que la atención y concentración del usuario es un recurso que se debe proteger. Mientras que el sistema de notificaciones de Android se ha diseñado para minimizar el impacto de las notificaciones sobre la atención del usuario, es importante tener cuidado con el hecho de que las notificaciones están interrumpiendo el flujo de tareas del usuario. Así que cuando planees tus notificaciones, pregúntate a ti mismo si son lo suficiente mente importantes para garantizar una interrupción. Si no estás seguro, permite al usuario decidir sobre dicha importancia en los ajustes de las notificaciones de tu app, o ajusta la prioridad a LOW or MIN para evitar distraer al usuario mientras están realizando cualquier otra cosa.

Ejemplos de notificaciones susceptibles al tiempo.

Normalmente las apps con un buen comportamiento son las que “responden” cuando se les “pregunta”, hay algunos casos donde se puede realizar alguna notificación de forma espontánea.

Utiliza las notificaciones principalmente para eventos susceptibles al tiempo, especialmente si involucran a otras personas. Por ejemplo, un chat entrante en tiempo real ya que es una forma de comunicación sincrónica, ya que otro usuario está esperando activamente tu respuesta. Los eventos de calendario es otro buen ejemplo de cuando utilizar una notificación para atraer la atención del usuario, ya que un evento es inminente, y los eventos de calendario en algunas ocasiones involucran a otras personas.

Cuando no mostrar una notificación

En muchos casos, las notificaciones no son apropiadas:

  • Evita notificar al usuario sobre información que on está dirigida específicamente hacia él, o información que no es realmente susceptible al tiempo. Por ejemplo, las actualizaciones asíncronas e indirectas de una una red social generalmente no garantizan que se deba interrumpir al usuario en tiempo real. Para esos usuarios que si lo desean, añade una opción en los ajustes de tu app.
  • No crees una notificación si la nueva información relevante se encuentra ya en pantalla. En su lugar, utiliza la UI del a aplicación en si misma para notificar al usuario sobre esta nueva información directamente en el contexto. Por ejemplo, una aplicación de chat no debería crear notificaciones mientras el usuario está activamente chateando con otro usuario dentro de la app.
  • No interrumpas al usuario debido a operaciones técnicas de bajo nivel, como guardar o sincronizar información, o actualizar una aplicación si la app o el sistema pueden resolver este problema sin involucrarlo.
  • No molestes al usuario para informarlos sobre un error si es posible para la aplicación solucionarlo ella sola sin que el usuario tenga que realizar ninguna acción.
  • No crees notificaciones que no tienen un contenido real que notificar y únicamente hacen publicidad de tu app. Una notificación debería proporcionar información nueva, oportuna, útil y no debería utilizarse simplemente para ejecutar una app.
  • No crees notificaciones superfluas que solo muestre tu marca a tus usuarios. Este tipo de notificaciones solo frustran y enojan a tu audiencia. La mejor forma de proporcionar pequeñas cantidades de información actualizada para que tu app los atraiga es desarrollar un widget que ellos mismos van a poder elegir colocar en su pantalla de inicio.

Interactuar con las Notificaciones

Las notificaciones se indican mediante iconos en la barra de estado, y se accede a ellas abriendo el centro de notificaciones.

Tocar una notificación abre la app asociada a la misma para mostrar contenido detallado relacionado con dicha notificación. Deslizar a la izquierda o derecha descarga la notificación del centro de notificaciones.

Notificaciones sobre la marcha

Las notificaciones sobre la marcha mantienen a los usuarios informados sobre procesos que ocurren en segundo plano. Por ejemplo, un reproductor de música muestra la pista de audio actual en el sistema de notificaciones y continua así hasta que el usuario pare el reproductor. Estas notificaciones pueden también mostrar al usuario cierta retroalimentación sobre tareas de larga duración, como por ejemplo, descargas de archivos o la codificación de un vídeo. Un usuario no puede eliminar manualmente una notificación sobre la marcha del centro de notificaciones.

Notificación sobre la marcha de un reproductor de música.

Reproductor de Medios

En Android 5.0, la pantalla de bloqueo no muestra los controles de reproducción para la clase obsoleta RemoteControlClient. Pero  muestra las notificaciones, así que cada notificación de un reproductor de una app es actualmente la principal forma para que los usuarios controlen el medio en cuestión cuando el dispositivo se encuentra bloqueado. Este comportamiento le da a la apps más control sobre que botones mostrar, y de que forma, ademas de proporcionar una experiencia coherente para el usuario, se encuentre o no la pantalla bloqueada.

Diálogos y toasts

Tu app no debería crear un diálogo o un toast si no se encuentra actualmente en la pantalla. Un dialogo o un toast debería solo mostrar inmediatamente como respuesta a la acción de un usuario dentro de tu app. Para más información sobre los diálogos y los toasts, visita Confirmar y Reconocer.

Clasificación y orden

Las notificaciones nuevas y similares se muestran esencialmente en orden cronológico inverso, prestando especial consideración a la prioridad de la notificación de la app.

Las notificaciones son una parte clave de la pantalla de bloqueo, y se caracterizan por aparecer una vez que el dispositivo enciende la pantalla. El espacio en una pantalla de bloqueo es generalmente escaso, así que es más importante identificar las notificaciones más urgentes o relevantes. Por esta razón, Android tiene un sofisticado algoritmo para ordenar las notificaciones, el cual tiene en cuenta:

  • La fecha o marca de tiempo y la prioridad de la aplicación
  • Si la notificación ha molestado recientemente al usuario con un sonido o vibración (es decir, si el teléfono hace un sonido y el usuario quiere saber “¿Qué ha ocurrido?”, la pantalla de bloqueo debería ser dicha respuesta con un solo vistazo.
  • Cualquier persona adjunta a la notificación mediante el uso de EXTRA_PEOPLE, y de forma particular, si son usuarios destacados en los contactos.

La mejor ventaja de este método de ordenación, es que se enfoca en la experiencia de usuario y tienes que tenerlo en cuenta a la hora de crear tus notificaciones.

Las notificaciones de Gmail tienen una prioridad default, así que normalmente se muestran debajo de mensajes instantáneos de apps como Hangouts, pero se encuentran arriba generalmente cuando se han recibido. recientemente.

En la pantalla de bloqueo

Ya que las notificaciones son visibles en la pantalla de bloqueo, la privacidad del usuario es realmente importante. Las notificaciones a veces contienen información confidencial, y no debería ser necesariamente visible para cualquiera que coja el dispositivo y encienda la pantalla.

  • Para dispositivos que tienen bloqueo de pantalla seguro (Pin, patrón, o contraseña), la interfaz tiene partes públicas y privadas. La parte pública puede mostrarse en pantallas de bloqueo de pantalla seguro y cualquiera puede verla. La parte privada está oculta en la pantalla de bloqueo, y solo se muestra una vez que el usuario ha pasado el bloqueo de pantalla.

Control del usuario sobre la información que se muestra en una pantalla de bloqueo segura

Cuando se configura una pantalla de bloqueo segura, el usuario puede elegir si los detalles confidenciales se muestran o no. En este caso la UI del Sistema considera el nivel de visibilidad de la notificación para decidir que debe mostrar y que no.

Para controlar el nivel de visibilidad, utiliza Notificacion.Builder.setVisibility(), y especifica una de los siguientes valores:

  • VISIBILITY_PUBLIC. Muestra todo el contenido de la notificación. Esta es la visibilidad por defecto del sistema si no se ha especificado.
  • VISIBILITY_PRIVATE. En la pantalla de bloqueo, muestra la información básica sobre la existencia de esta notificación, incluyéndose el icono y el nombre de la app que la ha generado. El resto de detalles de la misma no se muestra. Un buen par de puntos a tener en cuenta son:
    • Si quieres proporcionar diferentes versiones de tu notificación para que el sistema se muestre en una pantalla de bloqueo segura, reemplaza el objeto Notification en el campo Notification.publicVersion.
    • Este ajuste te da la posibilidad de crear una versión redactada del contenido que útil y que no revela información personal. Considera el ejemplo de la app SMS cuyas notificaciones incluyen el texto del SMS y el nombre del que lo ha enviado y su icono de contacto. Esta notificación debería ser VISIBILITY_PRIVATE, pero publicVersion podría contener información útil como por ejemplo “3 nuevos mensajes” sin añadir otros detalles identificativos.
  • Notification.VISIBILITY_SECRET. Muestra solo la mínima información posible, excluyendo incluso el icono de la notificación.

Notificaciones en la pantalla de bloqueo con contenidos que se mostrarán una vez se desbloquee la pantalla.

Notificaciones en Android Wear

Las notificaciones y sus acciones están conectadas hacia los dispositivos en los dispositivos Android por defecto. Los desarrolladores pueden tomar el control de esta conexión desde el teléfono al reloj, y viceversa. Los desarrolladores también pueden tomar el control sobre la conexión de las acciones. Si tu app incluye acciones que no se pueden realizar con una simple toque, deberías ocultar dichas acciones en Wear y considerar crear una app para Wear, así permitirás al usuario completar la acción en su reloj.

Conectar notificaciones y acciones

Un dispositivo conectado, como puede ser un teléfono, puede transmitir notificaciones a un dispositivo Wear, así las notificaciones se muestran ahí también. De forma similar, puede conectar también las acciones, para que el usuario pueda actuar sobre las notificaciones desde Wear.

Conecta

  • Nuevos mensajes instantáneos.
  • Acciones de un único toque como puede ser un +1, Me gusta, etc.

No conectes

  • Notificaciones sobre nuevos podcasts que acaban de recibirse.
  • Acciones que no se pueden realizar en un reloj.

Acciones únicas de Wear

Hay algunas acciones que puedes realizar solo en Wear. Estas son:

  • Listas rápidas de respuestas rápidas como “Vuelvo enseguida”.
  • Abrir en el teléfono.
  • Una acción de un “Comentario” o “Respuesta que te lleve a la pantalla de introducción de texto mediante la voz.
  • Acciones que lanzan apps diseñadas especialmente para Wear.

Puedes ver más información sobre Notificaciones en la página oficial de Google en inglés pulsando aquí.

Los comentarios de Disqus están cargando....