Desarrollador Android: pregunta de entrevista

¿Cómo gestionas networking en Android?

Networking Android necesita contratos tipados, timeouts, cancelación, reintentos solo para trabajo idempotente transitorio, errores mapeados, refresh de autenticación, transporte seguro y caché o persistencia.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

La red en Android se sitúa detrás de un repositorio para que la interfaz nunca vea HTTP. Retrofit o Ktor con una API tipada y un serializador dan contratos en compilación; los interceptores de OkHttp añaden autenticación, logs en builds de debug y refresco de token con un guardián de vuelo único para que diez 401 en paralelo produzcan un solo refresco. Los timeouts son explícitos, las llamadas se cancelan con la corrutina que las inició, los reintentos se limitan a solicitudes idempotentes y fallos transitorios con backoff, los errores se mapean a un resultado sellado que la interfaz puede pintar, y las respuestas que deben sobrevivir sin conexión pasan por la base de datos local.

Ejemplo

Una pantalla de feed llama a repository.loadFeed(), que devuelve filas cacheadas de Room de inmediato y dispara un refresco de red; el Authenticator refresca el token de acceso una vez cuando caduca y repite la solicitud fallida, y un 5xx de la API aparece como un aviso de reintento mientras un 422 muestra el mensaje de validación del cuerpo de la respuesta.

Errores frecuentes

  • Hacer llamadas de red directamente desde un composable o una Activity y perderlas al rotar.
  • Reintentar cualquier fallo, incluidos POST que ya tuvieron éxito en el servidor.
  • Desactivar la validación de certificados en una build de debug y publicarla por accidente.

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 Android