Persistencia de Datos en iOS con UserDefaults
Clase 12 de 52 • Curso de Desarrollo de Apps para iOS
Resumen
¿Qué es la persistencia y por qué es importante?
La persistencia es fundamental en el desarrollo de aplicaciones modernas, ya sea en Android, iOS o web. Almacenar información localmente mejora la experiencia del usuario al eliminar la necesidad de acciones repetitivas, como ingresar el correo al iniciar sesión en cada ocasión. Esto se logra utilizando funciones que permiten recordar información clave del usuario, asegurando una interacción más fluida y personalizada.
En el contexto de iOS, Apple proporciona una herramienta poderosa para la persistencia conocida como UserDefault
, que facilita el almacenamiento local de datos en los dispositivos del usuario.
¿Cómo configurar la persistencia utilizando UserDefault en iOS?
UserDefault nos permite almacenar y recuperar valores fácilmente con el uso de llaves únicas. Aquí te mostramos cómo implementarlo para recordar el correo electrónico del usuario en una aplicación.
Paso a paso para almacenar datos
-
Crear una propiedad constante: Inicializa un objeto de UserDefault para acceder a los valores guardados.
let storage = UserDefaults.standard
-
Definir una llave para almacenar el correo: Proporciona consistencia en el formato de las llaves para una fácil gestión.
let emailKey = "emailKey"
-
Buscar datos almacenados: En el método
viewDidLoad
, verifica si ya existe un correo guardado.if let storedEmail = storage.string(forKey: emailKey) { emailTextField.text = storedEmail emailSwitch.isOn = true } else { emailSwitch.isOn = false }
-
Guardar el correo al iniciar sesión: Solo si el switch está activado, guarda el correo utilizando la llave definida.
if emailSwitch.isOn { storage.setValue(emailTextField.text, forKey: emailKey) }
Eliminar datos de UserDefault
Una operación esencial en el manejo de persistencia es la eliminación de datos. Aquí te mostramos cómo hacerlo cuando el usuario decide no guardar su información.
-
Eliminar el correo guardado: Utiliza el método
removeObject
cuando el switch esté desactivado al completar el login.storage.removeObject(forKey: emailKey)
Buenas prácticas y recomendaciones
¿Es seguro guardar contraseñas en UserDefault?
No, es inseguro almacenar contraseñas o tokens de autenticación en UserDefault. Este tipo de información sensible puede ser comprometida en dispositivos modificados (jailbroken). Para una protección adecuada, utiliza servicios más seguros como Keychain Services.
Tarea recomendada
Invitamos a los estudiantes a investigar sobre los Keychain Services. Estos ofrecen un almacenamiento seguro para contraseñas y datos sensibles en iOS. Comprende mejor su uso para garantizar la seguridad de la información de tus usuarios.
Practica almacenando diferentes tipos de datos, como números y booleanos, hasta sentirte cómodo con las funcionalidades de UserDefault. ¡Sigue experimentando y mejora tus habilidades constantemente!