- 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
Navegación en SwiftUI: Implementación de Detail View y ViewModel
Clase 27 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
Swift UI ofrece potentes herramientas para navegar entre vistas de manera dinámica y eficaz. Para mostrar los detalles de un programa de televisión al hacer clic, se utiliza NavigationLink. Esto requiere la creación de una nueva vista de destino que mostrará el detalle del programa en cuestión.
Configuración inicial de la vista
- Crear una nueva vista:
-
- Utilizar un template de Swift UI y nombrarla, por ejemplo,
DetailView. - Esta vista será el destino de
NavigationLink.
- Utilizar un template de Swift UI y nombrarla, por ejemplo,
- Modificar la vista actual:
-
- Cambiar el destino de
NavigationLinka la nuevaDetailView. - Pasar los parámetros necesarios que permitan desplegar información precisa.
- Cambiar el destino de
Implementación de la vista de detalle
- Crear un ViewModel para los detalles:
-
- Siguiendo el modelo de Swift, se desarrolla un ViewModel llamado
TVShowDetailsViewModel. - Es crucial que este modelo sea de tipo observable para que las vistas reaccionen a los cambios de datos.
- Siguiendo el modelo de Swift, se desarrolla un ViewModel llamado
- Definir propiedades en el ViewModel:
-
- Crear una variable publicada para manejar los detalles.
- Inicializar un identificador para cada programa de televisión.
- Implementar dependencias necesarias para obtener detalles con el patrón de caso de uso.
class TVShowDetailsViewModel: ObservableObject {
@Published var details: TVShowDetails?
private var showID: Int = 0
private let getTVShowDetailsUseCase: GetTVShowDetailsUseCaseProtocol
init(showID: Int, getTVShowDetailsUseCase: GetTVShowDetailsUseCaseProtocol) {
self.showID = showID
self.getTVShowDetailsUseCase = getTVShowDetailsUseCase
}
func loadDetails() async {
do {
let details = try await getTVShowDetailsUseCase.execute(showID: showID)
DispatchQueue.main.async {
self.details = details
}
} catch {
print(error)
}
}
}
Diseño y visualización en la vista de detalle
- Mostrar elementos dinámicamente:
- Utilizar
VStackpara organizar los elementos en una disposición vertical. - Mostrar el nombre del programa, un resumen y sus géneros, manejando situaciones en las que los detalles o géneros pueden ser nulos.
- Asegurarse de la reactividad:
- Usar
@StateObjectpara que la vista escuche los cambios en elViewModel. - Implementar
onAppearpara cargar datos asíncronos al mostrar la vista.
struct DetailView: View {
@StateObject var viewModel: TVShowDetailsViewModel
var body: some View {
VStack {
if let details = viewModel.details {
Text(details.name)
.font(.headline)
.padding(.bottom, 20)
Text(details.overview)
if !details.genres.isEmpty {
Text("Géneros")
.font(.subheadline)
ForEach(details.genres) { genre in
Text(genre.name)
}
}
} else {
Text("Cargando...")
ProgressView()
.progressViewStyle(CircularProgressViewStyle())
}
}
.onAppear {
Task {
await viewModel.loadDetails()
}
}
}
}
¿Cuál es la estructura bajo la arquitectura limpia?
La arquitectura limpia es un enfoque de diseño que busca separar las responsabilidades de la aplicación en tres capas principales: datos, dominio y presentación. Este modelo asegura que cada capa tenga responsabilidades bien definidas y comunicación controlada entre ellas.
Capas principales de la Arquitectura Limpia
-
Capa de Datos:
-
Incluye la definición de modelos y la interacción con los servicios de red.
-
Implementa repositorios que proporcionan datos de manera agnóstica frente a su origen.
-
-
Capa de Dominio:
-
Define los casos de uso que realizan acciones específicas, coordinando la obtención de datos de la capa de datos.
-
En este contexto, casos de uso como
GetPopularShowsUseCaseorquestan cómo se solicitan los datos.
-
-
Capa de Presentación:
-
Define la interacción del usuario y presenta los datos usando vistas.
-
Implementa los
ViewModels, que preparan datos para ser mostrados y manejan la lógica de presentación.
-
Beneficios de usar Clean Architecture
- Separación clara de responsabilidades:
-
- Facilita cambios futuros y el mantenimiento del código.
- Permite escalabilidad y pruebas más eficaces.
- Flexibilidad para cambios tecnológicos:
-
- Cambios en la capa de datos, como un nuevo API, no necesariamente afectan a las otras capas.
- Mejor legibilidad y organización del proyecto:
-
- Facilita que más desarrolladores trabajen simultáneamente sobre diferentes enfoques del proyecto.
Inventar un sistema bien estructurado con Clean Architecture no solo mejora la legibilidad, sino que produce aplicaciones robustas, escalables y fácilmente mantenibles. Mantente motivado y sigue aprendiendo, la creación efectiva de aplicaciones es una habilidad invaluable.