Desarrollador iOS: pregunta de entrevista

¿Cómo estructuras navegación en una app SwiftUI?

La navegación SwiftUI debe derivar de estado de ruta explícito, identificadores estables y destinos tipados, preservar deep links y restauración y separar routing de vistas reutilizables.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

El estado de navegación son datos: un NavigationPath o un array de valores de ruta tipados propiedad de un router o del view model raíz, renderizado por NavigationStack con navigationDestination para cada tipo de ruta. Las pantallas piden al router que empuje o presente en lugar de construir la vista siguiente, lo que las mantiene reutilizables y comprobables. Los deep links se parsean a los mismos valores de ruta y reemplazan la pila, las hojas y cubiertas a pantalla completa se gobiernan por estado opcional, y la pila es Codable para persistirla en la restauración de estado.

Ejemplo

Una app de compras define enum Route: Hashable { case product(id), cart, checkout } y guarda [Route] en un AppRouter @Observable; tocar un producto añade .product(id), y un enlace universal a un producto fija la pila en [.product(id)] para que el botón atrás vuelva a la raíz. El flujo de checkout es un NavigationStack propio dentro de una hoja para poder cerrarlo como unidad.

Errores frecuentes

  • Construir cadenas de NavigationLink(destination:) que crean vistas de forma ansiosa y acoplan pantallas entre sí.
  • Manejar deep links empujando vistas a mano y acabar con una pila inconsistente.
  • Mantener booleanos de presentación en muchas vistas, de modo que dos hojas pueden pedirse a la vez.

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.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador iOS