Tutorial SwiftUI Español - Cómo Leer un Archivo JSON (JSON, MapKit)

Ale Patron
12 Mar 202113:13

Summary

TLDREn este video tutorial, la presentadora Ale nos guía a través del proceso de leer un archivo en formato JSON y visualizar su contenido en un mapa utilizando MapKit. Comienza explicando cómo copiar el archivo JSON al proyecto de Next.js y analizar su estructura, que consiste en una lista de ciudades con atributos como nombre, latitud y longitud. Luego, define estructuras para representar los datos y crea una función para leer y decodificar el archivo JSON. Finalmente, muestra cómo utilizar MapKit para mostrar 'pins' en el mapa para cada ciudad, personalizando las anotaciones con el nombre de la ciudad y una estrella. El objetivo es que el espectador aprenda a integrar datos geográficos en una aplicación iOS utilizando Swift y MapKit.

Takeaways

  • 😀 El video es una tutorial sobre cómo leer un archivo en formato JSON y mostrar su contenido en un mapa utilizando MapKit.
  • 📂 El archivo JSON proporcionado tiene una estructura de diccionario con una lista de ciudades, cada una con claves como 'hight', 'name', 'latitude' y 'longitude'.
  • 🔍 Se define una estructura 'Location' para representar cada ubicación, con propiedades como 'hight', 'name', 'latitude' y 'longitude'.
  • 🗺 Se crea una estructura 'JSON' que contiene una lista de ciudades, utilizando la clave 'locations' del diccionario JSON.
  • 📝 Se escribe una función 'readFile' para leer el archivo JSON, convertir el contenido en un objeto y decodificarlo.
  • 📡 Se utiliza 'Bundle.main' para obtener la ruta del archivo 'vacations.json' y se decodifica su contenido.
  • 📑 Se agrega una función para que, al aparecer la vista del contenido, se llame a 'readFile' y se muestren las ciudades en la consola.
  • 📱 Se importa MapKit y se crea un mapa en la vista del contenido, utilizando coordenadas y anotaciones.
  • 📍 Se define una región de mapa con un centro y un 'span' para el zoom inicial, y se agregan anotaciones para cada ciudad.
  • 🌟 Se personaliza la apariencia de las anotaciones en el mapa con un nombre de ciudad y una estrella utilizando 'MapAnnotationView'.
  • 🎥 El objetivo final es visualizar en el mapa las ciudades definidas en el archivo JSON, con anotaciones que muestran el nombre y una estrella.

Q & A

  • ¿Qué formato de archivo se utiliza en el tutorial para mostrar pins en un mapa?

    -El formato de archivo utilizado en el tutorial es JSON (jason).

  • ¿Cómo se representa cada ciudad en el archivo JSON?

    -Cada ciudad se representa como un diccionario dentro de una lista, con claves para el 'haítí', 'nombre', 'latitud' y 'longitud'.

  • ¿Qué estructuras se definen para representar los datos del archivo JSON en el proyecto?

    -Se definen dos estructuras: una para representar cada ubicación ('Location') y otra para representar todo el contenido del archivo JSON ('JSON') que contiene una lista de 'Location'.

  • ¿Qué función se utiliza para leer el archivo JSON y crear un objeto?

    -La función utilizada para leer el archivo JSON y crear un objeto es 'readFile'.

  • ¿Cómo se obtiene la ruta al archivo JSON en el proyecto?

    -Se utiliza la función 'Bundle.main.path(forResource:)' para obtener la ruta al archivo JSON.

  • ¿Qué método se utiliza para decodificar el contenido del archivo JSON?

    -Se utiliza el método 'JSONDecoder().decode(_:from:)' para decodificar el contenido del archivo JSON.

  • ¿Qué se hace si no se pueden decodificar los datos del archivo JSON?

    -Si no se pueden decodificar los datos, se imprime un mensaje de error en la consola.

  • ¿Cómo se muestran las ciudades en la consola después de leer el archivo JSON?

    -Se utiliza una declaración 'print' para imprimir las ciudades en la consola.

  • ¿Qué biblioteca se utiliza para mostrar los pins en el mapa?

    -Se utiliza la biblioteca MapKit para mostrar los pins en el mapa.

  • ¿Cómo se inicializa el mapa en la aplicación?

    -Se utiliza una coordenada central y un 'MapSpan' para inicializar el mapa con una región específica.

  • ¿Cómo se representan las anotaciones en el mapa para cada ciudad?

    -Se crean 'MapAnnotations' utilizando las coordenadas de las ciudades y se personalizan con un título y una imagen de estrella.

