Desarrollador Android: pregunta de entrevista
¿Cómo estructuras la navegación Android?
Modela navegación con destinos y argumentos explícitos, separa decisiones de UI reutilizable, restaura estado tras muerte del proceso y trata deep links y back stack como flujos probados.
Respuesta directa
Qué debe cubrir una buena respuesta
Cómo funciona
La navegación se modela como un grafo de destinos con argumentos tipados, sea con Navigation Compose, el componente de navegación XML o una pila propia. Las pantallas reciben argumentos y emiten eventos; la decisión de navegar vive en un solo sitio, como un evento del ViewModel manejado por el host, para que los composables reutilizables no dependan de la biblioteca de navegación. Los deep links mapean URLs a destinos con una pila sintetizada, la pila se guarda para la muerte del proceso y los grafos anidados agrupan flujos como onboarding o checkout con sus propias reglas de entrada y salida.
Ejemplo
Un flujo de checkout es un grafo anidado con destinos de carrito, dirección y pago que comparten un ViewModel acotado al grafo; terminar el pago saca todo el grafo y vuelve a la lista de pedidos. Abrir una notificación push de un pedido lleva al detalle con la lista de pedidos debajo, así que el botón atrás se comporta igual que si el usuario hubiera navegado hasta allí.
Errores frecuentes
- Pasar objetos completos como argumentos en lugar de IDs y chocar con límites de tamaño o datos obsoletos.
- Llamar al NavController desde composables reutilizables y acoplarlos al grafo.
- Ignorar la muerte del proceso, de modo que una app restaurada aterriza en una pantalla con argumentos nulos.
Una estructura útil para responder
Responde desde tu propia experiencia.
No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.
Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.