X

Navegación

Una navegación consistente es, sobretodo, un componente esencial en la experiencia de usuario. Pocas cosas pueden frustrar a los usuarios más que una navegación básica que se comporta de forma inconsistente o inesperada. Android 3.0 introdujo cambios significativos en el comportamiento de la navegación en general. Cuidadosamente, siguiendo las guías para Atrás y Subir crearás una navegación predecible y segura para los usuarios de tu aplicación.

Android 2.3 y las versiones anteriores confiaban en el sistema del botón Atrás para soportar la navegación dentro de una app. Con la introducción de las barras de acciones en Android 3.0, apareció un segundo mecanismo de navegación: el botón Subir, que consistía en el icono de la app y el signo de intercalación izquierdo.

DESARROLLADOR

Implementar una Navegación Efectiva.

Subir vs. Atrás

El botón Subir se usa para navegar dentro de una app siguiendo una relación jerárquica entre las pantallas. Por ejemplo, si la pantalla A muestra una lista de elementos, y seleccionando un elemento dirige a la pantalla B (la cual presenta ese elemento más detalladamente), entonces la pantalla B debería ofrecer un botón Subir que regrese a la pantalla A.

Si una pantalla se encuentra en lo más alto de dicha jerarquía (es decir, la pantalla inicial de la app), no debería mostrar un botón Subir.

El sistema del botón Atrás es usado para navegar en orden inverso cronológico a través del historial de pantallas con las cuales el usuario ha interactuado recientemente. Generalmente se basa en las relaciones temporales entre las pantallas, en lugar de la jerarquía de la app.

Cuando la pantalla previamente visualizada es también la pantalla “padre” de la actual, presionar el botón Atrás tiene el mismo efecto que presionar el botón Subir, es un caso bastante común. Sin embargo, a diferencia del botón Subir, el cual asegura que el usuario siempre permanecerá en tu app, el botón atrás puede regresar al usuario a la Pantalla de Inicio o incluso a una app diferente.

El botón atrás también soporta otros comportamientos que no están directamente ligados con la navegación “pantalla a pantalla”.

  • Descartar ventanas flotantes (diálogos, emergentes o popups)
  • Descartar las barras de acciones contextuales y remover el estado seleccionado de los elementos
  • Ocultar el teclado en pantalla (IME)

Navegación dentro de tu App

Navegar hacia pantallas con múltiples puntos de entrada

Algunas veces una pantalla no tiene estrictamente un solo punto dentro de la jerarquía de la app y por ende puede ser alcanzada desde múltiples puntos de entrada, por ejemplo, una pantalla de ajustes que puede ser alcanzada desde cualquier otra pantalla dentro de tu app. En este caso, el botón Subir debería elgir regresar a la pantalla referente, teniendo un comportamiento idéntico a Atrás.

Cambiar la vista dentro de una pantalla

Cambiar las opciones de vista de una pantalla no cambia el comportamiento de Subir o Atrás: la pantalla está todavía en el mismo lugar dentro de la jerarquía de la app, y no se crea un nuevo historial de navegación.

Ejemplos de cambios de vista de ese tipo son:

  • Cambiar entre vistas usando pestañas o deslizamiento laterales a izquierda o derecha
  • Cambiar entre vistas usando un menú descendente (también conocido como pestañas colapsadas)
  • Filtrar una lista
  • Ordenar una lista
  • Cambiar las características de una pantalla (como el zoom)

Navegación entre pantallas colindantes

Cuando tu app soporta la navegación entre los elementos de una lista para mostrar los detalles de uno de esos elementos en una vista, es recomendable dar soporte a una navegación direccional desde un elemento a otro, el cual precede o sigue en la lista al mencionado anteriormente. Por ejemplo, en Gmail es fácil desplazarse de izquierda a derecha en una conversación para ver los email más nuevos o más antiguos de la bandeja recientes. Hay que recordar que cuando cambiamos de vista dentro de una pantalla, la navegación no cambia el comportamiento del botón Arriba o Atrás.

