Contenido del curso

Operaciones CRUD en un proyecto con MVVM

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.