Consumo de Servicios Web en iOS con URLSession
Clase 16 de 52 • Curso de Desarrollo de Apps para iOS
Contenido del curso
- 4

Creación de la primera app iOS con Xcode: Login de Facebook
09:02 - 5

Navegación entre pantallas en iOS con UI Navigation Controller
05:49 - 6

Creación y conexión de múltiples storyboards en iOS
06:14 - 7

Conexiones IBOutlets y IBActions en iOS con Storyboards
11:00 - 8

Comparativa: Auto Layout vs SwiftUI en Desarrollo iOS
02:48 - 9

Auto Layout en iOS: Diseño Responsivo con Constraints y StackViews
11:10 - 10

Creación y configuración de tablas en iOS con Swift
12:49 - 11

Creación de celdas personalizadas en TableView de iOS
14:00 - 12

Persistencia de Datos en iOS con UserDefaults
11:09
- 19

Desarrollo de "Platzi Tweets": Red Social iOS Realista
02:24 - 20

Configuración Inicial de Proyecto iOS con CocoaPods
06:18 - 21

Diseño de Pantallas de Bienvenida, Inicio de Sesión y Registro en iOS
13:06 - 22

Controladores y validaciones en pantallas de registro y login
12:22 - 23

Validación y Conexiones en Login y Registro iOS
10:01 - 24
Modelado de Endpoints y JSON para API de PlatziTweets
01:44 - 25

Integración de Autenticación con API de Platzi Tweets
09:37 - 26

Desarrollo de Registro y Autenticación en Aplicaciones iOS
06:47 - 27

Diseño de Interfaces para Aplicaciones iOS: Creación de Celdas Personalizadas
12:37 - 28

Consumo de API para mostrar tweets en iOS
12:43 - 29

Diseño de Pantalla para Crear y Publicar Tweets en iOS
11:06 - 30

Conexión de Pantalla de Publicación con Servicios de Platzi Tweets
09:11 - 31

Borrado de Tweets Propios en iOS usando Swipe en UITableView
12:21 - 32

Uso de la Cámara del iPhone para Adjuntar Fotos en Posts
10:40 - 33
Conexión de Aplicaciones iOS con Firebase paso a paso
02:26 - 34

Configuración de iPhone y X-Code para ejecución de apps
04:45 - 35

Subida de Fotos a Firebase y Publicación en Twitter
13:38 - 36

Configuración de Post con Imagen en Firebase
03:13 - 37

Captura y Publicación de Videos en iOS con Firebase
09:17 - 38

Subida de Videos a Firebase e Integración en Posts de iOS
14:41 - 39

Configuración de Celdas para Reproducción de Videos en iOS
07:58 - 40

Acceso al GPS y almacenamiento de coordenadas en iOS
09:43 - 41

Integración de Mapas en iOS con Coordenadas de Usuario
11:29 - 42

Marcadores y Configuración de Mapas en iOS con Swift
14:11 - 43

Mejoras avanzadas en UI y UX para iOS Developer
01:28
¿Cómo solucionar errores comunes al consumir servicios web en iOS?
Al desarrollar aplicaciones iOS que consumen servicios web, es fácil olvidar algunos detalles cruciales que pueden afectar el funcionamiento del código. Uno de los errores más comunes es olvidar ejecutar el dataTask. En este tipo de desarrollo, es importante seguir algunos pasos para asegurarse de que el servicio se consuma correctamente y, finalmente, ejecutar el request.
¿Cómo ejecutar correctamente un dataTask en Swift?
El uso de URLSession en Swift es estándar al consumir servicios web. Después de configurar tu request y asegurarte de que todo está correcto, nunca olvides el método .resume() en tu dataTask. Este es el paso final que permite que el request se ejecute:
let task = URLSession.shared.dataTask(with: url) { data, response, error in
// Manejo de la respuesta
}
task.resume()
Este método es crucial para activar el data task. Olvidarlo es un error común que puede llevar a horas de frustración.
¿Por qué es importante hacer cambios en la UI desde el main thread?
Cuando se trata de realizar cambios en la interfaz de usuario (UI) en iOS, es imperativo que estos cambios se realicen en el hilo principal. Esto se debe a que la UI en iOS es notoriamente no thread-safe, lo que significa que si intentas actualizar la UI desde un hilo secundario, podrías enfrentar inconsistencias o fallos inesperados.
Usa el siguiente patrón para ejecutar actualizaciones de UI desde el main thread:
DispatchQueue.main.async {
// Tu código de UI aquí
}
¿Cómo mejorar la interacción de la UI con Activity Indicators?
Para mejorar la experiencia del usuario, es esencial manejar los ActivityIndicators de manera eficiente. Al iniciar una solicitud de servicio, debes hacer que el ActivityIndicator comience a animarse y detener la animación una vez que el servicio haya terminado:
indicator.startAnimating()
// Iniciar la solicitud
URLSession.shared.dataTask(with: url) { data, response, error in
DispatchQueue.main.async {
indicator.stopAnimating()
}
}.resume()
No olvides gestionarlo dentro del main thread ya que esto afecta directamente la UI.
¿Cómo cambiar un label basado en la respuesta de un servicio?
Supón que deseas cambiar un label basado en una respuesta JSON. Para esto, puedes convertir el diccionario recibido en una estructura más unificada y luego usar esa estructura para actualizar UI.
Un ejemplo sencillo de esta operación es el siguiente:
if let isHappy = dictionary["isHappy"] as? Bool {
DispatchQueue.main.async {
self.statusLabel.text = isHappy ? "Es feliz" : "Es triste"
}
}
Usando un operador ternario, puedes determinar qué texto mostrar.
¿Es recomendable usar diccionarios para el manejo de datos?
Aunque puedes manejar tus servicios web usando diccionarios, esta es la forma más sencilla pero menos recomendable. Lo ideal es transformar la respuesta a estructuras de datos o modelos definidos que puedas manipular fácilmente y que te ofrezcan más seguridad y claridad en tu código. En futuras clases exploraremos cómo convertir estos datos a modelos en Swift, lo cual es una técnica que te aportará robustez y fiabilidad en tus aplicaciones.
¡No olvides practicar! Busca servicios de prueba como "mock json services" y sigue experimentando. Esto te ayudará a fortalecer tus habilidades y a enfrentarte con confianza a nuevos desafíos.