Modelando nuestro JSON

Clase 16 de 36Curso de Desarrollo de Aplicaciones iOS con SwiftUI

Resumen

¿Cómo implementar la arquitectura MVVM comenzando por el modelo de datos?

La arquitectura MVVM (Modelo-Vista-Modelo de Vista) es fundamental para desarrollar aplicaciones bien organizadas y mantenibles. En esta ocasión, comenzamos por el corazón de todo: el modelo de datos. Al usar datos provenientes de un JSON a través de peticiones a un servidor, debemos asegurarnos de que estos se modelen correctamente en Swift. Aquí te explicamos cómo hacerlo paso a paso.

¿Cuál es el punto de partida para modelar datos en Swift?

El primer paso es abrir un archivo en Xcode, generalmente llamado model.swift, donde se definirán las estructuras que reflejarán la información en el JSON. Estos datos son recuperados desde una API, que proporciona el JSON con la estructura deseada.

  1. Acceso a la API:

    • Ve a la URL del API proporcionada.
    • Busca la documentación donde se encuentran las APIs disponibles.
    • En este caso, utilizamos el método GET para obtener la lista de juegos.
  2. Análisis del JSON:

    • Observa el JSON devuelto, que es un arreglo de objetos JSON donde cada objeto representa un videojuego con detalles como título, estudio, calificación, año de publicación, y más.
    • Identifica las estructuras de datos: Arreglos y objetos JSON anidados.

¿Cómo crear estructuras en Swift que sean 'Codable'?

Las estructuras que debes crear deben ser Codable. Esto permite que Swift entienda cómo codificar y decodificar los datos JSON.

Estructura para 'Games'

Primero se crea una estructura principal para manejar todos los juegos en su conjunto:

struct Games: Codable {
    var games: [Game]
}

Esta estructura encapsula un arreglo de Game, siendo Games la estructura que mantiene la colección completa.

Estructura para cada 'Game'

Ahora, modelamos un videojuego individual, asegurándonos de que las propiedades coincidan con las llaves en el JSON:

struct Game: Codable {
    var title: String
    var studio: String
    var contentRating: String
    var publicationYear: String
    var description: String
    var platforms: [String]
    var tags: [String]
    var videoURL: VideoURL
    var galleryImages: [String]
}

Observa detalles importantes:

  • Cada nombre de variable debe coincidir exactamente con las llaves del JSON.
  • Los arreglos se expresan mediante [String], indicando que pueden contener múltiples valores.

¿Qué hacer con los JSON anidados?

Algunos datos están contenidos dentro de otros objetos JSON, como es el caso de videoURL, que no es un simple string sino un objeto con sus propias propiedades.

Estructura para 'VideoURL'

Define una estructura para manejar este objeto anidado:

struct VideoURL: Codable {
    var mobile: String
    var tablet: String
}

Ambas propiedades mobile y tablet son strings, y deben ser claramente diferenciadas en el JSON.

¿Por qué es importante modelar correctamente el JSON?

Modelar adecuadamente el JSON es crucial no solo para extraer datos correctamente, sino también para mantener escalabilidad y facilitar futuros desarrollos. Un modelado robusto permite adaptaciones en la aplicación con mayor fluidez y menos esfuerzos, promoviendo un código limpio y útil a largo plazo.

En el próximo paso del desarrollo, aprenderemos cómo realizar peticiones al servidor utilizando este modelo de datos. Así que asegúrate de tener una estructura bien definida antes de seguir adelante con el protocolo MVVM. ¡Continuemos con este fascinante viaje de desarrollo!