Desarrollador iOS: pregunta de entrevista

¿Cómo diseñas networking en iOS?

Diseña networking iOS con URLSession, modelos tipados, cancelación, timeouts, errores mapeados, credenciales seguras, reintentos para fallos transitorios seguros y estado de carga observable.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

La capa de red envuelve URLSession detrás de un protocolo pequeño para que las funcionalidades dependan de una interfaz y las pruebas inyecten un doble. Las solicitudes se construyen desde endpoints tipados que codifican ruta, método, query y cuerpo; las respuestas se decodifican a modelos Codable con estrategias explícitas de fechas y claves. Los errores se convierten en un único enum que distingue fallos de transporte, rangos de estado HTTP y problemas de decodificación, para que la interfaz decida entre reintento y mensaje. async/await con cancelación de Task detiene una solicitud cuando su pantalla desaparece, los reintentos solo aplican a solicitudes idempotentes con backoff, y los tokens viven en el Keychain y se refrescan mediante una única tarea en vuelo.

Ejemplo

Un ProductsClient expone func products(page: Int) async throws -> [Product] sobre un protocolo HTTPClient inyectado; la vista SwiftUI lo llama dentro de .task para que salir de la pantalla cancele la carga. Cuando el token de acceso caduca, el cliente espera una tarea de refresco compartida y reintenta una vez la solicitud original, y un 401 tras el refresco cierra la sesión.

Errores frecuentes

  • Usar una llamada directa al singleton de URLSession en las vistas y hacerlas imposibles de probar.
  • Reintentar un POST fallido que quizá ya creó el recurso.
  • Guardar el token de autenticación en UserDefaults en lugar del Keychain.

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