Outlines

00:00

📚 Aprendiendo a leer archivos JSON y mostrar pins en un mapa

En este primer párrafo, se presenta un tutorial sobre cómo leer un archivo en formato JSON y utilizar su contenido para mostrar pins en un mapa utilizando MapKit. Se menciona que el archivo JSON ya está listo y se procede a copiarlo al proyecto de Next.js para su uso en la aplicación. Se describe la estructura del archivo JSON, que es un diccionario con una lista de diccionarios que representan ciudades, cada uno con claves para el país, nombre, latitud y longitud. El objetivo es leer este archivo y mostrar pins para cada ciudad en el mapa. Se definen dos estructuras de datos, 'Location' y 'Locations', para representar los datos del archivo JSON. Se agrega una función 'readFile' para obtener la ruta del archivo y convertir su contenido en un objeto JSON utilizando un 'JSONDecoder'. Si la decodificación es exitosa, se imprime el contenido del objeto JSON.

05:03

🖥️ Ejecutando la aplicación y visualizando las ubicaciones

En el segundo párrafo, se relata el proceso de ejecutar la aplicación para verificar si se pueden ver las ubicaciones. Se muestra que la aplicación muestra inicialmente un texto 'Hello World' y se revisa la consola para verificar si las ciudades se imprimen, lo cual no sucede inicialmente porque la función 'readFile' no se ha llamado. Se sugiere usar el modificador 'deferred' para que la función se llame cuando se muestre el 'content view'. Al agregar esta llamada, se confirma que las ciudades se imprimen correctamente en la consola con su ID, nombre, latitud y longitud. A continuación, se describe el paso siguiente, que es utilizar MapKit para mostrar cada ciudad en un mapa, incluyendo la importación de 'MapKit' y la adición de un mapa en la vista de contenido en lugar del texto actual.

10:04

🗺️ Creando el mapa con anotaciones para las ciudades

El tercer párrafo se enfoca en la creación del mapa que mostrará las ciudades. Se describe cómo inicializar el mapa con una región definida por coordenadas y un 'span' que establece el nivel de zoom. Se utiliza una lista de 'locations' para rellenar el mapa con anotaciones. Cada anotación se crea a partir de los datos de 'Location', utilizando las coordenadas de latitud y longitud y un contenido que muestra el nombre de la ciudad y una imagen de estrella. Se detalla cómo configurar la apariencia de las anotaciones, incluyendo el texto con un fondo de captación y la imagen con un tamaño y color específicos, además de una sombra. Al final del párrafo, se menciona que al ejecutar la aplicación, se puede ver el mapa con las ciudades marcadas con su nombre y una imagen de estrella, permitiendo el zoom y el desplazamiento para observar todas las ciudades presentes en el archivo JSON.

Mindmap

Keywords

💡JSON

JSON es un formato de intercambio de datos basado en texto, que permite representar estructuras de datos complejas de manera legible para humanos. En el video, el archivo JSON se utiliza para almacenar información sobre diferentes ciudades, incluyendo su nombre, latitud y longitud. Este archivo es crucial para el tema principal del video, que es mostrar cómo leer y utilizar el contenido de un archivo JSON para mostrar pines en un mapa.

💡MapKit

MapKit es una biblioteca de iOS que proporciona herramientas para crear y personalizar mapas en aplicaciones. En el contexto del video, MapKit se utiliza para mostrar pines en un mapa basándose en la información extraída del archivo JSON. La integración de MapKit es fundamental para visualizar geografía de las ciudades mencionadas en el archivo JSON.

💡Next.js

