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.
Contenidos
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)
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.
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.
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
Puedes ver más información sobre Navegación en la página oficial de Google en inglés pulsando aquí.