Desarrollador iOS: pregunta de entrevista

¿Cómo eliges persistencia local en iOS?

Elige persistencia según forma, volumen, consultas y sincronización: UserDefaults para preferencias, archivos para blobs, Keychain para secretos y SwiftData/Core Data o SQLite para relaciones.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

El almacén sigue a los datos. Las preferencias pequeñas y banderas van en UserDefaults. Los secretos como tokens van en el Keychain, que sobrevive a la reinstalación y está cifrado por el sistema. Los blobs grandes como medios descargados van al sistema de ficheros en Caches si son regenerables o en Application Support si no, con atributos de protección. Los datos estructurados, relacionados y consultables van en SwiftData o Core Data, que aportan seguimiento de cambios, migraciones y sincronización con iCloud, o en SQLite mediante GRDB cuando importa el control total del SQL. Mezclar niveles es normal: la base de datos guarda metadatos y una ruta al fichero.

Ejemplo

Una app de podcasts guarda la velocidad de reproducción en UserDefaults, el token de suscripción en el Keychain, el audio de episodios en Caches con una política de expulsión por tamaño, y el catálogo con el progreso de escucha en SwiftData para que la biblioteca consulte episodios sin reproducir por programa. Una versión anterior guardaba el progreso en un JSON reescrito por completo en cada actualización, lento y frágil.

Errores frecuentes

  • Serializar todo el estado de la app en un único JSON y reescribirlo constantemente.
  • Meter datos grandes en UserDefaults y ralentizar el arranque.
  • Elegir Core Data para un puñado de ajustes y añadir migraciones para nada.

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