iOS for Dummies Consumiendo una API REST con AFNetworking y Mantle
¿Qué vamos a ver? Presentación Scaffolding Alcatraz CocoaPods Mantle AFNetworking Implementación API de IT-eBooks
presentación Quién soy y qué vamos a realizar
Eduardo K. Palenzuela Darias | kiliannet.com
IT-eBooks |
SCAFFOLDING Crear una estructura de aplicación mantenible y escalable
Scaffolding 1 – Presentation – Application AppDelegate Controllers Views (xib / stroryboards) – Support Images Languages LaunchScreen Supporting 2 – Business – Models – Services 3 – DataAccess – RESTEngine Utils
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”
ALCATRAZ Añadir y mantener plugins o paquetes para Xcode
Alcatraz URL: Añadir y mantener plugins o paquetes para Xcode
Alcatraz | Plugins CocoaPods: – Ayuda a integrar Cocoapods en nuestra solución. CocoaControls: – Permite explorar en controles para integrar en nuestra solución y además nos facilita el trabajo de integración en CocoaPods. FuzzyAutocomplete: – Mejora el IntelliSense del Xcode. OMColorSense: – Ayuda a trabajar con UIColor. QuickLocalization: – Ayuda a crear texto localizado para implementar las traducciones. VVDocumenter-Xcode: – Ayuda a documentar el código.
COCOAPODS Gestor de librerías de terceros
CocoaPods URL: Es un gestor de librerías tipo línea de comando como puede ser Nuggets de.NET
CocoaPods | Instalación URL: g-cocoa-development-with-cocoapods-- mobile g-cocoa-development-with-cocoapods-- mobile $ sudo gem update --system $ sudo gem install cocoapods
CocoaPods | Integración 1.Crear un archivo llamado Podfile 2.Añadir los Pods que queremos incluir en nuestro proyecto. – AFNetworking: – Mantle: 1.Ejecutar “pod install” 2.Cerrar el proyecto. 3.Abrir el nuevo WorkSpace del proyecto.
MANTLE Tipar respuestas de API a nuestros modelos de datos
Mantle URL: Creado por el equipo de desarrollo de GitHub, 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, -isEqual (usar tus clases como claves de diccionarios) – Te implementa NSCopying y NSCoding (guardar en NSUserDefaults) Serialización: MTLJSONSerializing Cast de datos: JSONTransformer
AFNETWORKING Librería para hacer peticiones a Servicios Web
AFNetworking URL: 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 AFHTTPRequestOperationManager – Se basa en NSURLConnection – Para iOS 6 e inferiores. AFHTTPSessionManager – Se basa en NSURLSession – Para iOS 7 y superiores. Ambos clientes están basados en bloques.
AFNetworking | Porqué Petición GET con NSHTTPURLResponse NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:10.0f]; // 10 seg. NSError *localError = nil; NSHTTPURLResponse *response = nil; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&localError]; // Chequeamos el error if (localError != nil) {} // Chequeamos el HTTP status if ([response isKindOfClass:[NSHTTPURLResponse class]]) { NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response; if (httpResponse.statusCode != 200) {} } // Pasamos los datos devueltos en JSON a NSDictionary NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&localError]; if (localError == nil) {} else {}
AFNetworking | Porqué Petición GET con AFNetworking [client GET:url parameters:nil success:^(NSURLSessionDataTask *task, id responseObject) { // JSON serializado como NSDictionary. } failure:^(NSURLSessionDataTask *task, NSError *error) { // Gestión de errores. }];
Enlaces IT-eBooks_begin IT-eBooks_final PPT:
| kiliannet.com