Contenido del curso
Tu primera app en iOS
- 4

Creación de la primera app iOS con Xcode: Login de Facebook
09:02 min - 5

Navegación entre pantallas en iOS con UI Navigation Controller
05:49 min - 6

Creación y conexión de múltiples storyboards en iOS
06:14 min - 7

Conexiones IBOutlets y IBActions en iOS con Storyboards
11:00 min - 8

Comparativa: Auto Layout vs SwiftUI en Desarrollo iOS
02:48 min - 9

Auto Layout en iOS: Diseño Responsivo con Constraints y StackViews
11:10 min - 10

Creación y configuración de tablas en iOS con Swift
12:49 min - 11

Creación de celdas personalizadas en TableView de iOS
14:00 min - 12

Persistencia de Datos en iOS con UserDefaults
Viendo ahora
Manejo de dependencias
Servicios Web
Proyecto: PlatziTweets
- 19

Desarrollo de "Platzi Tweets": Red Social iOS Realista
02:24 min - 20

Configuración Inicial de Proyecto iOS con CocoaPods
06:18 min - 21

Diseño de Pantallas de Bienvenida, Inicio de Sesión y Registro en iOS
13:06 min - 22

Controladores y validaciones en pantallas de registro y login
12:22 min - 23

Validación y Conexiones en Login y Registro iOS
10:01 min - 24

Modelado de Endpoints y JSON para API de PlatziTweets
01:44 min - 25

Integración de Autenticación con API de Platzi Tweets
09:37 min - 26

Desarrollo de Registro y Autenticación en Aplicaciones iOS
06:47 min - 27

Diseño de Interfaces para Aplicaciones iOS: Creación de Celdas Personalizadas
12:37 min - 28

Consumo de API para mostrar tweets en iOS
12:43 min - 29

Diseño de Pantalla para Crear y Publicar Tweets en iOS
11:06 min - 30

Conexión de Pantalla de Publicación con Servicios de Platzi Tweets
09:11 min - 31

Borrado de Tweets Propios en iOS usando Swipe en UITableView
12:20 min - 32

Uso de la Cámara del iPhone para Adjuntar Fotos en Posts
10:39 min - 33

Conexión de Aplicaciones iOS con Firebase paso a paso
02:26 min - 34

Configuración de iPhone y X-Code para ejecución de apps
04:45 min - 35

Subida de Fotos a Firebase y Publicación en Twitter
13:38 min - 36

Configuración de Post con Imagen en Firebase
03:13 min - 37

Captura y Publicación de Videos en iOS con Firebase
09:17 min - 38

Subida de Videos a Firebase e Integración en Posts de iOS
14:41 min - 39

Configuración de Celdas para Reproducción de Videos en iOS
07:58 min - 40

Acceso al GPS y almacenamiento de coordenadas en iOS
09:43 min - 41

Integración de Mapas en iOS con Coordenadas de Usuario
11:28 min - 42

Marcadores y Configuración de Mapas en iOS con Swift
14:11 min - 43

Mejoras avanzadas en UI y UX para iOS Developer
01:28 min
En producción
iOS Avanzado
Hola, iOS Developer
Persistencia de Datos en iOS con UserDefaults
Resumen
Guardar información localmente en una aplicación móvil transforma por completo la experiencia del usuario. Desde recordar un correo electrónico hasta mantener preferencias activas, la persistencia local es una habilidad fundamental para cualquier desarrollador iOS que quiera crear aplicaciones profesionales y cómodas de usar.
¿Qué es la persistencia y por qué importa en tus aplicaciones?
La persistencia consiste en almacenar datos de forma local dentro de la aplicación para que el usuario pueda recuperarlos después [0:10]. No importa si trabajas en Android, iOS o web: esta funcionalidad mejora la experiencia porque evita que el usuario repita acciones innecesarias, como escribir su correo electrónico cada vez que inicia sesión.
Un ejemplo clásico es mantener el correo guardado en el campo de texto del login. Para lograr esto en iOS, Apple provee una clase llamada UserDefaults [0:50], que permite leer y escribir valores simples en el almacenamiento local del dispositivo.
¿Cómo configurar la interfaz para activar la persistencia?
Antes de escribir código, es necesario preparar la interfaz. En el proyecto de práctica se añaden dos elementos clave dentro de un stack view [1:20]:
- Un UISwitch que permite al usuario decidir si quiere que su correo se recuerde.
- Un UILabel con el texto "Recordar correo" para explicar la función del switch.
El switch se conecta al código mediante un IBOutlet llamado emailSwitch [2:05]. Por defecto, se deja en estado off para respetar la decisión del usuario.
¿Cómo acceder a UserDefaults desde el código?
Para trabajar con UserDefaults se crea una constante que referencia la instancia estándar [2:30]:
swift let storage = UserDefaults.standard
También se define una llave (key) con la cual se identificará el valor guardado:
swift let emailKey = "email_key"
Una buena práctica es mantener un formato consistente en todas las llaves. Si una se llama email_key, las demás deben seguir la misma estructura [2:55].
¿Cómo buscar un valor guardado al iniciar la aplicación?
Dentro del método viewDidLoad, se verifica si ya existe un correo almacenado usando string(forKey:) [3:15]:
swift if let storedEmail = storage.string(forKey: emailKey) { emailTextField.text = storedEmail emailSwitch.isOn = true } else { emailSwitch.isOn = false }
Si el correo existe, se asigna al campo de texto y se activa el switch automáticamente. Si no existe, el switch permanece desactivado. Esta lógica es puramente una mejora de experiencia de usuario.
¿Cómo guardar y borrar valores en UserDefaults?
El correo solo debe guardarse cuando ocurren dos condiciones: el switch está activado y el login es exitoso [4:30]. Dentro del bloque de autenticación correcta se utiliza el método setValue(_:forKey:):
swift if emailSwitch.isOn { storage.setValue(emailTextField.text, forKey: emailKey) } else { storage.removeObject(forKey: emailKey) }
- Guardar:
setValuealmacena el correo asociado a la llave definida [5:00]. - Borrar:
removeObject(forKey:)elimina el valor almacenado cuando el usuario desactiva el switch y hace login [6:25].
Al cerrar y reabrir la aplicación, el campo de correo aparece prellenado si el usuario eligió recordarlo, o vacío si decidió lo contrario [6:50].
¿Es seguro guardar contraseñas en UserDefaults?
La respuesta es no. Nunca se deben almacenar contraseñas, tokens de autenticación ni información sensible en UserDefaults [7:30]. En dispositivos con jailbreak o vulnerabilidades, estos datos pueden quedar expuestos.
Para almacenar información sensible de forma segura, Apple ofrece los Keychain Services [7:45], que son espacios protegidos y cifrados diseñados específicamente para contraseñas y credenciales.
Tres operaciones esenciales quedaron cubiertas: obtener valores con una llave, guardarlos con setValue y borrarlos con removeObject. Practica almacenando distintos tipos de datos como números, booleanos o cadenas de texto hasta que te sientas cómodo con el flujo completo. ¿Qué otro dato guardarías con UserDefaults en tu próxima aplicación?