Introducción al Patrón MVVM
Implementación de MVVM en Swift: Organiza y Optimiza tus Apps
Patrones de Arquitectura y Diseño en Desarrollo de Software iOS
Arquitectura MVC y MVP en Desarrollo iOS
Principios SOLID en Desarrollo de Software
Arquitectura MVVM en iOS: Principios Solid y Swift UI
Quiz: Introducción al Patrón MVVM
Estructura de un Proyecto con MVVM
Proyecto MVVM en Swift: Buenas Prácticas y Configuración Inicial
Modelo de Datos en MVVM: Creación de la Estructura Ítem en XCode
Creación de Modelo de Datos con Core Data en Xcode
Creación de Vistas en Xcode para Aplicaciones MVVM
Creación de View Models con Combine en Swift para Aplicaciones Reactivas
Quiz: Estructura de un Proyecto con MVVM
Operaciones CRUD en un proyecto con MVVM
Crear función "add todo" en arquitectura MVVM con Core Data
Funcionalidades básicas para gestionar tareas en SwiftUI
Listar y Detallar Notas en Aplicaciones de Tareas
Implementación de Funcionalidad de Edición en Aplicación de Tareas
Archivar Todos en Aplicación de Tareas
Desarchivar y Restaurar Tareas en Aplicaciones de Notas
Eliminar tareas en una aplicación de gestión de pendientes
Implementación de Estado de Tarea en Aplicación de Tareas
Creación de Vistas Amigables en SwiftUI para Aplicaciones de Tareas
Quiz: Operaciones CRUD en un proyecto con MVVM
Clean Architecture
Implementación de Clean Architecture paso a paso
Estructura y Ventajas de la Clean Architecture
Estructura de Proyectos con Clean Architecture y The MovieDB API
Mapeo de JSON a Objetos Swift para TV Shows Populares
Conexión a API y Manejo de Datos en Xcode usando Clean Architecture
Casos de Uso en la Capa de Dominio para Aplicaciones de TV
Creación de la Capa de Presentación en SwiftUI con MVVM y Clean Architecture
Navegación en SwiftUI: Implementación de Detail View y ViewModel
Quiz: Clean Architecture
MVVM y Clean Architecture
Arquitectura de Software: Clean Architecture y MVVM en Proyectos Reales
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
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.
Para empezar a entender cómo se crea un ViewModel en Swift es fundamental establecer un entorno organizado:
Commons
, Models
, Views
y crea un nuevo paquete llamado ViewModels
.ViewModels
, crea un archivo llamado TodoViewModel.swift
.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
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í
}
@Published var todos: [TodoEntity] = []
private var cancellables: Set = []
NSPersistentContainer
.private var storeContainer: NSPersistentContainer = {
return TodoPersistentManager.shared.container
}()
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)")
}
}
Dentro del ViewModel, podemos definir varias funciones útiles como:
private func saveData() {
do {
try storeContainer.viewContext.save()
fetchTodos()
} catch {
print("Error guardando datos: \(error)")
}
}
func validateInput(text: String) -> Bool {
return !text.trimmingCharacters(in: .whitespaces).isEmpty
}
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!
Aportes 1
Preguntas 1
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?