Swift 3: Integración con tecnologías backend

Consultas a nuestra API

¡Prueba gratis durante 10 días

nuestros 1203 cursos !

Prueba gratis Mostrar modalidades de suscripción
Las push notifications son una forma de comunicación en la que una aplicación envía mensajes a un Smartphone de un cliente informándole de que tiene alguna información nueva. Existen tres pasos importantes para recibir push notifications que te voy a explicar y a implementar en nuestro flujo.

Transcripción

Ahora volveremos a nuestro proyecto IOS. En este proyecto de IOS lo que vamos a hacer es generar una consulta, y por generar una consulta me refiero específicamente, a que hagamos la petición hacía nuestro servidor y que nos devuelva los datos en formato "json" para después serializarlos. Voy a tomar el proyecto de Ruby on Rails y lo primero que voy a hacer, ya estando dentro de mi carpeta del proyecto de Ruby on Rails, voy a ejecutar el comando “rails server”. Recuerda que en este momento toda la aplicación y el servicio ya están funcionando, así que lo que sigue sería revisar que en Postman todo esté funcionando bien. Vamos a abrir nuestro Postman, y si te fijas aquí ya tenía todas mis peticiones. Si no me equivoco aquí todavía sigue teniendo 8.000, lo voy a cambiar a 3.000 que es el puerto en el que estoy trabajando de Ruby on Rails, y le voy a dar "Enviar". Este será el primer servicio que implemente en mi aplicación de IOS. ¿Qué es lo que tiene? Básicamente tiene todo lo que guardamos del objeto y dos recursos de usuarios que voy a poder colocar en mi aplicación de IOS. Ya que tengo esto, lo siguiente sería implementar el código que va a hacer la petición. Vamos a escribir el código, en donde nosotros colocaremos los Headers, la URL y todo lo que vamos a pedirle a nuestro servidor. Este es el proyecto que teníamos en el capítulo pasado, y en este proyecto lo que vamos a hacer es a agregar un nuevo archivo. Hago clic derecho aquí en este nuevo grupo, y le voy a decir "Nuevo archivo". Creamos una clase de “Cocoa Touch”. A esta clase la llamo "UserService". Va a estar hecha en Swift, la voy a guardar aquí y aquí ya tengo una clase, en donde voy a poder delegar toda la responsabilidad para hacer las peticiones de mi cliente de IOS. Este servicio en específico va a estar relacionado con la clase de usuario. Lo siguiente que vamos a hacer es crear una función. Primero necesito generar una función de clase o una función estática, con la que pueda solicitar todo lo que necesito a la petición. Voy a escribir "static fung" y la voy a colocar aquí el nombre de mi función que es “requestIndex”. Essto es lo que hace básicamente. Solícitamos un índice de todos los usuarios registrados en mi aplicación, no necesito parámetros y tampoco necesito que me devuelva ningún objeto. Lo siguiente que necesito hacer es colocar el código de mi aplicación o de mi cliente. Para esto vamos a utilizar "Fundations" solo para que puedas ver cómo se hace una petición a mano, completamente libre de Frameworks. Para comenzar, escribimos la URL. Primero vamos a crear un objeto URL. La clase se llama URL, abro paréntesis, y vamos a utilizar el constructor que recibe una cadena. Este. Ahora, aquí voy a colocar toda la URL de mi petición y de mi servicio. Es http://localhost:, porque estoy en mi máquina, 3000 que es el puerto para mi proyecto de Ruby on Rails, /api/ /users/ y listo, aquí ya tengo mi URL. Si te fijas, es lo mismo que tenemos en Postman en la parte de la URL. Después, definimos un "Request". Este tiene que ser mutable. “request = URLRequest”, abro paréntesis y me pide una URL. Aquí le voy a dar la URL que acabo de construir. Después, modifico este request. A este request necesito decirle, que precisamos tener un método de http. Seguramente este es un opcional, así que lo voy a desenvolver. Sí, era un opcional. Ahora, aquí tengo que decirle que el método http va a ser de tipo GET. GET. Después, necesito decirle, al igual que en Postman, que mi petición esta serializada en json y que yo acepto de respuesta un json, “request.addValue”, “forHTTPHeaderField”. Muy bien, el valor de esto será “application/json” y el HeaderField es “Accept”. Voy a duplicar esta línea porque es muy parecida a la siguiente o al siguiente encabezado que es “Content-Type”. Este le dice que mi petición está hecha en "json" y esta le dice que yo acepto un "json" en respuesta. Ya que tengo este request, lo siguiente será generar una tarea. “let task”. Esta es tarea una tarea que se crea a partir de unas sesiones hechas por el Framework de las URL, “URLSession”. “URLSession”, me voy a traer la instancia compartida, shared URLSession, y aquí voy a escribir “dataTask(With: URL request”, y el bloque para cuando el request esté completo. El request va a ser el que yo ya tengo aquí escrito. Y el bloque que se va a ejecutar cuando ya esté completa la petición, será este de aquí. Me va a entregar primero unos datos en un opcional. "Data". Luego, me va a entregar la respuesta y después me puede o no entregar un error. Ahora, la diferencia entre Data y Response, es que Data puede ser todo lo que ya viene en el cuerpo de la respuesta y Response va traer los encabezados, los tiempos, las peticiones incluso puede traer el request, así que es un objeto más completo. Pero nosotros nos vamos a enfocar en los datos. Lo que tengo que hacer ahora es enviar este task. ¿Cómo lo envío? ¿Cómo le digo a mi Framework qué haga la petición? Simplemente escribo “task.resume”, y de esta manera lo que hace es enviar toda esta petición a nuestro servidor y vuelve en este bloque, cuando este bloque se ejecute, ¿qué es lo que necesito hacer? Con fines más prácticos y rápidos, voy a convertir los datos a un objeto de "json". Escribo “let jsonObject”que es igual a ”jsonSerialization.jsonObject(With: Data”, "Data" lo desenvuelvo, “options: .”, y aquí hay uno que se llama “allowFragments”. Muy bien. Ahora, ya que tengo esto lo que voy a hacer es imprimir este “jsonObject”, “print (jsonObject)”, para verlo en nuestra consola. Seguramente por aquí me va a decir que esto es un objeto que puede arrojar un error, por eso necesito envolverlo en un “try”. Voy a ponerle el “try” con un opcional y en caso de que esto sea válido, lo voy a desenvolver en el “print”. Muy bien, ya lo tengo. Ya tengo mi petición. Lo siguiente que tengo que hacer es irme a la clase “User” y agregar aquí un método que se llame “all” para que me pueda traer todos los elementos necesito. Y voy a hacer aquí una llamada a "UserService.requestIndex". La diferencia principal es que el servicio hace una petición a una acción y el método “all” me está entregando un arreglo de objetos. Una vez que tengo este método escrito, paso a "FriendsTableViewController", y aquí arriba en donde tenemos la lista de los usuarios, es en donde voy a hacer la petición. “User.all”. Con esto se irá conectando de aquí primero al modelo, del modelo al servicio, del servicio se irá servidor y regresará con todos los datos en nuestra consola. Voy a ejecutar esto, presionando la tecla "COMAND R" voy a poder lanzar mi simulador. Aquí está mi simulador, le voy a dar “Login” para pasarme a la pantalla y hago clic aquí en “Friends”. Este es un error muy común, ¿qué es lo que dice? Que no podemos hacer ninguna petición que no esté dentro de https. Ok, esto es a partir de IOS 9. En essta petición, lo que tenemos que hacer es modificar un valor en nuestro “Info.plist”. ¿Cómo lo hacemos? Muy sencillo. Nuestra implementación básicamente está bien, simplemente aquí en “Info.plist”, —lo voy a abrir— en donde dice “Information Property List” hago clic en este símbolo "+", y aquí va a haber un valor que se llama “App Transport Security Setting”. Ok, en este de aquí hago clic otra vez en el signo de "+". Si te fijas, ya lo abrió por dentro de nuestro valor, y le voy a decir que permita cargas arbitrarias. Aquí dice no, lo abro para que sea sí, y listo, es todo lo que necesito. Esto simplemente lo hace para que puedas tener una lista de dominios seguros, con la que puedas hacer peticiones sin https. Luego haz clic en "Login", después en “Friends”, y listo, parece que ya funcionó. Si te fijas aquí atrás, ya se hizo la petición, y de hecho me está diciendo qué es lo que está devolviéndo. Lo importante es que revises esto. Una vez que ya estamos viendo nuestra consola, aquí vemos que ya se está cumpliendo todo lo que se imprimió de nuestro cliente en IOS. Este cliente ya está serializando y ya estamos obteniendo un arreglo de objetos String, Date y Boolean, que nos van a permitir generar simplemente un objeto de dominio en nuestro modelo.

Swift 3: Integración con tecnologías backend

Aprende a vincular tus aplicaciones web creadas con Swift 3 con el servidor, comienza a enviar información entre ambos y aprovecha esto al máximo dentro de tus sistemas.

3:08 horas (27 Videos)
Actualmente no hay comentarios.
 
Fecha de publicación:4/04/2017
Duración:3:08 horas (27 Videos)

Este curso video2brain está disponible como descarga y para ser visualizado online. ¡Pero no hace falta que decidas entre las dos opciones! Al comprar el curso, disfrutarás de ambas posibilidades.

La descarga te permite ver las lecciones sin estar conectado/a a internet y supone una navegación fácil y ágil entre capítulo y capítulo. Si vas a trabajar en diferentes ordenadores o si no quieres descargarte el curso completo, entra en la web con tus datos de acceso y disfruta directamente de tus vídeos online. Te deseamos que disfrutes de este curso y te resulte de mucha utilidad.

Estamos a tu disposición si tienes cualquier tipo de duda o pregunta.