- 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 la Capa de Presentación en SwiftUI con MVVM y Clean Architecture
Clase 26 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
La capa de presentación es crucial porque interactúa directamente con el usuario y coordina la comunicación con las capas de dominio y datos. Este enfoque proporciona una separación de responsabilidades, asegurando que ningún componente dependa directamente de las implementaciones concretas, sino de abstracciones, como los protocolos.
Nuestra presentación se centra en los view models, que utilizan protocolos para comunicar la capa de presentación con la capa de dominio, haciendo uso del caso de uso Get Popular TV Shows Use Case Protocol. Este enfoque no solo fomenta la separación de responsabilidades, sino que también facilita el testeo.
¿Cómo se estructura un ViewModel en Clean Architecture?
Crear un ViewModel implica construir una clase que maneje datos observables y, en este caso, publicar los datos de los programas de televisión para que las vistas de Swift UI puedan observar y actualizarse automáticamente ante cualquier cambio.
import SwiftUI
final class PopularShowsViewModel: ObservableObject {
@Published var shows: [TVShow] = []
private let getPopularTVShowsUseCase: GetPopularTVShowsUseCaseProtocol
init(getPopularTVShowUseCase: GetPopularTVShowsUseCaseProtocol) {
self.getPopularTVShowsUseCase = getPopularTVShowUseCase
}
func loadPopularShows() {
Task {
do {
let shows = try await getPopularTVShowsUseCase.execute()
await MainActor.run {
self.shows = shows
}
} catch {
print("Error: \(error)")
}
}
}
}
En este ejemplo, PopularShowsViewModel declara una propiedad @Published para los programas de televisión shows y utiliza un protocolo para el caso de uso GetPopularTVShowsUseCaseProtocol. La función loadPopularShows carga los programas populares mediante una llamada asincrónica al caso de uso.
¿Cómo se desarrolla una vista en Swift UI para mostrar los programas de televisión?
Crear una vista en Swift UI implica declarar una referencia al ViewModel que manejará la lógica de la vista y permitir el acceso a los datos necesarios para presentar al usuario.
struct PopularShowsView: View {
@StateObject private var viewModel = PopularShowsViewModel()
var body: some View {
List(viewModel.shows, id: \.id) { show in
Text(show.name)
}
.onAppear {
Task {
await viewModel.loadPopularShows()
}
}
}
}
La estructura PopularShowsView utiliza StateObject para manejar el viewModel, y muestra una lista de programas con show.name en una vista tipo List. Para asegurar la carga de datos al iniciar la vista, se ejecuta el método loadPopularShows() dentro de onAppear.
¿Qué ajustes necesitan hacerse para ejecutar la aplicación correctamente?
Para ejecutar correctamente la aplicación, se debe asegurar que el punto de entrada de la aplicación llama correctamente a la vista que hemos configurado. Esto generalmente se hace en el archivo ContentView.
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
PopularShowsView()
}
}
}
En este caso, PopularShowsView se llama desde la estructura principal de la aplicación, permitiendo que la vista en cuestión sea cargada al iniciarse la aplicación.
Este enfoque, unido a un diseño modular y separando las responsabilidades, logra que las aplicaciones sean más testeables y fáciles de mantener, tal y como se promueve en la arquitectura Clean. ¡Continúa explorando y aprendiendo para llevar tus habilidades de desarrollo a nuevos niveles!