Usar CocoaPods en tu proyecto XCode

Seguimos con los tutoriales para adquirir herramientas para nuestros proyectos con XCode, hoy nos dedicaremos a CocoaPods.

Primero que todo ¿Qué es CocoaPods? Es básicamente un manejador de dependencias de librerías para proyectos de XCode. ¿Esa vaina no te dice nada? bueno, en términos sencillos resulta que hay mucha gente por allí desarrollando código para compartirlo libremente con el resto de humanidad, a eso lo llamamos OpenSource o código abierto; esta gente que te digo ha organizado su código en librerías, que son porciones de código funcional que puedes importar a tus proyectos, conservando sus derechos de autor (que los tienen claro, pero nos dejan usarlo). Para que sea más sencillo aún se han organizado en lugares públicos en internet llamados repositorios. ¿Te es familiar la palabra? Claro, hablamos de ello en el post de GitHub, y les han puesto índices para que podamos encontrarlos según su utilidad. Aja ¿Y CocoaPods? pues es un software que te ayuda a usar esas librerías y a garantizar que haya consistencia en las dependencias, ¿Y qué son las dependencias? Son otras librerías que necesitas para que el código funcione. Más info en https://cocoapods.org

¿Qué cosas podemos encontrar en CocoaPods? Librerías útiles como AFNetworking, que se encarga de hacer por nosotros operaciones de descarga de información de la red para ponerlas a disposición del app, librerías para manejar iBeacons, para tener informes detallados de errores en las aplicaciones y muchas cosas interesantes que te ahorran esfuerzo.

¿CÓMO SE HACE?

Lo primero que necesitamos es abrir la terminal, si, tu Mac tiene línea de comandos y por debajo sigue siendo básicamente un Unix. La puedes encontrar en el Finder en la ruta Aplicaciones -> Utilidades -> Terminal

Los Mac con versiones superiores a 10.7 (Lion) tienen ya instalado Ruby que es necesario para poder instalar CocoaPods, no hablaremos hoy de Ruby, solo lo actualizaremos para garantizar que tenemos la última versión, con el siguiente comando, es probable que te pida tu password:

$ sudo gem update --system

Verás como resultado algo como esto:

Captura de pantalla 2015-11-25 00.10.49

Ahora instalaremos CocoaPods, así:

$ sudo gem install -n /usr/local/bin cocoapods

La instalación puede tomar un tiempo, ten paciencia. Esta forma de instalarlo funciona aun si tienes instalado “El Capitan”.

Si no quieres o no puedes usar privilegios de root para la instalación, puedes consultar instrucciones detalladas (en inglés) en la página de CocoaPods

Suponemos que ya tienes tu proyecto creado, si necesitas un recorderis sobre ello lee el post sobre la primera app sin código. Ahora vamos a crear un archivo llamado PodFile en la carpeta raíz de tu proyecto. ¿Puedes crearlo por la interfaz gráfica? Si, si tienes instalado un editor de texto plano como Sublime Text puedes hacerlo directamente, para quienes no lo tengan lo explicaremos desde la terminal.

Nos ubicaremos en la terminal en la carpeta raíz de tu proyecto, si no sabes donde está ve al Finder y observa la ruta que te muestra abajo.

Captura de pantalla 2015-11-25 00.39.03

Si tu sistema operativo está en español (como el mío) debes saber que el nombre de la ruta original está en inglés, así que para entrar a la ruta mostrada arriba debes hacerlo en la terminal con el comando mostrado a continuación. Esto es Unix, ten cuidado en conservar mayúsculas y minúsculas:

$ cd /users/iyepes/Documents/XCode/hcoportfolio

Para verificar que estás en el lugar correcto puedes digitar el comando pwd que te mostrará tu ruta actual. Luego usaremos “nano” que es un editor de texto plano para crear el archivo así:

$ nano PodFile

Obtendremos una ventana como esta que nos permitirá editar el archivo.

Captura de pantalla 2015-11-25 01.06.21

Agregaremos el siguiente texto al archivo que indica, lugar donde están los el repositorio, versión del sistema operativo destino (fíjate que coincida con el target de tu proyecto) nombre de tu proyecto y el nombre de la librería, en nuestro ejemplo AFNetworking.

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.1'
workspace 'hcoportfolio'
pod 'AFNetworking'

Para guardar presionas ctrl+o (la letra o) y para salir ctrl+x