Sin embargo, hay una excepción importante que ocurre cuando estás navegando entre vistas de detalles relacionadas pero que no están ligadas entre ellas por una lista, por ejemplo, cuando navegas en la Play Store entre apps del mismo desarrollador, o álbumes del mismo artista. En esos casos, siguiendo cada enlace no crea un historial, provoca que el botón Atrás muestre la pantalla visualizada anteriormente respectivamente. Arriba, debería evitar las pantallas relacionadas y navegar entre las pantalla vista más reciente.

Tienes la habilidad para hacer que Subir se comporte incluso más inteligentemente basándote en tus conocimientos de la vista de detalles. Extendiendo el ejemplo de la Play Store anterior, imagina que el usuario ha navegado desde el último libro visto a los detalles de la adaptación a película. En ese caso, Subir puede regresar al contenedor (Películas), al cual el usuario no ha navegado previamente.

Navegar dentro de tu App con los Widgets de la Pantalla de Inicio y las Notificaciones

Puedes usar los Widgets de la Pantalla de Inicio o las notificaciones para ayudar a tus usuarios a navegar directamente a pantallas con cierta profundidad dentro de la jerarquía de tu app. Por ejemplo, el widget de la bandeja de entrada de Gmail y las notificaciones de nuevos mensajes pueden evitar la pantalla de bandeja de entrada para pasar directamente a la vista de la conversación.

Para ambos casos, gestiona el botón Arriba de la siguiente forma:

  • Si la pantalla de destino es normalmente alcanzada por una pantalla particular dentro de tu app, Subir debería navegar a esa pantalla.
  • De otra forma, Subir debería navegar a la pantalla inicial de tu app.

En el caso del botón Atrás, tu deberías hacer una navegación más predecible insertando la pila de tareas realizadas anteriormente hasta llegar a la Pantalla Inicial de tu app. Esto permite a los usuarios que se encuentren perdidos a reencontrarse en tu aplicación navegando hasta la pantalla inicial antes de salir o recordar que estaban haciendo en caso de haberlo olvidado.

Por ejemplo, la Pantalla de Inicio del widget de Gmail tiene un botón para llegar directamente a la pantalla de redactar un mensaje. Subir o Atrás desde la pantalla de redactar un mensaje permite llevar al usuario a la bandeja de entrada, y desde ahí el botón Atrás lo trasladaría a la Pantalla de Inicio.

Notificaciones indirectas

Cuando tu app necesita presentar información sobre varios eventos simultáneamente, puede usar una notificación individual que dirija al usuario a una pantalla que sea un espacio entre varias pantallas. Esta pantalla hallaría dichos eventos, y proporciona un camino al usuario para profundizar dentro de la app. Las notificaciones con este estilo son llamadas notificaciones indirectas.

A diferencia de las notificaciones estándar (directas), presionar Atrás desde dicha pantalla de intersección de notificación indirecta regresaría al usuario al punto en que la notificación fue provocada, si no hay pantallas adicionales se posicionaría en la pila de atrás. Una vez que el usuario se encuentra dentro de la app llegando desde la pantalla de intersección, Subir y Atrás se comportaran como notificaciones estándar descritas arriba: navegar dentro de la app en lugar de volver a la pantalla de intersección.

Por ejemplo, supón que un usuario de Gmail recibe una notificación indirecta desde la app Calendario. Tocar esta notificación abre la pantalla de intersección, la cual muestra recordatorios de los diferentes eventos. Tocar Atrás desde la misma, regresa al usuario a Gmail. Tocar en un evento en particular llevará al usuario más allá de la pantalla de intersección y entraría en la app Calendario completamente, para mostrar los detalles del evento. Desde esa vista, Subir y Atrás te llevan a la Pantalla Inicial de Calendario.

Notificaciones emergentes (Pop-up)

Las notificaciones emergentes evitan pasar por el cajón de notificaciones, en su lugar aparecen directamente enfrente del usuario. Raramente son usadas y deberían reservarse para ocasiones donde se requiere una respuesta rápida u oportuna y la interrupción del usuario es necesaria. Por ejemplo, Hangouts usa este tipo de alertas cuando el usuario recibe una invitación de un amigo para unirse a un chat en vídeo, esta invitación expirará automáticamente después de unos segundos.

