- 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
Archivar Todos en Aplicación de Tareas
Clase 15 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 desarrollo de aplicaciones se trata de proporcionar funcionalidad y mejores experiencias al usuario. Esta clase te guiará sobre cómo implementar una característica esencial: el archivado de tareas en una aplicación de lista de pendientes.
¿Qué cambios debes hacer en el ViewModel?
El 'ViewModel' es el encargado de manejar la lógica de negocio de nuestra aplicación. Para archivar una tarea o "to-do", es esencial implementar la función archiveTodo. Aquí los pasos para hacerlo:
- Creación de la Función: Se inicia agregando la función
archiveTodoen el ViewModel.
fun archiveTodo() {
// Verificamos si el ID del todo existe
val index = getTodoIndex(todo)
if (index < 0) return // Si el elemento no existe, salir de la función
// Modificamos el estado a 'archivado'
todos[index].isArchived = true
saveData() // Guardamos los cambios
}
-
Verificación de Existencia: La función busca el índice del "to-do" a través de
getTodoIndex. Si no encuentra, se detiene la ejecución. -
Modificación del Estado: Se cambia el atributo
isArchivedel "to-do" atrue. Esto indica que el ítem está archivado. -
Guardar Cambios: Se utiliza
saveData()para persistir esta modificación en el contexto de Core Data.
¿Dónde implementamos la función de archivar en la interfaz?
La interacción de la interfaz de usuario con nuestra lógica es crucial para integrar estas funcionalidades sin problemas.
-
Referencia de Botón: Dentro de
ToDoPreviewView, localizamos el botón de archivar. -
Llamado a la Función: Usamos el ViewModel para llamar a
archiveTodocuando se presiona el botón.
// En el archivo ToDoPreviewView.swift
Button(action: {
viewModel.archiveTodo()
// Limpiamos el todo seleccionado y cerramos la vista
selectedTodo = nil
}) {
Text("Archivar")
}
¿Cómo mostrar la lista de tareas archivadas?
Basta con archivar los "to-dos". Ahora, necesitamos un procedimiento para mostrar una lista de tareas archivadas que proporcione valor agregado al usuario.
- Creación de una Variable para Archivos: En la vista
ToDoArchiveListView, define una colección filtrada de tareas archivadas.
let archivedTodos: [TodoEntity] = viewModel.todos.filter { $0.isArchived }
- Mostrar en la Vista: Utiliza un ciclo
ForEachpara iterar y mostrar solo los elementos cuya propiedadisArchiveseatrue.
ScrollView {
if !archivedTodos.isEmpty {
ForEach(archivedTodos, id: \.id) { todo in
Text(todo.title)
// Se puede mejorar más el diseño, con detalles del ítem
}
} else {
Text("No hay tareas archivadas.")
}
}
- Interfaz para Vacíos: Proporciona una vista alternativa en caso de que no haya "to-dos" archivados.
¿Qué detalle de diseño se debe considerar para los elementos archivados?
El diseño y la presentación pueden mejorar significativamente la experiencia del usuario. Aquí, respondemos al cómo y qué del diseño de estas tareas archivadas.
- Diseño en
ItemView: Dentro de los elementos de la lista, agrega unHStackoVStackpara mostrar la información como el título y la fecha.
VStack(alignment: .leading) {
Text(todo.title)
.font(.headline)
Text(todo.date, formatter: DateFormatter.short)
.font(.subheadline)
}
.padding(.vertical, 4)
- Íconos de Interacción: Al final de cada elemento, añade iconos para interactuar, Eliminar el "to-do" de manera definitiva o restaurarlo a la lista principal.
La integración de estas características no solo lleva la aplicación al siguiente nivel en términos de funcionalidad sino que también garantiza una mejor experiencia de usuario. Con trabajo técnico, diseño cuidadoso y pruebas continuas mejoras, puedes proporcionar una solución viable y robusta. ¡Mantente aprendiendo y no dudes en añadir nuevos desafíos a tus proyectos!