i OS for Dummies Consumiendo una API REST

  • Slides: 25
Download presentation
i. OS for Dummies Consumiendo una API REST con AFNetworking y Mantle

i. OS for Dummies Consumiendo una API REST con AFNetworking y Mantle

¿Qué vamos a ver? • • Presentación Scaffolding Alcatraz Cocoa. Pods Mantle AFNetworking Implementación

¿Qué vamos a ver? • • Presentación Scaffolding Alcatraz Cocoa. Pods Mantle AFNetworking Implementación API de IT-e. Books

Quién soy y qué vamos a realizar PRESENTACIÓN

Quién soy y qué vamos a realizar PRESENTACIÓN

Eduardo K. Palenzuela Darias Desarrollador @kiliannet | kiliannet. com

Eduardo K. Palenzuela Darias Desarrollador @kiliannet | kiliannet. com

IT-e. Books http: //www. it-ebooks. info | http: //it-ebooks-api. info

IT-e. Books http: //www. it-ebooks. info | http: //it-ebooks-api. info

Crear una estructura de aplicación mantenible y escalable SCAFFOLDING

Crear una estructura de aplicación mantenible y escalable SCAFFOLDING

Scaffolding • 1 – Presentation – Application • App. Delegate • Controllers • Views

Scaffolding • 1 – Presentation – Application • App. Delegate • Controllers • Views (xib / stroryboards) – Support • • • Images Languages Launch. Screen Supporting 2 – Business – Models – Services • 3 – Data. Access – RESTEngine • Utils

Scaffolding | Importante • • Sólo eliminar referencias Añadir carpetas como grupos Seleccionar la

Scaffolding | Importante • • Sólo eliminar referencias Añadir carpetas como grupos Seleccionar la nueva ruta de Info. plist Eliminar Info. plist de “Copy bundle resources”

Añadir y mantener plugins o paquetes para Xcode ALCATRAZ

Añadir y mantener plugins o paquetes para Xcode ALCATRAZ

Alcatraz • URL: http: //alcatraz. io • Añadir y mantener plugins o paquetes para

Alcatraz • URL: http: //alcatraz. io • Añadir y mantener plugins o paquetes para Xcode

Alcatraz | Plugins • Cocoa. Pods: https: //github. com/kattrali/cocoapods-xcode-plugin – • Cocoa. Controls: https:

Alcatraz | Plugins • Cocoa. Pods: https: //github. com/kattrali/cocoapods-xcode-plugin – • Cocoa. Controls: https: //github. com/yeahdongcn/Cocoa. Controls. Plugin – • Ayuda a trabajar con UIColor. Quick. Localization: https: //github. com/nanaimostudio/Xcode-Quick-Localization – • Mejora el Intelli. Sense del Xcode. OMColor. Sense: https: //github. com/omz/Color. Sense-for-Xcode – • Permite explorar en controles para integrar en nuestra solucio n y adema s nos facilita el trabajo de integracio n en Cocoa. Pods. Fuzzy. Autocomplete: https: //github. com/Fuzzy. Autocomplete. Plugin – • Ayuda a integrar Cocoapods en nuestra solucio n. Ayuda a crear texto localizado para implementar las traducciones. VVDocumenter-Xcode: https: //github. com/onevcat/VVDocumenter-Xcode – Ayuda a documentar el co digo.

Gestor de librerías de terceros COCOAPODS

Gestor de librerías de terceros COCOAPODS

Cocoa. Pods • URL: https: //cocoapods. org • Es un gestor de libreri as

Cocoa. Pods • URL: https: //cocoapods. org • Es un gestor de libreri as tipo li nea de comando como puede ser Nuggets de. NET

Cocoa. Pods | Instalación • URL: http: //code. tutsplus. com/tutorials/streamlini ng-cocoa-development-with-cocoapods-mobile-15938 • $ sudo

Cocoa. Pods | Instalación • URL: http: //code. tutsplus. com/tutorials/streamlini ng-cocoa-development-with-cocoapods-mobile-15938 • $ sudo gem update --system • $ sudo gem install cocoapods

Cocoa. Pods | Integración 1. Crear un archivo llamado Podfile 2. Añadir los Pods