Next.js es un framework de JavaScript que permite el desarrollo de aplicaciones web React de una manera más eficiente. Aunque no se menciona explícitamente en el script, se puede inferir que se está utilizando un entorno de desarrollo similar para trabajar con archivos y mostrar contenido en una aplicación web, como sería el caso de integrar MapKit en una aplicación web.

💡Estructura de datos

La estructura de datos es un concepto fundamental en la informática que se refiere a la organización y el almacenamiento de la información en la computadora. En el video, se definen estructuras para representar cada ubicación ('location') y el contenido completo del archivo JSON ('locations'), lo que es esencial para entender cómo se procesa y utiliza la información en la aplicación.

💡Decodificación

La decodificación es el proceso de convertir datos de un formato a otro. En el script, se menciona la decodificación de los datos JSON utilizando un 'JSON decoder' para convertir la cadena JSON en un objeto que la aplicación puede utilizar. Este proceso es clave para extraer la información de las ciudades del archivo JSON.

💡MapView

MapView es una clase en MapKit que representa un mapa en la aplicación. El script describe cómo se inicializa un MapView con una región específica y cómo se añaden anotaciones a este mapa. La creación y personalización de un MapView es central para el objetivo del video de mostrar pines en un mapa.

💡Anotaciones

En el contexto de MapKit, una 'anotación' es un marcador o pin que se puede colocar en un mapa para representar una ubicación específica. El video enseña cómo crear anotaciones a partir de la información de las ciudades en el archivo JSON y cómo mostrarlas en el mapa.

💡MapAnnotations

MapAnnotations es una clase que representa anotaciones en un mapa. Se utiliza para personalizar la apariencia y el contenido de las anotaciones, como se muestra en el script al crear una vista con el nombre de la ciudad y una estrella.

💡Coordenadas

Las coordenadas son pares de valores que especifican una ubicación en un sistema de referencia espacial, como un mapa. En el video, se utilizan las coordenadas (latitud y longitud) de las ciudades del archivo JSON para colocar las anotaciones en el mapa.

💡Swift

Swift es un lenguaje de programación desarrollado por Apple, utilizado para crear aplicaciones iOS, macOS, watchOS y tvOS. Aunque no se menciona directamente en el script, se puede deducir que se está utilizando Swift debido a la referencia a MapKit y la programación de aplicaciones iOS.

💡Sweet

Sweet (probablemente un error tipográfico por 'Swift') es un lenguaje de programación, y en el contexto del video, se refiere a la programación de aplicaciones iOS utilizando Swift. La mención de 'Sweet' se relaciona con el desarrollo de iOS y la creación de aplicaciones con MapKit.

Highlights

Aprender a leer un archivo en formato JSON y mostrar su contenido en un mapa utilizando MapKit.

Archivo JSON listo para ser copiado en el proyecto de Next.js.

Estructura del archivo JSON: un diccionario con una lista de diccionarios que representan ciudades.

Cada ciudad tiene cuatro claves: haití, nombre, latitud y longitud.

Definir estructuras para representar datos del archivo JSON: 'Location' y 'Jason'.

La estructura 'Location' tiene atributos para haití, nombre, latitud y longitud.

La estructura 'Jason' contiene una lista de ciudades bajo la clave 'locations'.

Función 'readFile' para leer el archivo JSON y convertirlo en un objeto.

Utilizar 'try-catch' para manejar la conversión del contenido del archivo a objeto JSON.

Imprimir los datos del objeto JSON para verificar la lectura del archivo.

Agregar una función para que se llame al mostrar la vista del contenido.

Verificar en la consola que las ciudades se imprimen correctamente.

Importar 'MapKit' para mostrar las ciudades en un mapa.

Inicializar el mapa con una región y anotaciones.

Definir 'MapAnnotation' para cada ciudad con su coordenada y contenido.

Crear 'MapAnnotationView' con el nombre de la ciudad y una estrella.

Mostrar el mapa con las ciudades marcadas y sus nombres junto a una estrella.

Zoom y navegación en el mapa para ver las ciudades marcadas.

Invitación a suscribirse para aprender más sobre desarrollo iOS con Swift y MapKit.

Transcripts

play00:04

hola me llamo ale y en este vídeo vamos

play00:06

