Si utilizas RealBasic seguramente ya te habrás preocupado de proporcionar a los futuros usuarios de tus programas o utilidades todas las opciones “estándar” para que la información no quede cirunscrita a los propios dominios de la aplicación. Así, si tu programa trabaja o genera gráficos te habrás preocupado de incluir opciones de exportación en diferentes formatos típicos (al igual que seguramente hagas con los archivos de audio), y si maneja otro tipo de información seguramente también te hayás asegurado de incorporar las funciones que, como mínimo, permitan exportarlos como archivo de texto plano o como texto tabulado o CVS (separado por comas) con el objeto de facilitar a tus usuarios el que puedan reutilizar los datos generados por tu programa en otras aplicaciones (hojas de cálculo, bases de datos, tratamiento o editores de textos, etc.).

Además de todo lo anterior, en muchos casos lo mejor que puedes hacer es proporcionar a tus usuarios la libertad para que puedan trabajar con los datos generados por tu programa "en bruto" desde otras aplicaciones tal y como a ellos les gustaría obtenerlos y, lo más importante, añadiendo la flexibilidad que proporciona una de las mejores tecnologías desarrolladas por Apple: AppleScript.

Como seguramente ya hayas visto al consultar los diccionarios AppleScript de otras aplicaciones (a los que puedes acceder desde el Editor de Scripts, ubicado en la carpeta Aplicaciones), existen diccionarios verdaderamente completos que permiten automatizar acciones bastante complejas y completas; sin embargo, tu diccionario no tiene por qué llegar a resultar tan amplio y, especialmente, complejo de desarrollar sino que en la mayoría de los casos es suficiente con que te límites a diseñar un diccionario a base de Comandos: acciones directas que admitan opcionalmente una serie de parámetros. Por ejemplo, en una aplicación gráfica un comando podría tener la forma:

tell app “mi_aplicacion”

Escala ancho “numero” alto “numero”

end tell

Donde “Escala” es el comando propiamente dicho y “ancho” y “alto” sus parámetros (que en este caso sólo admitirían valores numéricos).

Este es el enfoque en el que nos centraremos para este artículo, principalmente porque es con el que te llevará menos tiempo implementar diccionarios AppleScript en tus aplicaciones.

Las herramientas

No necesitas gastar mucho dinero, aunque sí utilizar un editor de recursos en el que se incluyan plantillas para la edición del recurso "aete" (este es el descriptor que identifica a los recursos AppleScript).

Si tienes posibilidad de ejecutar la versión Mac OS 9.x o el entorno clásico encontrarás múltiples editores de recursos gratuitos que incluyen esta capacidad. El más típico de ellos es ResEdit (www.resexcellence.com/support_files/resedit.shtml) o EightyRez (www.panix.com/~gmcgath/EightyRez). Para Mac OS X te recomendamos que utilices el programa ResFool del que te puedes descargar una versión demo completamente funcional durante 30 días (19,95 dólares; www.ljug.com/sw/resfool). Aunque tiene algunas carencias, en lo que se refiere a su uso para la edición de recursos “aete” resulta sencillamente la mejor opción.

Adicionalmente, y aunque no la necesitarás para seguir este artículo, otra herramienta que encontrarás muy útil si deseas profundizar en el funcionamiento de los AppleEvents y su integración con RealBasic es AE Monitor 1.5 (30 dólares; software.oxalyn.com/aemonitor/index).

Evidentemente también necesitarás tener instalado en tu equipo el entorno de desarrollo RealBasic. No te preocupes si nunca has programado con RealBasic, si te interesa ver lo sencillo que resulta implementar un diccionario AppleScript (y ver cómo funciona), puedes descargar una versión de prueba completamente funcional, limitada a 15 días (y 15 minutos para los ejecutables que generes), desde el sitio web de Real Software: www.realsoftware.com/download.

Tu programa inteligente

Como en cualquier otro programa de ejemplo, no esperes que nuestro código haga grandes maravillas, pero te servirá a la perfección para que comprendas los fundamentos sobre la creación de un diccionario AppleScript y cómo puedes tratar posteriormente los eventos recibidos por el programa para que actúe en consecuencia, incluyendo en el último ejemplo la devolución de datos al propio guión AppleScript. Con esto último tendrás las bases sobre cómo puedes obtener datos de tu programa utilizarlos posteriormente en otras aplicaciones escriptables, cerrando por tanto un ciclo típico de automatización con AppleScript.

El diccionario AppleScript para nuestro programa contendrá unicamente dos comandos: “Hola” y “Adios”, cada uno de ellos con el parámetro adicional “Nombre” que se pasará como una cadena de texto. Por último si el nombre coincide con “Juan Nadie”, nuestro programa devolverá al guión AppleScript un texto.

A la hora de crear tu diccionario AppleScript ten en cuenta que puedes utilizar otros tipos de datos tanto para los valores que pases en los parámetros de los comandos como en la información que devuelvas con tu programa. Por ejemplo, entre los tipos de datos soportados por omisión por AppleScript podrás emplear: números enteros, números reales, reales de coma flotante, listas de valores (similares a las matrices de datos), etc. También te recomendamos que eches un vistazo a la ayuda en línea de RealBasic para que compruebes qué parámetros debes utilizar para devolver al guión un tipo de valor u otro.

1- Cumplir con las formalidades

Ejecuta ResFool y añade un nuevo recurso al documento. En la ventana que aparece debes seleccionar la plantilla de recuros “aete” (de las primeras en el listado de la izquierda). Es obligatorio que utilices el valor 0 (cero) como ID del recurso, ya que de lo contario AppleScript no podrá reconocer el diccionario. No es necesario que definas ningún nombre para el recurso (de hecho es preferible que lo dejes en blanco).

Una vez que se haya añadido a la ventana de recursos, haz doble clic sobre él para que ResFool lo abra en el editor incorporado.

Cuando lo hagas el programa te indicará que debes añadir como mínimo una Suite para editar el recurso. La primera que vamos a añadir es la que debe estar presente obligatoriamente en todos los diccionarios AppleScript, aunque sea vacía: la Required Suite.

Pulsa el botón “Add” para añadir la Suite. A continuación, introduce “Required Suite” en el campo Name, selecciona "Required" en el menú emergente de Code y el valor numérico “1” en los campos Level y Version.

Una vez hayas completado esta "formalidad" ya puedes crear la suite del programa y añadir en ella los comandos.

2- Añadir los comandos

Pulsa nuevamente el botón “Add”, utilizando en este caso los siguientes valores:

Nombre: miprograma

Code: mipr

Level: 1

Version: 1

Cuando crees las suites para tus propios programas ten en cuenta lo siguiente: puedes crear tantas suites como desees, aunque cada una de ellas debe tener un identificador Code único. Para definir dicho identificador Code puedes utiliza