Asegúrate de que tu proyecto esté cerrado en XCode e instala la librería con el siguiente comando:

$ pod install

Si te da el error “pod: Command not found” es necesario cambiar los permisos de la carpeta donde fue instalado CocoaPods, esto puede pasarte si vienes de un upgrade a “El Capitan”. puedes hacerlo así:

$ sudo chmod -R 755 /usr/local/bin

Una vez aceptado el “pod install” debe comenzar la instalación.  Tardará dependiendo de la velocidad de tu conexión a internet, pues lo que hace el instalador es descargar la librería de internet y añadirla a tu proyecto. Al terminar te mostrará algo como esto.

Captura de pantalla 2015-11-25 02.07.47

Captura de pantalla 2015-11-25 02.21.16Observa la advertencia que dice cerrar las sesiones abiertas de tu proyecto y a partir de ahora abrirlo desde el archivo terminado como .xcworkspace, el otro que termina en .xcodeproj no tiene las librerías que acabamos de adicionar. Al abrirlo notarás que ahora hay dos carpetas principales, una con el nombre de tu proyecto y la otra con el nombre Pods

Hay un truco, estamos agregando a un proyecto en Swift una librería que está escrita en Objective-C, ambos son interoperables, es decir puedo usar código en ambos lenguajes en la misma aplicación, para ello crearemos un archivo de enlace del siguiente modo:
Captura de pantalla 2015-11-25 02.27.14

Creamos un nuevo archivo en nuestro Workspace usando File -> New -> File

Captura de pantalla 2015-11-25 02.30.44

 

Seleccionamos un nuevo archivo de Objective-C

 

Captura de pantalla 2015-11-25 02.32.30

 

Le damos cualquier nombre, lo borraremos después así que no importa

Continuamos con Captura de pantalla 2015-11-25 02.32.35 luego Captura de pantalla 2015-11-25 02.32.49 y posteriormente se nos presentará una ventana que nos preguntará como queremos crear el Objective-C bridging header.

Captura de pantalla 2015-11-25 02.34.14

Damos click sobre Create Bridging Header, esto solo hay que hacerlo una vez y aparecerá un archivo con el nombre del proyecto y como Bridging Header.Captura de pantalla 2015-11-25 02.42.34 Allí importaremos las librerías que necesitemos, por ejemplo:
Captura de pantalla 2015-11-25 03.06.26

#import "UIImageView+AFNetworking.h"
#import "UIActivityIndicatorView+AFNetworking.h"

No olvides borrar el archivo dummy.

¿Cómo usaremos esas librerías? Bueno, eso lo veremos en otro post.

UPDATE sobre swift

Si estás agregando un pod a swift vas a obtener este error:

Captura de pantalla 2016-02-26 21.52.33

Debes agregar en la parte superior de tu PodFile lo siguiente al comenzar:

use_frameworks!

source 'https://github.com/CocoaPods/Specs.git'

Medellín Libre busca donación de computadores para la comunidad.

LibreComo parte del proyecto de redes inalámbricas libres, llamado Medellín Libre, se ha venido realizando instalación de nodos, talleres de informática orientados al software libre y donaciones de equipos de cómputo para las personas de la Comunidad de Bello Oriente, equipándolos con el sistema operativo Linux.

Para este último aspecto, se buscan personas o empresas que tengan equipos fuera de uso y en buen estado, interesadas en realizar la donación de los mismos.

Técnicamente los equipos deben tener al menos 512 MB de RAM, 1.8 GHz de procesador.

En caso de requerirse un certificado de donación se puede tramitar por medio de la Fundación Solidaridad y Compromiso, entidad que ha estado trabajando en el desarrollo de este proyecto.

Para mayor información sobre el proyecto se puede visitar la página web http://medellinlibre.co/

Contacto: ciro.julian @ gmail.com

Aplazado Encuentro Púrpura: Mujeres y Tecnología – Núcleo Andino

IMG_2754m

Informamos que se ha aplazado el Encuentro Púrpura: Mujeres y Tecnología – Núcleo Andino. Próximamente se estará anunciando la nueva fecha.

El Encuentro Púrpura: Mujeres y Tecnología – Núcleo Andino 2013 será la oportunidad de generar un espacio en la Ciudad de Bogotá para el análisis y discusión de temáticas relacionadas con la participación de la mujer en el acceso, uso, desarrollo y aplicación de las herramientas tecnológicas existentes.

