Consumiendo Servicios REST desde iOS 5. Parte 1. Preparando el proyecto.

Últimamente he colaborado en el  desarrollo de varias aplicaciones para iOS (versiones 4 y 5), estas aplicaciones consumen servicios REST que retornan JSON o XML lo que aunque es una tarea más o menos trivial requiere algo de investigación para hacerla bien por que hay muchos frameworks, formatos y plataformas que se pueden involucrar.

Después de investigar un rato, ver algunos ejemplos y leer bastante código termine seleccionando la librería ASIHTTPRequest, esta librería es robusta y me permite hacer cosas como invocar los servicios de forma asíncrona (lo que debe ser obligatorio en aplicaciones con interfaz de usuario móvil o de escritorio) o consumir servicios que requieren autenticación por medio de headers.

Descargue las clases, agréguelas a su proyecto, no olvide incluir la clase reachability que esta en la carpeta Externals de ASIHTTPRequest  y estará listo para consumir servicios Rest desde iOS, o casi listo…

Ahora bien, hace casi un año se lanzo la versión 5 del sistema operativo iOS y eso le generará algunos problemas ya que una de sus grandes novedades fue la recolección automática de objetos (ARC), es decir que ya no había que destruir manualmente las referencias a los objetos que no se usan, algo que antes hacíamos escribiendo instrucciones como:

[shareDialog release]

Otras instrucciones como retain, dealloc tampoco son necesarias si se esta trabajando en el modo ARC (Automatic Reference Counting)

Ahora bien, estos cambios que se introducen en el compilador hacen que librerías como la que venia usando para consumir los servicios queden inservibles.  Sin embargo el compilador tiene una opción (flag) que se puede aplicar por cada archivo de clase de forma que ignore la característica de ARC para ese archivo al momento de compilar.  Instrucciones (en ingles) y unas buenas fotos de como hacerlo aquí

En este punto su solución debe compilar y ya tiene todo lo necesario para empezar a consumir servicios REST desde su aplicación iOS 4 o 5.

PD: Sobre ARC, Es importante aclara que esto es una nueva característica del compilador y no del encargado de la ejecución, así que no es ni parecido al Garbage Collector de .Net aunque podría confundirse, básicamente lo que esta pasando es que el compilador agrega las instrucciones a nuestro programa cuando lo compila

 

Juan Peláez
Arquitecto de Software

Desde hace más de un año en 3Metas, con  nuestro equipo de desarrolladores en Colombia, Bucaramanga, Manizales, Popayan, Medellin, Fort Lauderdale, Miami, Atlanta, Los Angeles, Shangai, Hawai y Australia hemos venido desarrollando aplicaciones para iOS tanto para iPad como para iPhone para clientes alrededor del  mundo.

One reply on “Consumiendo Servicios REST desde iOS 5. Parte 1. Preparando el proyecto.”

  1. Buenos dias Juan
    Soy de bucaramanga y estoy empezando en el mundo del desarrollo en iOS, estoy empezando a desarrollar una app para mi proyecto de grado, esta app debe conectarse a una BD y traer datos al dispositivo y por supuesto enviar datos a ella.
    La verdad he buscado en la web sobre Web Service, pero la información ha sido bastante confusa.

    Le agradeceria enormemente si me puede brindar alguna ayuda sobre el tema.

    Mil Gracias

Comments are closed.