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
MVVM y SOLID en SwiftUI
Resumen
Si desarrollas en iOS con SwiftUI, entender el patrón MVVM (Model-View-ViewModel) es clave para construir aplicaciones organizadas, escalables y fáciles de mantener. Aquí verás qué hace cada componente, cómo se conecta con los principios SOLID y por qué destaca frente a MVC y MVP.
¿Qué es MVVM y para qué sirve en SwiftUI?
Piensa en una casa donde cada espacio tiene un propósito claro: la cocina no invade el dormitorio y la sala no se confunde con el baño. Esa misma lógica de separación es la que aplica MVVM, un patrón de arquitectura muy popular en iOS, sobre todo cuando trabajas con SwiftUI, ya que este framework fue diseñado pensando justo en este patrón.
MVVM divide tu aplicación en tres piezas que trabajan de forma armoniosa, cada una con una responsabilidad específica.
¿Qué hace cada componente del patrón MVVM?
- Model: es el almacén de datos de tu casa. Guarda recetas, herramientas, todo lo importante. Se encarga de la lógica de negocio y de los datos.
- View: es lo que ves y usas, como la decoración de la sala, ventanas y muebles. En MVVM la vista es declarativa y muestra siempre lo que el view model le indica.
- ViewModel: es el administrador que conecta el almacén con la decoración. Transforma los datos del modelo en algo que la vista pueda mostrar y responde a las interacciones del usuario.
¿Qué es el ViewModel en MVVM? Es la capa intermedia que toma los datos del Model, los prepara para mostrarlos y maneja las interacciones del usuario. Funciona como puente reactivo entre datos y vista.
Un ejemplo concreto: imagina una app de tareas pendientes. El modelo sabe qué tareas existen, el view model las ordena por prioridad y la vista solo se preocupa por reflejar esa información en pantalla. [01:25]
¿Cómo se relaciona MVVM con los principios SOLID?
MVVM encaja perfectamente con SOLID porque sigue sus reglas al pie de la letra, y aquí viene lo interesante: cada principio se vuelve natural cuando separas tu app en estas tres capas.
- Responsabilidad única: cada componente tiene un trabajo. El modelo no se preocupa por cómo se ven los datos y la vista no se preocupa por cómo se obtienen.
- Abierto-cerrado: puedes extender el view model para agregar funcionalidades sin modificar su estructura básica.
- Sustitución de Liskov: puedes intercambiar modelos o vistas sin romper la funcionalidad, siempre que respeten sus contratos.
- Segregación de interfaz: la comunicación entre view model y vista se hace con protocolos claros y específicos, evitando interfaces gigantes.
- Inversión de dependencias: la vista depende del view model a través de abstracciones, lo que facilita pruebas y cambios.
¿Qué beneficios reales aporta esta combinación?
Cuando MVVM y SOLID trabajan juntos, tu proyecto gana en cuatro frentes muy concretos:
- Mantenibilidad: si algo falla en la lógica de datos, sabes que está en el modelo, no en la vista.
- Reutilización: puedes usar el mismo view model en distintas pantallas, como reaprovechar la lógica de ordenamiento.
- Testabilidad: el view model se prueba sin necesidad de la vista, porque su lógica es independiente.
- Escalabilidad: tu app crece sin convertirse en código espagueti.
¿Cuáles son las diferencias entre MVC, MVP y MVVM?
Los tres patrones buscan separar responsabilidades, pero lo hacen con enfoques distintos. Aquí están las diferencias que importan al elegir uno.
- Conexión vista-lógica: en MVC la vista puede tener lógica de negocio; en MVP la vista depende del presentador; en MVVM la vista depende del view model usando binding.
- Rol intermediario: en MVC es el controlador, en MVP es el presentador, y en MVVM es el view model con enlaces reactivos.
- Uso típico: MVC para apps simples o legacy de iOS, MVP para apps con vistas pasivas y lógica compleja, MVVM para apps modernas con SwiftUI o declarativas.
- Testabilidad: difícil en MVC porque la lógica está dispersa, alta en MVP porque el presentador se prueba solo, y alta en MVVM porque el view model se prueba sin la vista.
¿Por qué MVVM es ideal para SwiftUI? Porque SwiftUI está diseñado como framework declarativo y reactivo, y MVVM aprovecha esos enlaces para sincronizar vista y datos sin acoplarlos.
¿Cuándo elegir MVVM frente a otros patrones?
Elige MVVM cuando trabajes con SwiftUI, necesites interfaces declarativas, busques alta testabilidad o estés construyendo una app que va a crecer. Si tu proyecto es muy pequeño o estás manteniendo código legacy de UIKit, quizá MVC siga siendo suficiente.
MVVM combinado con SOLID es como tener una casa donde cada habitación cumple su función, pero todo está conectado de forma armoniosa. Te permite construir apps flexibles, claras y listas para escalar sin perder estabilidad. Por eso se elige como arquitectura base para este primer proyecto.
¿Por qué crees tú que la mayoría de los desarrolladores eligen MVVM como arquitectura en sus proyectos? Te leo en los comentarios.