- 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
Creación de View Models con Combine en Swift para Aplicaciones Reactivas
Clase 10 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
Los ViewModel actúan como intermediarios entre la vista y el modelo, permitiendo la comunicación y sincronización de datos. En este contexto, Swift y su framework Combine son herramientas esenciales que facilitan el manejo reactivo de datos, permitiendo que los cambios en el modelo se reflejen automáticamente en la interfaz del usuario.
¿Cómo crear un ViewModel en Swift?
Para empezar a entender cómo se crea un ViewModel en Swift es fundamental establecer un entorno organizado:
- Paquetes base: Asegúrate de que tu proyecto tiene paquetes organizados como
Commons,Models,Viewsy crea un nuevo paquete llamadoViewModels. - Creación del archivo: Dentro del paquete
ViewModels, crea un archivo llamadoTodoViewModel.swift. - Importaciones necesarias:
Foundation: Herramientas básicas para manejar datos en Swift.CoreData: Utilizado para la persistencia de datos.Combine: Framework para manejo de datos reactivos.
import Foundation
import CoreData
import Combine
¿Cómo definir un ViewModel en Swift?
- Creación de la clase: Define una clase pública final llamada
TodoViewModel, marcándola como observable para que las vistas puedan suscribirse a sus cambios automáticamente:
public final class TodoViewModel: ObservableObject {
// Variables y propiedades aquí
}
- Manejo de tareas: Para almacenar las tareas, crea un conjunto:
@Published var todos: [TodoEntity] = []
- Prevención de fugas de memoria: Utiliza una colección para cancelar suscripciones cuando sea necesario:
private var cancellables: Set = []
¿Cómo cargar y gestionar datos con Combine y CoreData?
- Contenedor de datos persistentes: Crea una variable que acceda al
NSPersistentContainer.
private var storeContainer: NSPersistentContainer = {
return TodoPersistentManager.shared.container
}()
- Función para obtener datos: Usa una función para cargar tareas automáticamente al inicializar la clase:
private func fetchTodos() {
let request: NSFetchRequest = TodoEntity.fetchRequest()
request.sortDescriptors = [NSSortDescriptor(key: "date", ascending: true)]
request.returnsObjectsAsFaults = false
do {
todos = try storeContainer.viewContext.fetch(request)
} catch {
print("Error recuperando las tareas: \(error)")
}
}
¿Cómo implementar funciones adicionales?
Dentro del ViewModel, podemos definir varias funciones útiles como:
- Guardar datos: Asegura que los cambios se reflejen al guardar los datos.
private func saveData() {
do {
try storeContainer.viewContext.save()
fetchTodos()
} catch {
print("Error guardando datos: \(error)")
}
}
- Validar el input: Asegúrate de que el input del usuario tenga al menos dos caracteres:
func validateInput(text: String) -> Bool {
return !text.trimmingCharacters(in: .whitespaces).isEmpty
}
- Metodologías CRUD: Crear métodos para añadir, actualizar, eliminar, archivar y desarchivar elementos.
public func addTodo() { /* implementación aquí */ }
public func updateTodo() { /* implementación aquí */ }
// Continúa con otras funciones CRUD
Estos pasos y definiciones te permiten estructurar un ViewModel robusto que gestiona eficientemente la comunicación entre las vistas y el modelo. Al utilizar Combine y CoreData con Swift, simplificas el manejo de datos de manera reactiva y segura, evitando cargas manuales tediosas y mejorando la experiencia del usuario al hacer la interfaz más responsiva y actualizada frente a los cambios en los datos. ¡Sigue aprendiendo y mejorando tus habilidades en Swift!