Cocoa. Pods | Integración 1. Crear un archivo llamado Podfile 2. Añadir los Pods queremos incluir en nuestro proyecto. – AFNetworking: https: //github. com/AFNetworking – Mantle: https: //github. com/Mantle 1. Ejecutar “pod install” 2. Cerrar el proyecto. 3. Abrir el nuevo Work. Space del proyecto.

Tipar respuestas de API a nuestros modelos de datos MANTLE

Tipar respuestas de API a nuestros modelos de datos MANTLE

Mantle • URL: https: //github. com/Mantle • Creado por el equipo de desarrollo de

Mantle • URL: https: //github. com/Mantle • Creado por el equipo de desarrollo de Git. Hub, permite tipar de forma fácil y sencilla respuestas de peticiones API a nuestro modelo de datos.

Mantle | Importante • Núcleo: MTLModel – Te permite implementar –hash, -is. Equal •

Mantle | Importante • Núcleo: MTLModel – Te permite implementar –hash, -is. Equal • (usar tus clases como claves de diccionarios) – Te implementa NSCopying y NSCoding • (guardar en NSUser. Defaults) • Serialización: MTLJSONSerializing • Cast de datos: JSONTransformer

Librería para hacer peticiones a Servicios Web AFNETWORKING

Librería para hacer peticiones a Servicios Web AFNETWORKING

AFNetworking • URL: https: //github. com/AFNetworking • Creado por el equipo de Gowalla, nos

AFNetworking • URL: https: //github. com/AFNetworking • Creado por el equipo de Gowalla, nos permite hacer peticiones a Servicios Web. • Está contruido sobre URL Loading System de Apple. – Librerías de Apple de acceso a datos usando protocolos estándar de Internet como HTTP.

AFNetworking | Clientes • AFHTTPRequest. Operation. Manager – Se basa en NSURLConnection – Para

AFNetworking | Clientes • AFHTTPRequest. Operation. Manager – Se basa en NSURLConnection – Para i. OS 6 e inferiores. • AFHTTPSession. Manager – Se basa en NSURLSession – Para i. OS 7 y superiores. • Ambos clientes están basados en bloques.

AFNetworking | Porqué Petición GET con NSHTTPURLResponse NSURLRequest *request = [NSURLRequest request. With. URL:

AFNetworking | Porqué Petición GET con NSHTTPURLResponse NSURLRequest *request = [NSURLRequest request. With. URL: url cache. Policy: NSURLRequest. Reload. Ignoring. Local. And. Remote. Cache. Data timeout. Interval: 10. 0 f]; // 10 seg. NSError *local. Error = nil; NSHTTPURLResponse *response = nil; NSData *data = [NSURLConnection send. Synchronous. Request: request returning. Response: &response error: &local. Error]; // Chequeamos el error if (local. Error != nil) {} // Chequeamos el HTTP status if ([response is. Kind. Of. Class: [NSHTTPURLResponse class]]) { NSHTTPURLResponse *http. Response = (NSHTTPURLResponse *) response; if (http. Response. status. Code != 200) {} } // Pasamos los datos devueltos en JSON a NSDictionary *dictionary = [NSJSONSerialization JSONObject. With. Data: data options: NSJSONReading. Mutable. Leaves error: &local. Error]; if (local. Error == nil) {} else {}

AFNetworking | Porqué Petición GET con AFNetworking [client GET: url parameters: nil success: ^(NSURLSession.

AFNetworking | Porqué Petición GET con AFNetworking [client GET: url parameters: nil success: ^(NSURLSession. Data. Task *task, id response. Object) { // JSON serializado como NSDictionary. } failure: ^(NSURLSession. Data. Task *task, NSError *error) { // Gestión de errores. }];

Enlaces • IT-e. Books_begin http: //kiliannet. es/tlp 2015/IT-e. Books_begin. zip • IT-e. Books_final http:

Enlaces • IT-e. Books_begin http: //kiliannet. es/tlp 2015/IT-e. Books_begin. zip • IT-e. Books_final http: //kiliannet. es/tlp 2015/IT-e. Books_final. zip • PPT: http: //kiliannet. es/tlp 2015/TLP 2015_i. OSFor. Dummies. ppt

¡¡¡GRACIAS!!! @kiliannet | kiliannet. com

¡¡¡GRACIAS!!! @kiliannet | kiliannet. com