Quartz Composer - Un entorno para la programación visual
Lo primero que notas al abrir Quartz Composer es que no es como las demás herramientas de desarrollo que hayas visto. Se parece mucho más a un programa de composición de vídeo como puede ser Flame, Nuke o Fusion. Y es que en esencia es lo que es: un compositor de animaciones / vídeo, pero para uso más orientado al desarrollo de aplicaciones gráficas (aunque también las composiciones echas en él pueden ser importadas en programas de edición de video como Final Cut). En lugar de escribir cientos o miles de líneas de código manipularemos varias librerías gráficas del sistema (las tecnologías nombradas más atrás) de forma visual procesando objetos llamados “patches” (podríamos traducirlos como parches, pero yo me referiré a ellos en la demo por su termino original, “patch”). Cuando se trabaja en una composición,añadiendo patches y conectándolas, puedes ver el resultado en un visor (la “viewer window”). Cada uno de los cambios que se hagan serán reflejados inmediatamente en el visor, esto quiere decir que no necesita ningún tipo de compilación. Un patch es similar a las funciones o procedimientos de los lenguajes de programación tradicionales. Se les puede proveer de parámetros de entrada y el patch se ejecutará y producirá algún resultado. Los círculos de la columna de la izquierda representarían lo diferentes parámetros que el patch acepta. Los círculos de la columna de la derecha son las salidas que el patch produce. Los tipos de entradas y salidas que acepta y produce respectivamente dependen de la funcionalidad del patch. Por ejemplo, el patch Math (lo utilizaremos en la demo) acepta los parámetros: Initial Value, Operation #1, Operand #1 y retorna un Resulting Value, los tipos de estos valores son: Number, Index, Number y Number. ¿Qué cómo se sabe esto? Pues yo simplemente dejo el puntero del ratón sobre el nombre del parámetro y me sale una descripción detallada de él (Descripción, tipo y valor que tiene en ese momento). Los parámetros de entrada pueden ser modificados de dos formas diferentes. La primera es por medio de la ventana “Inspector”, en la cual podremos modificar otras muchas cosas además de sus parámetros de entrada, para mostrar esta ventana hacemos click sobre un patch y pulsamos “manzana + i”. La segunda opción es conectar un valor de salida de otro patch al parámetro de entrada de otro diferente. Como vemos en la imagen de la izquierda: La ventana Inspector nos muestra los valores de entrada del patch Random, mientras que el valor de salida (Value) de este se conecta al parámetro de entrada del patch Math, Initial Value. Cuando la composición se inicie, el patch Random generará un número aleatorio entre 0 y 10, y lo devolverá como valor de salida, pasando al Initial Value del patch Math. Como vemos, básicamente el flujo de trabajo en Quartz Composer consiste en seleccionar de la Patch Library los patches que queramos usar y conectarlos entre ellos para lograr el efecto deseado. Así pues, como lo mejor para entender algo es un buen ejemplo, vamos a ello.