a aprender a leer un archivo en formato

play00:08

jason y utilizar su contenido para

play00:10

mostrar pins en un mapa utilizando map

play00:13

kit tengo un archivo jason listo

play00:15

entonces lo voy a hacer es copiarlo a mi

play00:17

proyecto en next court para poder

play00:19

utilizarlo en la aplicación

play00:21

entonces yo tengo aquí lo que jones

play00:23

punto jason y lo que voy a hacer es

play00:25

jalarlo a scholes y copiarlo y vamos a

play00:30

ver la estructura de nuestro archivo

play00:32

bueno cómo pueden ver el formato jason

play00:36

es un diccionario y tengo la clave

play00:39

education es que tiene una lista con más

play00:42

diccionarios adentro

play00:44

cada uno de estos diccionarios

play00:45

representa una ciudad y en cada uno de

play00:49

ellos hay cuatro claves con valores

play00:52

primero tengo un haití para representar

play00:54

la ciudad luego tengo el nombre de la

play00:57

ciudad luego tengo su latitud y su

play01:00

longitud entonces lo que vamos a hacer

play01:02

es leer este archivo y utilizar mckidd

play01:05

para mostrar pins para cada una de las

play01:07

en el mapa vamos a regresar a contención

play01:11

y lo primero que vamos a hacer es

play01:13

definir dos estructuras que van a

play01:15

representar los datos que nos va a dar

play01:17

el archivo primero vamos a definir una

play01:20

estructura para representar cada

play01:22

ubicación scratch location y esta

play01:27

estructura va a ser curable

play01:31

y también va a ser identificable o

play01:34

identificable

play01:36

y en esta estructura vamos a tener los

play01:38

cuatro las cuatro claves y valores que

play01:41

vimos en nuestro archivo y jason

play01:43

entonces primero vamos a tener el haití

play01:44

tuit haití que es de tipo ins luego

play01:49

vamos a tener el nombre play name que es

play01:53

un string

play01:55

luego vamos a tener la latitud leche

play01:58

latitud que es un doble y por último

play02:03

vamos a tener la longitud net longitud

play02:06

que igual es un todo

play02:10

ahora vamos a agregar otra estructura

play02:12

que va a representar todo el contenido

play02:15

de nuestro archivo jason

play02:19

jason será que es chico bravo

play02:27

y en nuestra estructura solo vamos a

play02:29

tener la lista de ciudades entonces esto

play02:32

se llama locations porque esa es la

play02:34

clave que utilizamos en nuestro

play02:37

diccionario jason weed locations que es

play02:42

una lista de blow keys john

play02:46

perfecto ahora vamos a agregar en

play02:49

nuestro contenido la función que va a

play02:51

leer el archivo y crear un objeto de

play02:54

jason será entonces abajo del poli de

play02:57

nuestro contenido vamos a agregar la

play02:59

función read file ryder fong ruiz file y

play03:06

lo primero que vamos a hacer es obtener

play03:07

un área que va a dirigirnos a nuestro

play03:10

archivo

play03:11

entonces para obtener este lugar vamos a

play03:14

utilizar lo que se llama bondad y flecha

play03:17

guardiola es igual a fondo punto main

play03:22

punto

play03:25

llegaron

play03:26

[Música]

play03:28

for research y nuestros rezos en este

play03:32

caso se llama vacations

play03:35

la extensión station

play03:39

entonces si podemos obtener el jury lo

play03:42

que vamos a hacer ahora es tratar de

play03:44

convertir el contenido de este lugar en

play03:46

un objeto de tera vamos a agregar aquí

play03:50

leche será igual a try signo de

play03:55

interrogación negra

play03:58

contents off

play04:01

yo

play04:04

y lo que va a pasar es que si logramos

play04:07

obtener los datos que están guardados en

play04:09

este lugar el vamos a convertir los

play04:12

datos en un objeto de jason ctera

play04:15

utilizando un jason decoder entonces

play04:18

vamos a crear un decoder plate decoder

play04:21

igual a jason de cobre

play04:25

y vamos a intentar decodificar los datos

play04:29

if plate

play04:31

jason será igual a dry sino

