ios for dummies consumiendo una api rest con afnetworking y mantle

25
iOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

Upload: gerardo-fidalgo-alcaraz

Post on 03-Feb-2016

231 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

iOS for DummiesConsumiendo una API REST con AFNetworking y Mantle

Page 2: 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

Page 3: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

presentaciónQuién soy y qué vamos a realizar

Page 4: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

Eduardo K. Palenzuela DariasDesarrollador

@kiliannet | kiliannet.com

Page 5: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

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

Page 6: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

scaffoldingCrear una estructura de aplicación mantenible y escalable

Page 7: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

Scaffolding• 1 – Presentation

– Application• AppDelegate• Controllers• Views (xib / stroryboards)

– Support• Images• Languages• LaunchScreen• Supporting

• 2 – Business – Models– Services

• 3 – DataAccess– RESTEngine

• Utils

Page 8: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

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”

Page 9: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

ALCATRAZAñadir y mantener plugins o paquetes para Xcode

Page 10: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

Alcatraz

• URL: http://alcatraz.io

• Añadir y mantener plugins o paquetes para Xcode

Page 11: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

Alcatraz | Plugins• CocoaPods: https://github.com/kattrali/cocoapods-xcode-plugin

– Ayuda a integrar Cocoapods en nuestra solución.

• CocoaControls: https://github.com/yeahdongcn/CocoaControlsPlugin– Permite explorar en controles para integrar en nuestra solución y ademas nos facilita el trabajo de

integración en CocoaPods.

• FuzzyAutocomplete: https://github.com/FuzzyAutocomplete/FuzzyAutocompletePlugin– Mejora el IntelliSense del Xcode.

• OMColorSense: https://github.com/omz/ColorSense-for-Xcode– Ayuda a trabajar con UIColor.

• QuickLocalization: https://github.com/nanaimostudio/Xcode-Quick-Localization– Ayuda a crear texto localizado para implementar las traducciones.

• VVDocumenter-Xcode: https://github.com/onevcat/VVDocumenter-Xcode– Ayuda a documentar el código.

Page 12: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

cocoapodsGestor de librerías de terceros

Page 13: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

CocoaPods

• URL: https://cocoapods.org

• Es un gestor de librerías tipo línea de comando como puede ser Nuggets de .NET

Page 14: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

CocoaPods | Instalación

• URL: http://code.tutsplus.com/tutorials/streamlining-cocoa-development-with-cocoapods--mobile-15938

• $ sudo gem update --system• $ sudo gem install cocoapods

Page 15: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

CocoaPods | Integración

1. Crear un archivo llamado Podfile2. Añadir los Pods que queremos incluir en nuestro

proyecto.

– AFNetworking: https://github.com/AFNetworking/AFNetworking

– Mantle: https://github.com/Mantle/Mantle

1. Ejecutar “pod install”2. Cerrar el proyecto.3. Abrir el nuevo WorkSpace del proyecto.

Page 16: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

mantleTipar respuestas de API a nuestros modelos de datos

Page 17: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

Mantle

• URL: https://github.com/Mantle/Mantle

• Creado por el equipo de desarrollo de GitHub, permite tipar de forma facil y sencilla respuestas de peticiones API a nuestro modelo de datos.

Page 18: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

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

Page 19: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

afnetworkingLibrería para hacer peticiones a Servicios Web

Page 20: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

AFNetworking• URL:

https://github.com/AFNetworking/AFNetworking

• Creado por el equipo de Gowalla, nos permite hacer peticiones a Servicios Web.

• Esta contruido sobre URL Loading System de Apple.– Librerías de Apple de acceso a datos usando

protocolos estandar de Internet como HTTP.

Page 21: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

AFNetworking | Clientes

• AFHTTPRequestOperationManager– Se basa en NSURLConnection– Para iOS 6 e inferiores.

• AFHTTPSessionManager– Se basa en NSURLSession– Para iOS 7 y superiores.

• Ambos clientes estan basados en bloques.

Page 22: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

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 errorif (localError != nil) {}

// Chequeamos el HTTP statusif ([response isKindOfClass:[NSHTTPURLResponse class]]) {

NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;if (httpResponse.statusCode != 200) {}

}

// Pasamos los datos devueltos en JSON a NSDictionaryNSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&localError];

if (localError == nil) {} else {}

Page 23: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

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.}];

Page 24: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

Enlaces

• IT-eBooks_beginhttp://kiliannet.es/tlp2015/IT-eBooks_begin.zip

• IT-eBooks_finalhttp://kiliannet.es/tlp2015/IT-eBooks_final.zip

• PPT: http://kiliannet.es/tlp2015/TLP2015_iOSForDummies.ppt

Page 25: IOS for Dummies Consumiendo una API REST con AFNetworking y Mantle

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