Contenido del curso
Estructura de un Proyecto con MVVM
Operaciones CRUD en un proyecto con MVVM
- 11

Función addTodo con Core Data en SwiftUI
19:47 min - 12

Funcionalidades básicas para gestionar tareas en SwiftUI
14:30 min - 13

Listado y detalle de notas en SwiftUI
22:35 min - 14

Editar todos con SwiftUI y Core Data
13:41 min - 15

Archivar tareas en SwiftUI con Core Data
15:28 min - 16

Cómo desarchivar tareas con unarchiveTodo
03:25 min - 17

Eliminar un to do definitivamente con Core Data
04:15 min - 18

Marcar tareas completadas en SwiftUI
20:50 min - 19

Creación de Vistas Amigables en SwiftUI para Aplicaciones de Tareas
19:52 min
Clean Architecture
- 20

Qué es Clean Architecture y por qué supera a MVVM
05:52 min - 21

Estructura y Ventajas de la Clean Architecture
03:47 min - 22

Estructura de proyecto iOS con Clean Architecture
06:01 min - 23

Mapeo de JSON a structs Swift con Codable
09:10 min - 24

Capa de datos con Clean Architecture en Swift
30:54 min - 25

Casos de uso en la capa de dominio Swift
09:35 min - 26

Capa de presentación con MVVM en SwiftUI
15:37 min - 27

Navegación y detalle con Clean Architecture en SwiftUI
21:54 min
MVVM y Clean Architecture
Cómo crear el modelo Item con MVVM en Swift
Resumen
Construir una app de notas en Swift con arquitectura MVVM empieza por definir bien el modelo de datos. Aquí aprendes a crear la estructura Item que servirá como base para tu lista de tareas, con identificadores únicos, título, descripción y estados como completado o archivado.
¿Cómo se organiza un proyecto MVVM en Xcode?
El patrón Model-View-ViewModel necesita tres carpetas claras dentro de tu proyecto. Cada una cumple un rol específico y mantener esta separación desde el inicio te ahorra dolores de cabeza después.
- Models: contiene las estructuras de datos de tu app.
- Views: agrupa las pantallas y componentes visuales.
- ViewModels: conecta los datos con las vistas.
Para crearlas, haz clic derecho sobre la carpeta principal del proyecto en Xcode, selecciona New Folder y nombra cada una. En esta entrega empezamos por Models, porque define la forma de los datos antes de pensar en cómo se muestran o manipulan [00:34].
¿Qué es el modelo Item y cómo se define en Swift?
El modelo Item representa una nota individual en tu lista de tareas. Para crearlo, agrega un archivo vacío dentro de Models llamado Item y define una estructura pública:
swift import Foundation
public struct Item: Identifiable, Equatable { public var id: String = UUID().uuidString public var title: String public var note: String? public var date: Date public var isComplete: Bool public var isArchived: Bool }
Cada propiedad cumple un papel concreto dentro de la lógica de tu app de notas.
¿Para qué sirve UUID y el protocolo Identifiable?
El identificador id es de tipo String y se inicializa con el objeto UUID, que genera automáticamente un valor único e irrepetible para cada instancia. Para que esto funcione necesitas importar Foundation, el framework que da acceso a herramientas básicas como fechas, cadenas y precisamente UUID [02:40].
Además, la estructura adopta el protocolo Identifiable, que garantiza que cada objeto creado tenga un identificador único. Esto es clave cuando más adelante necesites listar elementos en SwiftUI sin que se confundan entre sí.
¿Qué hace el protocolo Identifiable en Swift? Marca una estructura para que cada instancia tenga un id único, lo que permite a SwiftUI renderizar listas sin duplicados ni errores de referencia.
¿Qué propiedades necesita una nota en una app de tareas?
Más allá del identificador, el modelo incluye atributos que describen la nota:
- title de tipo String: define el título de la nota y es obligatorio.
- note de tipo String?: guarda la descripción y es opcional, por eso lleva el signo de interrogación que lo vuelve nullable.
- date de tipo Date: registra la fecha de creación.
- isComplete de tipo Bool: indica si la tarea fue completada.
- isArchived de tipo Bool: señala si la tarea está archivada.
Los dos últimos parámetros booleanos te abren la puerta a funcionalidades como filtrar tareas pendientes o mantener un historial de notas archivadas sin borrarlas.
¿Por qué usar Equatable en el modelo Item?
El protocolo Equatable permite comparar dos instancias de Item para verificar si son iguales. Esto se vuelve útil cuando listas elementos, detectas cambios o actualizas vistas en función de diferencias entre objetos.
¿Cuándo conviene hacer una propiedad opcional en Swift? Cuando el dato puede no existir, como una descripción vacía. Se marca con ? después del tipo, por ejemplo String?, y permite asignar nil sin romper la lógica.
Con estos seis atributos y los protocolos Identifiable y Equatable, tu modelo queda listo para representar cualquier nota de la app. El siguiente paso es decidir cómo almacenar esta estructura en una base de datos local para que las notas persistan entre sesiones.
¿Qué propiedades agregarías tú a este modelo Item para tu propia app de notas? Cuéntalo en los comentarios.