play04:35

interrogación decoder punto d code

play04:39

y vamos a decodificar al tipo jason 0.6

play04:46

from aquí vamos a pasar los datos que

play04:48

obtuvimos sera

play04:51

entonces si logramos decodificar los

play04:53

datos por ahora lo que vamos a hacer es

play04:55

solo imprimirlos entonces vamos a poner

play04:58

un print statement print jason ctera y

play05:03

vamos a imprimir los bloques jones

play05:06

perfecto vamos a correr nuestra

play05:09

aplicación para ver si logramos ver las

play05:11

ubicaciones

play05:13

bueno como pueden ver tenemos aquí el

play05:15

texto de hello world en nuestra

play05:17

aplicación porque es lo único que

play05:19

tenemos en el borde de nuestro contenido

play05:21

y si vamos a scotti checamos la consola

play05:24

vemos que no se imprimieron las ciudades

play05:27

y esto es porque aunque definimos esta

play05:29

función del riff a él no le estamos

play05:30

llamando en ningún lado para llamarla

play05:33

podemos utilizar el modificador de

play05:35

napier y así cuando salga el view de

play05:39

nuestro content view se va a llamar la

play05:41

función de reed file entonces vamos a

play05:43

agregar una peer y vamos a utilizar la

play05:47

función de perform el parámetro del

play05:49

performer y aquí vamos a pasar fluir

play05:52

faro y ahora sí cuando aparezca nuestra

play05:55

aplicación debemos de ver las ciudades

play05:57

impresas en la consola

play05:59

perfecto como pueden ver el ex coach

play06:01

vemos que salen las cinco ciudades cada

play06:04

una con su aid y su nombre su gratitud y

play06:07

su longitud bueno lo que vamos a hacer

play06:10

ahora es utilizar mckidd para mostrar

play06:12

cada una de estas ciudades en un mapa

play06:14

entonces vamos a regresar ex code y

play06:17

vamos a agregar un importe para importar

play06:22

markets

play06:23

y vamos a agregar en el view de nuestro

play06:27

contenido un mapa en vez de este texto

play06:30

que tenemos ahora entonces vamos a

play06:32

quitar esto y vamos a poner aquí map

play06:37

y hay diferentes maneras y maneras de

play06:39

inicializar el mapa nosotros vamos a

play06:41

utilizar coordinación con anotación

play06:45

james y anotación content y bueno el

play06:49

corriere región como pueden ver es un

play06:51

painting utilizando un emmy que

play06:54

coordinar visión entonces vamos a

play06:56

definirlo aquí arriba para poder

play06:58

utilizarlo cuando creemos nuestro mapa

play07:01

backstage

play07:02

driver board

play07:05

coordine región

play07:10

es igual a en que coordine de richter

play07:16

y vamos a utilizar el inicializa door

play07:19

the center y espa

play07:22

el centre es una coordenada entonces

play07:26

vamos a utilizar una coordenada que yo

play07:28

tengo aquí que es si el showcase jong

play07:31

coordina judy con la latitud de 19.43 y

play07:39

la longitud de menos 99 punto 13 y para

play07:45

el espa tenemos que utilizar utilizar un

play07:48

en que coordine expand entonces vamos a

play07:52

crear un ente

play07:54

cardin expand y necesita dos valores que

play07:58

voy a utilizar aquí 50 para ambos

play08:02

perfecto entonces ahora cuando creamos

play08:05

nuestro mapa podemos pasar en el

play08:07

coordinar región esta región que

play08:10

acabamos de definir y como es un

play08:13

painting tenemos que utilizar el signo

play08:16

de dólar

play08:19

entonces aquí vamos a agregar el

play08:21

coordination luego los anotación aire es

play08:25

una lista de aire más que queremos

play08:28

mostrar en nuestro mapa en este caso

play08:31

vamos a utilizar una lista de low case

play08:33

jones entonces vamos a agregar otra

play08:35

variable que va a tener estos locations

play08:40

state

play08:43

bar

play08:44

location sé que es una lista de low keys

play08:48

john inicialmente esta va a estar vacía

play08:52

lo que vamos a hacer es en nuestro

