Seleccionar página

Introducción a openFrameworks 0.8

por | Ago 12, 2013 | Tutoriales | 3 Comentarios

Qué es?

No es un programa, no es un lenguaje de programación. Es un conjunto de herramientas ordenadas o caja de herramientas, del inglés ToolKit. Permitidme hacer una analogía. Para hacer un guiso necesitaremos una olla y una cuchara de palo entre otras muchas cosas. La olla se puede comprar en una tienda especializada y la cuchara por ejemplo en un mercadillo, tienen origen diferentes pero ambas son necesarias para cocinar un buen guiso. Imagina que en vez de tener que ir a la tienda y luego al mercadillo, alguien ha seleccionado la mejor olla y le mejor cuchara para este tipo de guiso y te los ha colocado en cajones para que sepas donde están en tu cocina. Esa es la idea detrás de OF, es un grupo de librerías (utensilios) con una capa adicional (orden) que nos permite escribir programas creativos más fácilmente. La cocina la pones tú al igual que los ingredientes. Nuestra cocina va a ser Xcode y los ingredientes por supuesto nuestra imaginación.

Porqué OF y no otros?

Vamos a reformular esta pregunta: ¿Cuándo OF y cuándo otros? No se trata de que a partir de ahora todos tus proyectos tengan que estar escritos con OF. Hay que conocer las ventajas y desventajas que nos ofrece. Por ejemplo, si vas a hacer un efecto de audio, te recomiendo que vayas a hacerlo con PureData o Max, si quieres hacer una página web interactiva con gráficos generativos, me iría a por Processing. Si lo que quieres es crear una app con un uso intensivo de computer vision o una aplicación que corra en OSX, en Linux, en iOS, en Android, en Windows y en la RaspberryPi al mismo tiempo, estás en el lugar adecuado.

Instalación.

Vamos a suponer que tienes la cocina ya pintada y que sabes cómo encender los fogones. Esto es, para cada sistema operativo tener un entorno de desarrollo funcionando. Por motivos prácticos nos vamos a centrar en OSX y Xcode, pero si tenéis dudas sobre el resto de OSs, escribid en los comentarios o en facebook.
Xcode se descarga de la AppStore y el se instala solito, así de fácil. openFrameworks se descarga de aquí: http://www.openframeworks.cc/ y la carpeta se coloca en algún sitio de tu disco duro, yo por ejemplo dentro de mi ‘home directory’ tengo una carpeta llamada Code  y es ahí donde coloqué a OF. Una buena característica de openFrameworks es que podremos mover esta carpeta de sitio y todo seguirá funcionando. Esto es gracias a que OF usa rutas relativas, aunque esto conlleve algunos impedimentos. Al abrir la carpeta vemos la estrucura: Addons contiene las porciones ‘extra’ de código.

Esto es, las librerías que se actualizan más a menudo o librerías escritas por terceros. Tómalo como la carpeta de plugins. Apps, es el lugar donde escribir tus aplicaciones. Uno de los impedimentos que decía antes está relacionado con esta carpeta. Tu aplicación debe estar dentro de una subcarpeta de la carpeta apps. Por ejemplo: OpenFrameworks/apps/myApps/miAplicacion Si no es así, OF no será capaz de encontrarse a sí mismo y vamos a tener problemas.

Podemos crear otra subcarpeta, por ejemplo: OpenFrameworks/apps/paraCompartir/miAplicacionGratuita/ La idea es que dentro de apps haya ‘espacios de trabajo’ y dentro de ellos residan las aplicaciones.

Examples. Aquí hay muchos y muy útiles ejemplos, es sin duda uno de los mejores sitios para aprender OF, si te fijas tiene la misma estructura de antes, dentro de ejemplos hay espacios de trabajo y dentro de ellos proyectos.

Libs es donde residen todas las librerías que OF usa en su núcleo.

Docs es autoexplicativo, en Other no hay mucho  y en scripts hay algunas herramientas avanzadas que no vienen al caso. Volvamos a ejemplos, vamos a compilar uno de ellos. Empecemos por graphics/graphicsExample. Dentro de esta carpeta lo que nos encontramos es dos carpetas, bin y src, y algunos archivos sueltos.

Dentro de bin hay una tercera llamada data que se encuentra vacía. En data alojamos datos externos que no se compilan dentro de la aplicación sino como recursos, por ejemplo modelos 3D, archivos de configuración específicos y demás. En src (Source) tenemos nuestro código fuente, consta de 3 archivos o más pero por el momento solo nos interesa testApp.cpp, si lo abrimos con textEdit podemos ver que es simple y básicamente una larga lista de palabras, una receta. Pero cómo convertimos este texto en una aplicación?

Necesitamos compilarlo (traducirlo a lenguaje máquina). Abrimos el proyecto de Xcode (graphicsExample.xcodeproj) y esto es lo que nos aparece:

Xcode

Xcode

Para compilar hay que darle al botón run de la esquina superior izquierda.  Si al darle vemos que nada ocurre, ninguna ventana se abre, no hay ninguna maravillosa aplicación que se ejecute, quizás Xcode esté apuntando a compilar la librería de OF en sí, en vez de nuestra app, lo podemos mirar en target:

target

Si aun así os da un error de base se debe a que toda la parte de QuickTime está compilada en OSX 10.6 y 10.8 ya no incorpora este sdk, por lo que hay que descargarlo manualmente de aquí, 10.6 base

sdk: http://www.jamesgeorge.org/uploads/MacOSX10.6.sdk.zip  Se debe colocar en esta ruta:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk

Para acceder a ella, hay que hacer click con el botón derecho sobre la app Xcode y seleccionar mostrar contenido del paquete. Tras cerrar y volver a abrir Xcode hay que clickar sobre el proyecto en la barra lateral izquierda, bajo la columna project sobre el nombre del proyecto y en la pestaña Build Settings elegir el nuevo, (pero viejo) Base SDK 10.6. Si volvemos a compilar la aplicación todo estará arreglado.

sdkError

sdkError

Ejercicios. 

Usando este ejemplo y cambiando solamente src/testApp.cpp tratar de hacer un mondrian o un miro solo con ofFill(), ofSetColor(), ofRect y ofCircle.

Echar un vistazo al resto de ejemplos.

En el próximo artículo empezaremos a escribir nuestro primera aplicación y más adelante veremos algo de openCV que siguiendo con la analogía sería como usar una Termomix en nuestras cocina. 😉

Imágenes  de http://www.kynd.info/log/

¿Has conseguido completar los ejercicios?

Publica un comentario a continuación aportando tu opinión sobre este post y si tienes alguna duda respecto al tutorial o si tienes alguna propuesta para futuras guías de Open Frameworks!

Para los más atrevidos hemos creado un
botón de donaciones que nos ayuda a seguir con la web y crear nuevos contenidos interesantes como el que acabas de leer.

Muchas gracias y no olvides compartirnos en redes sociales, nos ayuda mucho!!