Los ejes temáticos del evento son:

  • Género y Tecnologías Libres
  • Brecha Digital de Género
  • Software y Cultura Libre
  • Ciberfeminismo – Hactivismo Feminista
  • FOSSchix Colombia.

Más info en la página de FOSSChixCo

Encuentro Púrpura: Mujeres y Tecnología – Núcleo Andino – Fecha por confirmar

IMG_2754m

Informamos que se ha aplazado el Encuentro Púrpura: Mujeres y Tecnología – Núcleo Andino

Lugar: Por confirmar

El Encuentro Púrpura: Mujeres y Tecnología – Núcleo Andino 2013 será la oportunidad de generar un espacio en la Ciudad de Bogotá para el análisis y discusión de temáticas relacionadas con la participación de la mujer en el acceso, uso, desarrollo y aplicación de las herramientas tecnológicas existentes en la actualidad.

Los ejes temáticos del evento son:

  • Género y Tecnologías Libres
  • Brecha Digital de Género
  • Software y Cultura Libre
  • Ciberfeminismo – Hactivismo Feminista
  • FOSSchix Colombia.

Agenda de Actividades

Por confirmar

Más info en la página de FOSSChixCo

FLISOL Medellín 2013 en el SENA este 4 de mayo

Flisol-Logo-Small1

El Festival latinoamericano de Software Libre (Flisol) se realizara este sábado 4 de mayo desde las 8:30 de la mañana en el Centro de Servicios y Gestión Empresarial del SENA Medellín, en la calle Calle 51 No. 57-70.

Este evento tiene como objetivo promover la apropiación social de la tecnología, la innovación, la divulgación del conocimiento, la investigación, entre otras nuevas propuestas de ciudad a través de la promoción del uso del software libre y el Open Source, dando a conocer al público en general su filosofía, alcances, avances y desarrollo.

Durante esta jornada se realizaran conferencias, desconferencias y charlas, al tiempo que se ofrecerán ponencias y talleres sobre temáticas locales, nacionales y latinoamericanas en torno al software libre.

El ingreso a este festival es gratuito y las personas pueden llevar su equipo de cómputo si desean instalar programas de software libre y sistemas operativos Linux.

Página web del evento http://www.flisolmedellin.org

Los conferencistas invitados son:

Ponente: Juan Fernando Villa
Conferencia: la Innovación social a través del Open Source
Temas: Apropiación social de la tecnología y la innovación.
Hora: 9:00-10:00

Ponente: Fernando Giraldo
Conferencia:sobre redes libres
Temas: Conectividad y redes de datos
Hora: 10:00-11:00

Ponente: Sebastian Velásquez
Conferencia:subete a mi nube que es libre
Temas: Computación en la nube
Hora: 13:00-14:00

Ponente: Christian Gutierrez
Conferencia: Aplicaciones de Tiempo Real
Temas: Telecomunicaciones y Programación
Hora:14:00-15:00

Ponente: Oscar Daniel Gómez Padilla
Conferencia: Estrategia de protección de los activos intangibles y producción colaborativa
Temas: Jurisprudencia Electrónica y Crowdsourcing
Hora:15:00-15:45

Ponente: Carlos Alberto Ramirez
Conferencia: Creación de video juegos con unity y Blender y realidad aumentada
Temas: Modelado en 3d, Animación Digital, Industrias creativas y Vídeo Juegos de Ultima generación.
Hora: 16:15-17:15 – 9:00-10:30

Ponente: Duvan Gallego
Conferencia: El software libre en las empresas
Temas: Emprendimiento, Responsabilida Social Corporativa, Reducción de Costos con Aumento en la producción.
Hora: 17:15-18:00

Ponente: Steven Zuluaga
Conferencia: Automatización de tareas mediante scripts
Temas: Automatización, Aceleradores de Productividad
Hora: 9:00-10:30

Ponente: Willinton Acevedo
Conferencia: Linux en su simplicidad
Temas: GNU/Linux, Informatica, Open Source
Hora: 13:00-14:30

todo el día habra desconferencias, actividades expontaneas y mucho mas.

No te puede perder este evento!

Invita a tus amigos y amigas a conocer un propuesta diferente e interesante para la ciudad de medellín

Difunde esta información a tus amigos y diles que nos acompañen en redes sociales con el Hash Tag #flisolmedellin

Gracias por tu tiempo! nos vemos temprano en el FLISOL!