- 1

Implementación de MVVM en Swift: Organiza y Optimiza tus Apps
01:53 - 2

Patrones de Arquitectura y Diseño en Desarrollo de Software iOS
10:34 - 3

Arquitectura MVC y MVP en Desarrollo iOS
06:29 - 4

Principios SOLID en Desarrollo de Software
03:56 - 5

Arquitectura MVVM en iOS: Principios Solid y Swift UI
05:59 quiz de Introducción al Patrón MVVM
Arquitectura MVVM en iOS: Principios Solid y Swift UI
Clase 5 de 28 • Curso de Patrones MVVM en iOS
Contenido del curso
- 6

Proyecto MVVM en Swift: Buenas Prácticas y Configuración Inicial
07:27 - 7

Modelo de Datos en MVVM: Creación de la Estructura Ítem en XCode
05:41 - 8

Creación de Modelo de Datos con Core Data en Xcode
07:47 - 9

Creación de Vistas en Xcode para Aplicaciones MVVM
06:13 - 10

Creación de View Models con Combine en Swift para Aplicaciones Reactivas
23:12 quiz de Estructura de un Proyecto con MVVM
- 11

Crear función "add todo" en arquitectura MVVM con Core Data
19:48 - 12

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

Listar y Detallar Notas en Aplicaciones de Tareas
22:35 - 14

Implementación de Funcionalidad de Edición en Aplicación de Tareas
13:42 - 15

Archivar Todos en Aplicación de Tareas
15:29 - 16

Desarchivar y Restaurar Tareas en Aplicaciones de Notas
03:26 - 17

Eliminar tareas en una aplicación de gestión de pendientes
04:15 - 18

Implementación de Estado de Tarea en Aplicación de Tareas
20:51 - 19

Creación de Vistas Amigables en SwiftUI para Aplicaciones de Tareas
19:52 quiz de Operaciones CRUD en un proyecto con MVVM
- 20

Implementación de Clean Architecture paso a paso
05:52 - 21

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

Estructura de Proyectos con Clean Architecture y The MovieDB API
06:01 - 23

Mapeo de JSON a Objetos Swift para TV Shows Populares
09:11 - 24

Conexión a API y Manejo de Datos en Xcode usando Clean Architecture
30:54 - 25

Casos de Uso en la Capa de Dominio para Aplicaciones de TV
09:35 - 26

Creación de la Capa de Presentación en SwiftUI con MVVM y Clean Architecture
15:38 - 27

Navegación en SwiftUI: Implementación de Detail View y ViewModel
21:54 quiz de Clean Architecture
El patrón MVVM, acrónimo de Model-View-ViewModel, es una arquitectura muy popular en el desarrollo de aplicaciones iOS, especialmente cuando se trabaja con SwiftUI. Imagínalo como una casa en la que cada cuarto tiene una función específica, manteniendo todo separado y organizado. En esta analogía, la cocina no interfiere con el dormitorio, justo como en MVVM cada componente tiene su propia responsabilidad y se asegura de trabajar en armonía con otros.
¿Cuáles son los componentes de MVVM?
- Modelo o Model: Este es el almacén de datos, encargado de conservar la lógica del negocio y gestionar la información importante que la aplicación necesita, como si fuera un depósito donde guardamos cosas relevantes para nuestra vida diaria.
- Vista o View: Como la decoración de una casa, representa todo lo que el usuario ve e interactúa. En MVVM, la vista es declarativa, siempre mostrando lo que el ViewModel le indica, similar a cómo un espacio decorado refleja las intenciones del dueño.
- ViewModel: Actúa como un mediador al transformar los datos del modelo en algo que la vista pueda mostrar de manera clara y atractiva. Responde también a las interacciones del usuario, asegurando que la información visible esté actualizada y relevante.
Un ejemplo típico en iOS podría ser una aplicación de tareas pendientes donde el modelo contiene las tareas, el ViewModel las organiza por prioridad y la vista simplemente se encarga de mostrarlas sin preocuparse por la obtención o la lógica detrás.
¿Cómo se relaciona MVVM con los principios SOLID?
MVVM sigue los principios de SOLID, fortaleciendo su estructura y funcionalidad.
- Responsabilidad Única: Cada componente tiene una tarea específica. El modelo no maneja cómo se ven los datos, ni la vista se preocupa por cómo se obtienen.
- Abierto/Cerrado: Permite extender funcionalidades del ViewModel sin alterar su estructura ya establecida.
- Sustitución de Liskov: Facilita la interconexión de modelos o vistas sin romper la funcionalidad siempre que cumplan con su contrato.
- Segregación de Interfaces: Utiliza protocolos específicos evitando grandes interfaces.
- Inversión de Dependencias: La vista depende del ViewModel a través de abstracciones, lo que facilita futuras pruebas y cambios.
¿Qué beneficios aporta SOLID en MVVM?
- Mantenibilidad: Claridad en el código al separar responsabilidades, lo que facilita identificar y corregir errores.
- Reutilización: El ViewModel puede ser reutilizado en distintas vistas o modelos.
- Testabilidad: Independencia del ViewModel de la vista facilita escribir pruebas más efectivas.
- Escalabilidad: Permite crecimiento sin que el código se convierta en desastre, evitando el temido "código espagueti".
Diferencias clave entre MVC, MVP y MVVM
¿Cómo afecta la conexión vista-lógica?
- MVC: La vista puede contener lógica de negocio.
- MVP: La vista depende directamente del presentador.
- MVVM: La vista depende del ViewModel que emplea bindings reactivos para la comunicación.
¿Cuál es el rol intermediario en estas arquitecturas?
- MVC: El controlador asume el papel intermediario.
- MVP: El presentador actúa como intermediario.
- MVVM: El ViewModel se hace cargo de esta tarea mediante enlaces reactivos.
¿Cuál es el uso típico en desarrollos actuales?
- MVC: Adecuado para aplicaciones sencillas o legados de iOS.
- MVP: Desarrollos con vistas pasivas y lógica compleja.
- MVVM: En aplicaciones modernas con SwiftUI o interfaces declarativas.
La elección de MVVM como arquitectura es ideal para desarrollar aplicaciones que sean flexibles, claras y escalables. Al integrar los principios SOLID, se asegura que cada parte de la aplicación no solo cumpla con su función, como una casa bien organizada, sino que también esté preparada para crecer sin comprometer la estabilidad o claridad del código. En el contexto de SwiftUI, este patrón se afianza como una herramienta esencial para la creación de interfaces bien estructuradas y mantenibles.