Vamos a actualizar nuestra Política de privacidad próximamente. Te recomendamos consultar el avance.

Swift 3: Integración con tecnologías backend

Ahorrar tiempo con Alamofire

¡Prueba gratis durante 10 días

nuestros 1290 cursos !

Prueba gratis Mostrar modalidades de suscripción
Alamofire nos va a posibilitar realizar peticiones a un servidor web explotando todos los recursos que posee HTTP, por eso, para ser más productivos, utilizaremos Alamofire y revisaremos las ventajas de esta biblioteca en la petición de servicios.

Transcripción

Ahora lo que vamos a hacer en nuestro proyecto es integrar una biblioteca muy poderosa llamada Alamofire y esta biblioteca nos va a ayudar a hacer todo el trabajo pesado que nosotros hacemos con URL Session. La razón principal de hacerlo es para poder manejar diferentes tipos de peticiones con diferentes encabezados y diferentes parámetros a través de Alamofire con una sintaxis más sencilla y fácil de manejar. Además de que ya trae el "parser" de JSON y ya trae un conjunto de herramientas que nos pueden servir muchísimo para nuestros proyectos. Lo primero que tengo que hacer es, aquí, dentro de mi proyecto, voy a instalar Cocoapods. Cocoapods es una gema que se distribuye a través de Ruby y Cocoapods lo que hace es un administrador de dependencias para iOS. Para instalarlo lo que tienes que hacer es correr el comando "GeminstallCocoapods." Yo ya lo tengo instalado pero a ti te van a aparecer un conjunto de bibliotecas y librerías que se van a ajustar a tu instalación de tu computadora. Una vez que ya tienes esto, vas a tener el comando "pod" y vas a poder preguntarle cómo te comunicas con él. Tiene todos estos comandos. Básicamente, lo que vamos a necesitar es "Init". "Init" lo que va a hacer es generar un documento llamado "Pod File". Vamos a escribir aquí "PodInit". Y lo que va a hacer es que vamos a tener este archivo de Cocoapods. Lo voy a editar aquí con Beam. Y, si te fijas, lo que voy a tener aquí es un archivo hecho en formato Ruby para nuestro proyecto. Aquí abajo lo que voy a hacer es escribir "Podalamofire". Lo voy a guardar y lo siguiente que voy a hacer es instalar este "pod". ¿Cómo lo voy a hacer? Muy sencillo. "Pod Install" y va a ir a través del Pod File y va a descargar todas las dependencias para esta pequeña librería. Ahora, puede ser que la primera vez sea muy tardado porque te va a traer todas las especificaciones de los Pods disponibles. Así que puede ser muy importante que tengas una muy buena conexión. Esto es porque así funciona Cocoapods. No puedes hacer mucho a través de eso. Lo siguiente es abrir la carpeta. Voy a escribir el comando "Open." para abrir la carpeta actual. Y aquí, si te fijas, vamos a ver un nuevo archivo llamado "Coffetable.workspace". Este "workspace" es el que nosotros vamos a tener que abrir en Xcode Cuando nosotros lo abramos, vamos a poder ver que tenemos nuestro proyecto y tenemos un segundo proyecto llamado Pods. Estos pods en realidad es donde se están compilando todas las bibliotecas para nuestro proyecto y las está generando para colocarlas dentro de nuestro binario. Es muy importante que identifiques que todos los frameworks y todos los pods que tú estés aquí utilizando van a copiarse todos los recursos para que tú puedas trabajar con ellos. Cada vez que tú agregues un "Pod File", por favor, corre el comando "PodInstall" para que después los instale y los puedas ver dentro de tu instalación de Xcode Una vez que ya tenemos esto, lo que vamos a hacer es refactorizar la implementación que ya teníamos hecha. Si nos vamos aquí, al archivo de "User Service" vas a encontrar que va a estar definida nuestra clase "User Service" como la teníamos anteriormente. Pero ahora, yo hice una extensión de usuario. ¿Por qué hice una extensión? Bueno, básicamente porque yo no quiero crear otra clase. Yo lo que quiero es que tú, desde la clase "user", puedas acceder a todos los elementos del índice a través de un método de clase que se llame "Index". Ahora, este método "Index", cuando acabe, me va a regresar un arreglo de usuarios que al final es lo que buscamos, tener una API muy natural, muy sencilla en donde yo pueda decirle "User.index", le pase un bloque y dentro de ese bloque yo ya pueda contar con el arreglo de usuarios. Vamos a escribir este pequeño código de Alamofire. Lo primero es identificar los encabezados. Al igual que en las bibliotecas de Foundation necesitamos colocarle todos los encabezados, ya sean los de los "tokens", los regresos, cómo son los formatos los tiempos de expiración, todos los encabezados que necesitemos los vamos a poder colocar aquí. Pero si te fijas, esta es una manera muchísimo más sencilla. ¿Por qué? Porque vamos a estar haciendo llave y valor. Ahora ya que tenemos estos encabezados, vamos a escribir "Alamofire Request". Por "default", todas las peticiones son "Get". Así que solamente si necesitas las "post", las indicas pero si no, todas van a ser de tipo "Get". Le pasas el encabezado y después le dices que la respuesta te la entregue en JSON. Aquí, "Response" es un objeto que se va a construir una vez que la petición está completa. "Response" va a tener múltiples objetos como por ejemplo, el "Request", la respuesta en crudo o los errores. Pero el más importante es, una vez que ya tienes la respuesta vas a poder acceder a una propiedad llamada "Result". Y "Result" dentro de ella va a tener ya el objeto parseado en JSON. Así que, simplemente vamos a hacer lo mismo que teníamos aquí adentro. De "Incompleted", ¿te acuerdas que nosotros hacíamos el "pars" de los usuarios en la clase "user"? Bueno, pues esto ya no lo necesitamos. Esto específicamente lo podemos dejar de lado del servicio. ¿Por qué? Porque solamente el servicio es el que sabe que hay un conjunto de usuarios. Pero, lo más importante, sí vamos a reutilizar nuestro constructor del diccionario. ¿Por qué? Porque, mira, es muy sencillo. Cuando el servicio te está entregando un arreglo ese arreglo por más que tú lo cortes, la clase o la instancia del "user" no sabe cómo es el formato de un conjunto de usuarios. Él sabe manejar un usuario a la vez, así que no tiene la necesidad de saber cómo distribuirlos de un arreglo a una instancia individual. Así que, no necesitamos colocar esa lógica ahí. Lo más limpio sería ponerlo del lado del servicio. El que sí está haciendo todos estos "parsers" y está convirtiendo de arreglos a elementos individuales, eso es parte del servicio. Por otro lado, solamente el constructor del diccionario es el que va a funcionar. Ahora, ya con esta API, nosotros ya no necesitamos en el "Application Delegate" la llamada a todos los usuarios. De hecho, va a quedar muchísimo más limpio. Si nosotros nos pasamos a "Friends Table View Controller" lo que vamos a ver es que ya no necesitamos revisar si la variable está llena y ya no necesitamos asignarla. Simplemente mandamos a llamar "User.Index" y en el bloque nosotros sabemos que estamos regresando un arreglo de usuarios. Así que simplemente lo asignamos y refrescamos los valores de nuestra tabla. Esto es muchísimo más limpio y muchísimo más claro para poder estar haciendo las peticiones. Así que voy a ejecutar este código dentro de mi proyecto. Aquí ya está el simulador. Le voy a dar "Login". Me voy a pasar aquí a "Friends" y me va a salir un error. Este error es porque, si mal no creo, se me ha olvidado prender el servidor. Sí, se me ha olvidado prender el servidor. Ahora, me voy a abrir el iTerm y voy a pasarme a la carpeta de Ruby. "Rail Server". Se va a levantar el servidor, muy bien. Y ahora sí voy a volver a ejecutar mi proyecto. Damos "Login". Me paso a los amigos y listo. Aquí ya están mis objetos del Table View Controller. Si te fijas, Alamofire es muchísimo más eficiente para estar haciendo las peticiones y es muchísimo más expresivo. Nos va a ahorrar muchísimo trabajo en los objetos JSON y nos puede volver muchísimo más productivos a la hora de estar exponiendo nuestras APIs.

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.
 

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.