play08:55

método de rafael en vez de imprimir

play08:57

jason de punto education vamos a darle

play09:00

este valor a nuestra variable de

play09:03

occasions entonces self todo

play09:07

education es igual a jason 0.26 jones

play09:14

entonces ahora cuando creamos nuestro

play09:16

mapa los a nutrition además van a ser

play09:19

nuestros education y por último vamos a

play09:23

definir el ano testing content que esto

play09:25

es el contenido de cada anotación que

play09:27

vamos a mostrar en nuestro mapa y para

play09:30

esto vamos a utilizar algo que se llama

play09:31

map notation entonces vamos a agregar

play09:35

aquí

play09:37

los mapas notations como estamos

play09:39

utilizando una lista de education por

play09:44

cada lo que ellos vamos a crear una

play09:46

anotación entonces aquí vamos a poner a

play09:49

grace jones in

play09:52

y bueno para cada education vamos a

play09:55

crear más obsesión

play09:59

y para crear un mapa notation vamos a

play10:01

utilizar una coordenada y el contenido

play10:04

de la notación entonces en la coordenada

play10:06

la podemos obtener de él

play10:08

location que tenemos de nuestra lista

play10:10

entonces creamos 7 location coordinen 2

play10:14

d

play10:16

y la latitud va a ser la ocasión punto

play10:20

latitud y la longitud es lo que son

play10:24

punto longitud

play10:27

y en el contenido vamos a utilizar un

play10:30

bistec para mostrar primero el nombre de

play10:34

la ciudad y luego vamos a mostrar una

play10:36

imagen de una estrella entonces para el

play10:41

contenido

play10:43

vamos a crear muy vista

play10:48

y primero vamos a poner el texto

play10:51

entonces text

play10:54

el texto que va a ser lo que son punto

play10:57

name

play10:59

este texto va a tener un fondo de

play11:02

captación

play11:04

2

play11:06

y va a estar con bolt entonces a

play11:09

utilizar punto

play11:13

después del texto vamos a poner la

play11:15

imagen de una estrella entonces voy a

play11:17

agregar aquí image con un sistema name y

play11:21

un nombre es estar punto field

play11:26

voy a cambiar el tamaño de la imagen

play11:28

utilizando funds y aquí voy a poner

play11:31

cyrus 2

play11:34

también lo voy a cambiar el color

play11:35

utilizando for ground holder y yo voy a

play11:38

utilizar rojo mover y por último voy a

play11:42

agregar una una sombra atrás de la

play11:46

imagen utilizando charo con un radio de

play11:50

1 perfecto entonces ahora vamos a ver un

play11:54

mapa que va a estar inicialmente en esta

play11:56

región y va a mostrar nuestra lista de

play11:59

education por cada location va a crear

play12:02

una anotación y la va a mostrar en la

play12:06

coordenada de la ciudad y también va a

play12:10

mostrar un vista que va a tener primero

play12:14

el nombre de la ciudad y luego la imagen

play12:16

de una estrella

play12:18

bueno vamos a correr nuestra aplicación

play12:20

otra vez para ver si podemos ver

play12:24

las imágenes en el mapa

play12:27

perfecto como pueden ver tenemos nuestro

play12:30

mapa y podemos hacer zoom con la tecla

play12:33

de opción

play12:35

y podemos ver que está la ciudad con

play12:37

marcada con su nombre y la imagen de una

play12:40

estrella y nos podemos mover alrededor

play12:42

del mapa y deben ver las ciudades que yo

play12:44

tengo en mi archivo de jason

play12:49

bueno pues todo lo que les quería

play12:51

mostrar en este vídeo espero que les

play12:53

haya gustado y hayan aprendido algo

play12:55

nuevo si quieren aprender más sobre

play12:57

desarrollo de ios utilizando swift y

play13:00

sweet white suscríbete a mi canal porque

play13:02

estaré subiendo vídeos nuevos muy pronto

Rate This

5.0 / 5 (0 votes)

Related Tags
Desarrollo iOSSwiftMapKitJSONTutorialCódigoAplicacionesMapasLocalizaciónEducativo
Do you need a summary in English?