Integración continua, Jenkins e iOS

Logo Jenkins¿Qué es la integración continua?

La integración continua  (Continuous Integration o CI) tiene como objetivo principal comprobar que cada actualización del código fuente no genere problemas en una aplicación que se está desarrollando. En un marco de trabajo en el que varios desarrolladores suben actualizaciones constantes de código fuente, fusionando el trabajo entre ellos, la integración continua permite que se compruebe en cada commit, si el nuevo ejecutable generado con los nuevos aportes, sigue funcionando correctamente con todos los test creados anteriormente. De esta forma se detectan los posibles errores en una fase muy temprana, identificando fácilmente cuales son los cambios recientes y la corrección se hace mucho más sencilla.

Read more

Cómo trabajar contra un API Rest desde iOS de forma cómoda

Postman logoUna de las tareas más habituales que los desarrolladores de iOS tenemos que lidiar en el día a día, es la comunicación con una API Rest, enviarle una petición con parámetros concretos, y recibir una respuesta, normalmente en JSON. Si esa API la están desarrollando también en el momento que tú haces tu aplicación, siempre te encuentras con algún fallo que en un primer momento no sabes si es culpa de la respuesta de la API o la interpretación que estás haciendo tú en tu código. Para poder saber rápidamente de que lado está el fallo, podemos usar una herramienta muy útil en estos casos, llamada Postman.

Read more

Cómo hacer libros para iOS

Después de haber estado investigando como hacer revistas para iOS el paso lógico era buscar como hacer libros en iOS. En este caso Apple ha creado una aplicación sencilla, fácil de usar, y muy potente, llamada iBook Author, que permite crear libros impresionantes y publicarlos con el mínimo esfuerzo. La interfaz de esta aplicación (solo para Mac) recuerda mucho a un mítico Word o Pages, con componentes para hacer interfaces muy vistosas (llamados widgets), como carruseles de fotos, incrustar vídeos, encuestas (con posibilidad de elección de fotos o o imágenes), imágenes interactivas (con zonas de pulsación, etiquetas… etc), incluso poder incrustar tu propio código HTML.

Read more

Seguir usando Snow Leopard con iOS 5.1 para no pasarte a Lion y su Xcode

iOS 5.1

Si has encontrado este post, seguro que te encuentras en la misma situación que nosotros hace unos días, cuando uno de los iPhones que usamos para desarrollo lo actualizamos, más o menos sin querer. La situación era que cuando lo conectábamos al Xcode para probar las aplicaciones que estamos desarrollando nos daba un error de compatibilidad, le faltaba el SDK del 5.1 para poder continuar. Buscando información la conclusión a la que llegas es actualizar el Xcode 4.2 a una nueva versión, pero esa nueva versión en la 4.3.1 y solo está hecha para Lion. Aquí tenemos el problema, ¿actualizamos todos los Macs de desarrollo a Lion, sin tener en cuenta si modificará otros entornos de desarrollo con otras tecnologías que están montados en ellos? Nos parecía un poco arriesgado, así que decidí buscar otra solución. Después de unas cuantas vueltas la encontré. Se trata de bajarte el “Xcode 4.3.1 for Lion” montarlo en tu Mac, y luego copiar solo los archivos necesarios para poder compilar con el SDK 5.1, para el iPhone y para el emulador. Los pasos son:

Descargar Xcode 4.3.1 for Lion

  • Montar el .dmg que se ha descargado.
  • Ejecutar en el terminal estos comandos:
sudo cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/ 
sudo cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ 
sudo cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/5.1 (9B176) /Developer/Platforms/iPhoneOS.platform/DeviceSupport/ 
cd /Developer/Platforms/iPhoneOS.platform/DeviceSupport/ 
sudo rm -f ./Latest 
sudo ln -s ./5.1 (9B176) ./Latest 
  • Reiniciar el Mac (importante, si no fallará).
  • Hacer un clean de los proyectos antes de volver a compilar.

Espero que os sirva.