Introducción al Patrón MVVM

1

Implementación de MVVM en Swift: Organiza y Optimiza tus Apps

2

Patrones de Arquitectura y Diseño en Desarrollo de Software iOS

3

Arquitectura MVC y MVP en Desarrollo iOS

4

Principios SOLID en Desarrollo de Software

5

Arquitectura MVVM en iOS: Principios Solid y Swift UI

Quiz: Introducción al Patrón MVVM

Estructura de un Proyecto con MVVM

6

Proyecto MVVM en Swift: Buenas Prácticas y Configuración Inicial

7

Modelo de Datos en MVVM: Creación de la Estructura Ítem en XCode

8

Creación de Modelo de Datos con Core Data en Xcode

9

Creación de Vistas en Xcode para Aplicaciones MVVM

10

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

11

Crear función "add todo" en arquitectura MVVM con Core Data

12

Funcionalidades básicas para gestionar tareas en SwiftUI

13

Listar y Detallar Notas en Aplicaciones de Tareas

14

Implementación de Funcionalidad de Edición en Aplicación de Tareas

15

Archivar Todos en Aplicación de Tareas

16

Desarchivar y Restaurar Tareas en Aplicaciones de Notas

17

Eliminar tareas en una aplicación de gestión de pendientes

18

Implementación de Estado de Tarea en Aplicación de Tareas

19

Creación de Vistas Amigables en SwiftUI para Aplicaciones de Tareas

Quiz: Operaciones CRUD en un proyecto con MVVM

Clean Architecture

20

Implementación de Clean Architecture paso a paso

21

Estructura y Ventajas de la Clean Architecture

22

Estructura de Proyectos con Clean Architecture y The MovieDB API

23

Mapeo de JSON a Objetos Swift para TV Shows Populares

24

Conexión a API y Manejo de Datos en Xcode usando Clean Architecture

25

Casos de Uso en la Capa de Dominio para Aplicaciones de TV

26

Creación de la Capa de Presentación en SwiftUI con MVVM y Clean Architecture

27

Navegación en SwiftUI: Implementación de Detail View y ViewModel

Quiz: Clean Architecture

MVVM y Clean Architecture

28

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

Creación de la Capa de Presentación en SwiftUI con MVVM y Clean Architecture

26/28
Recursos

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!

Aportes 0

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?