En términos de comportamiento de navegación, este tipo de notificaciones siguen de cerca el comportamiento de la pantalla de intersección de una notificación indirecta. Atrás descarga la notificación emergente. Si el usuario navega desde la notificación emergente dentro de la app (la que genera la notificación), Subir y Atrás sigue las reglas para las notificaciones estándar, navegar dentro de la app.

Navegación entre apps

Uno de los puntos fuertes fundamentales del sistema Android es la habilidad de las apps de poder activar otras apps, dando al usuario la oportunidad de navegar directamente desde una app a otra. Por ejemplo, una app que necesita tomar una foto puede activar la app Cámara, la cual regresará la foto a la app en cuestión. Esto es un beneficio tremendo para ambos, desarrolladores ya que pueden fácilmente aprovechar las apps de otros desarrolladores, y usuarios que pueden disfrutar de una experiencia consistente para las acciones que realizan normalmente.

Para comprender la navegación app hacia app, es importante comprender el comportamiento de la estructura de Android que se mostrará a continuación.

Actividades, tareas e intentos

En Android una actividad es un componente de una aplicación que define una pantalla con información y todas las acciones asociadas que el usuario puede realizar. Tu aplicación es una colección de actividades, que consta tanto de las actividades que se crean como las re-usas desde otras apps.

Una tarea es una la secuencia de actividades que un usuario sigue para intentar lograr un objetivo. Una tarea individual puede hacer uso de actividades de una sola app o puede ser un conjunto de actividades desde diferentes apps.

Un intento es un mecanismo de una app para avisar a otra app para realizar una función determinada. Las actividades de una aplicación pueden indicar que intentos pueden responder. Un intento común conocido como “Compartir” es un ejemplo de como puede ser respondido por muchas aplicaciones que tiene el usuario instaladas en su dispositivo.

Ejemplo: navegar entre apps que soportan compartir

Para comprender como las actividades, tareas e intentos funcionan juntos, se considera una app que permite al usuario compartir contenido usando otra app. Por ejemplo, lanzar la Play Store desde la Pantalla de Inicio empieza una nueva Tarea A (mira la figura de abajo). Después navegar a través de la Play Store y tocar un libro promocionado para ver sus detalles, el usuario permanece en la misma tarea, que se extiende mediante la adición de actividades. Provocar la acción Compartir hará que se pida al usuario con un dialogo en forma de lista cada una de las actividades (de diferentes apps) las cuales están registradas para gestionar el intento Compartir.

Cuando el usuario elige compartir con la app Gmail, la actividad redactar un email de Gmail es añadida como continuación de la Tarea A, no se crea una nueva tarea. Si Gmail tiene su propia tarea corriendo en segundo plano, no sería afectada.

Desde la actividad de redactar, cuando se envía el mensaje o se toca el botón Atrás, el usuario regresa a la actividad anterior. Otra secuencia de toques en Atrás continuará la navegación hacía atrás a través de la Play Store hasta llegar finalmente a la Pantalla de Inicio

Por otro lado, al tocar Subir desde la actividad redactar, el usuario indica que desea permanece dentro de Gmail. La actividad lista de conversaciones de Gmail aparece y una nueva Tarea B es creada. Las nuevas tareas son siempre ligadas a la Pantalla de Inicio, así que tocar Atrás desde la lista de conversaciones regresa a dicha Pantalla de Inicio.

La tarea A persiste en segundo plano y el usuario puede regresar a ella más tarde (por ejemplo, a través de la pantalla Recientes). Si Gmail ya tiene su propia tarea ejecutándose en segundo plano, seria reemplazada con la Tarea B, el contexto anterior es abandonado para favorecer el nuevo objetivo del usuario.

Cuando tu app se registra para gestionar intentos con una actividad profunda dentro de la jerarquía de la app, consulta Navegar dentro de tu App a través de Widgets en la Pantalla de Inicio y Notificaciones para obtener información sobre como especificar la navegación Arriba.

Nota: Android también soporta pantallas de baja densidad (LDPI), pero normalmente no necesitarás crear recursos personalizados para estas pantallas porque Android reduce la escala de tus recursos HDPI eficazmente a la mitad para encajar con el tamaño esperado.

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

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