Iniciación a AppleScript

Apple incluye dentro de su sistema operativo para ordenadores de escritorio y portátiles un lenguaje de scripts conocido como AppleScript. Este lenguaje nos permite crear tareas y pequeños programas para automatizar rutinas o mejorar el funcionamiento de algunas aplicaciones.

En la documentación de AppleScript podemos encontrar el siguiente texto descriptivo:

AppleScript es un potente y versátil lenguaje para la creación de scripts que se incluye en Mac OS X. Puede utilizar AppleScript para crear funciones rápidas, automatizar tareas repetitivas o incluso crear aplicaciones personalizadas que le ahorren gran cantidad de tiempo. AppleScript le permite controlar las aplicaciones que admiten el uso de scripts.

Un script de AppleScript consiste en una serie de comandos en inglés que realizan acciones sobre objetos. Ejemplos de acciones: open, close, get the name of (es decir, abrir, cerrar, obtener el nombre de). Los objetos pueden ser, por ejemplo, una aplicación, una ventana o un ajuste de preferencias.

Un script puede controlar una o más aplicaciones. Para que una aplicación permita el uso de scripts, debe definir los términos que se pueden emplear en los scripts. Mac OS X incluye varias aplicaciones que aceptan scripts.

Herramientas para desarrollar en AppleScript

Mac OSX incluye una aplicación para editar, compilar y depurar los scripts que desarrollemos. Esta aplicación se llama Editor AppleScript. En la documentación de la aplicación encontramos la siguiente definición:

Editor AppleScript es una aplicación para crear scripts muy fácil de utilizar que permite leer, escribir, grabar y guardar scripts de AppleScript.

Estas son algunas características de Editor AppleScript:

  • Ofrece una interfaz unificada y fácil de usar
  • Le permite buscar y reemplazar en el texto del script
  • Realiza un ajuste automático de las sentencias de gran longitud
  • Le permite deshacer varias acciones
  • Ofrece scripts de menú de función rápida para agilizar la redacción de scripts
  • Ofrece soporte para los servicios de las aplicaciones
  • Le permite acceder a scripts de aplicación mediante la paleta Biblioteca.
  • Ofrece un Asistente para Scripts que le ayuda a completar las sentencias
  • Ofrece el historial de resultados y el historial de registro de eventos para que pueda examinar qué ocurre en un script

Editor AppleScript está incluido en Mac OSX. Está situado en la carpeta Utilidades, de la carpeta Aplicaciones del disco duro.

Conceptos básicos de AppleScript

Cuando se ejecuta un script, AppleScript envía eventos Apple al sistema o a las aplicaciones que llevan a cabo los comandos. Estos eventos Apple son mensajes enviados a objetos del sistema o de aplicaciones instaladas en el sistema. Las aplicaciones o el sistema devolverán un resultado al script. Por ejemplo, si un script envía una petición a una aplicación para obtener el nombre de un objeto, la aplicación devuelve el nombre o un mensaje de error si no pudo realizar la petición.

No es necesario conocer los eventos Apple en profundidad ya que el editor AppleScript y sus funciones nos simplifican la tarea.

Applets

Un script que se guarda como aplicación se llama «aplicación AppleScript» o «applet». Los applets se ejecutan automáticamente al abrirse y realizan los comandos del script. Los applets pueden estar formados por solo un par de comandos, o ser aplicaciones más complejas.

Los applets pueden guardarse como editables o como solo ejecutables. Un applet editable sigue conteniendo el texto del script, por lo que puede editarse y volver a compilarse en cualquier momento.
Al guarda un script como solo ejecutable, la parte de texto editable se elimina y el archivo ya no puede modificarse ni volver a compilarse.

Ejemplo simple

Vamos a realizar la primera aplicación que todo desarrollador hace al aprender un lenguaje de programación, el conocido Hola mundo!. Abre el editor AppleScript y pega el siguiente código de ejemplo:


(*
Ejemplo 1:
Hola Mundo
*)
on run
say "Hola mundo!"
end run

Ahora ejecuta nuestro script bien pulsando la combinación Comando+R o usando la opción Ejecutar del menú Script del editor AppleScript. El sistema verbalizará el mensaje Hola mundo! utilizando la voz del sistema.

Automator, programación simple para usuarios de Mac OSX

Apple en su sistema operativo para ordenadores de escritorio y portátiles, más conocido como Mac OSX, incluye un lenguaje de script para poder realizar operaciones de forma controlada. Este sistema de scripts es conocido como Apple script. Con este sistema se pueden realizar varias operaciones así como ampliar funcionalidades del sistema operativo o algunas aplicaciones. El problema es que es necesario conocer el lenguaje de programación utilizado por Apple script y tener conocimientos de programación.

Apple es cosciente de las limitaciones de muchos usuarios que carecen de los conocimientos necesarios para utilizar Apple script pero conoce la necesidad de proporcionar alguna herramienta que permita a un usuario sin conocimientos en programación crear mecanismos para realizar, de forma automática, tareas monótonas y mecánicas. Por esta razón Apple ha desarrollado Automator.

Automator

Apple describe Automator de la siguiente forma:

Automator es un innovador asistente de procesos de automatización que facilita la automatización de las tareas repetitivas. Con Automator, podrá evitar las tediosas tareas de programar y crear scripts que suelen ser necesarias para crear procesos de automatización. Cada uno de los pasos de un proceso automatizado, denominados acciones, pueden ensamblarse en una tarea completa arrastrando las acciones hasta un flujo de trabajo de Automator. Puede ejecutar los flujos de trabajo finalizados tantas veces como desee e incluso compartirlos con otros usuarios.

De forma resumida podemos decir que Automator es una herramienta de desarrollo para crear macros sencillas utilizando las aplicaciones y servicios del sistema para que el ordenador realice por nosotros las tareas repetitivas y monótonas.

Automator trabaja con acciones y flujos de trabajo simplificando el proceso de crear macros y pequeños scripts.

Flujos de trabajo

Un flujo de trabajo consiste en un conjunto de tareas que deben realizarse en un orden determinado para alcanzar un objetivo. Cada una de estas tareas recibe un elemento, lo manipula, y lo pasa a la siguiente tarea del flujo de trabajo. Un ejemplo de la vida real, por ejemplo, sería el que podemos experimentar a la hora de convertir un documento de texto en un audio que escuchamos en nuestro reproductor MP3. El flujo sería algo similar a lo siguiente: descargamos el documento de texto, lo abrimos con nuestra aplicación de conversión texto a voz, cogemos los archivos MP3 generados y los pasamos a nuestro reproductor MP3 para, posteriormente, comenzar a escuchar el documento donde queramos. En este ejemplo el contenido del documento es el elemento que las distintas tareas manipulan hasta alcanzar el objetivo final.

Acciones

Las acciones son los distintos mecanismos de manipulación que Automator posee. En nuestro ejemplo serían las diversas tareas que realizamos con el contenido del documento. Automator posee una librería de acciones para crear nuestros flujos de trabajo. Esta librería se ve ampliada con cada nueva aplicación instalada en el sistema operativo que incluya compatibilidad con Apple script o Automator. Esto hace que Automator vaya siendo cada vez más potente.

Aprender con un ejemplo

En el ámbito de la programación el camino del aprendizaje suele basarse en la experimentación práctica así que aprendamos Automator con un pequeño ejemplo. Vamos a crear un servicio para el sistema que nos permita convertir ficheros de texto plano en archivos de audio en formato AIF, soportados por el reproductor de MP3 de Apple. De esta forma tendremos un rudimentario sistema para convertir ficheros de texto en audio para escucharlos donde queramos.

Para ayudar a los usuarios con discapacidad visual a seguir este pequeño tutorial se incluirán indicaciones para los usuarios de VoiceOver, el lector de pantallas de Mac OSX para usuarios con discapacidad visual. Aquellos usuarios que no utilicen este producto de apoyo pueden ignorar estas indicaciones.

Primer contacto con Automator

En primer lugar debemos abrir Automator, para ello debemos buscar la aplicación en la carpeta de aplicaciones del sistema.

Una vez abierto nos mostrará un asistente que nos preguntará que tipo de flujo de trabajo queremos crear. La ventana del asistente proporciona una descripción de cada tipo de flujo de trabajo disponible. Si leemos la descripción para el tipo Servicio podremos leer lo siguiente:

Los servicios son flujos de trabajo contextuales disponibles a través de Mac OS X. Aceptan texto o archivos de la aplicación activa o del Finder. Los servicios están disponibles en el menú Servicios

. Esta descripción es la más cercana a lo que necesitamos para nuestro ejemplo por lo que seleccionaremos esta opción y pulsaremos el botón Seleccionar.

El área de trabajo

A continuación nos aparecerá la ventana de trabajo de Automator con el flujo de trabajo Sin título. Ha de recorddarse que Automator es una herramienta de desarrollo por lo que el consumo de recursos para crear flujos de trabajo es grande así que no os asusteis si el equipo empieza a ir lento.

En el centro de la ventana veremos una tabla con las tareas de nuestro flujo de trabajo. Esta tabla es reconocida por voiceOver con el texto Sin título flujo de trabajo. Al profundizar sobre esta tabla encontraremos nuestra primera acción del flujo. Es una tarea de recepción identificada por el texto El servicio recibe la selección de. VoiceOver identificará esta tarea con el texto texto en El servicio recibe la selección de cualquier aplicación Reemplaza el texto seleccionado grupo (1 de 1). Podemos modificar algunos parámetros de esta tarea para ajustarlos a nuestras necesidades. Los usuarios de VoiceOver deberán profundizar en la tarea para cambiar los diversos parámetros que posee.

Ajustando la acción a nuestros requisitos

Para nuestro servicio queremos recibir un documento de texto desde el Finder, que es nuestro explorador de archivos. En el primer parámetro seleccionaremos Documento y para el segundo parámetro seleccionaremos Finder. VoiceOver verbalizará, al leer la tarea, lo siguiente: documentos en El servicio recibe la selección de Finder Reemplaza el texto seleccionado grupo (1 de 1)

Para cambiar el valor de cada parámetro debemos hacer click sobre él y nos aparecerá una lista desplegable con todos los posibles valores.

Añadiendo más acciones

Ahora debemos añadir, a continuación de la acción para recibir el documento, una nueva acción para convertir el fichero de texto plano en un fichero de audio. Mac OSX proporciona un comando del terminal para verbalizar mensajes de voz, es el comando say. Este comando, entre sus parámetros, nos permite crear un fichero de audio en lugar de verbalizar el texto. Es la forma más rápida para convertir un texto a audio. Por esta razón utilizaremos para este ejemplo este comando del terminal.

Para poder añadir comandos del terminal en nuestro flujo de trabajo debemos utilizar una acción de tipo Ejecutar el script Shell. Para ello nos dirigiremos a la biblioteca de acciones, los usuarios de VoiceOver deben profundizar en el elemento vista dividida de descripción de acciones dividir grupo y, posteriormente, profundizar sobre vista dividida de biblioteca de acciones dividir grupo. Encontraremos una tabla de la biblioteca de acciones y una tabla de acciones. En la segunda tabla se mostrarán las acciones asociadas a la categoría que representa la primera tabla. Para nuestra acción debemos elegir la categoría Utilidades en la primera tabla, así podremos seleccionar el elemento Ejecutar el script Shell. Pulsa Enter para añadir esta nueva acción a nuestro flujo de trabajo.

Ahora debemos ajustar la nueva acción para que ejecute un pequeño script del terminal que convierta el documento de texto a un archivo de audio utilizando el comando say. La acción de ejecución del script, identificada por VoiceOver como Ejecutar el script Shell acción (2 de 2), debe recibir algunas modificaciones para que se adapte a nuestros requisitos. El parámetro Pasar datos de entrada:, con valor por defecto a string, debe tener el valor como argumentos. A continuación de dicho parámetro hay un campo de texto donde se ve un pequeño script de consola por defecto. El código por defecto del script es el siguiente:


for f in "$@"
do
echo "$f"
done

Podemos editar el código para modificar el comando echo o sustituir todo el script por el siguiente código:

Nuestro flujo de trabajo está terminado. Ahora debemos guardarlo utilizando la opciem>Guardar del menú Archivo de la barra de menú. Nos preguntará por un nombre para nuestro flujo de trabajo, podemos nombrarla como Convertir a voz

Una vez guardado pertenecerá a los servicios de Finder. Cerremos Automator y busquemos en Finder un archivo de texto plano. Al utilizar el menú contextual del archivo, los usuarios de voiceOver deben utilizar la combinación Control+ALT+Mayúsculas+M y el resto de usuarios hacer click con el botón derecho, nos aparece una opción con el nombre de nuestro flujo de trabajo. Al seleccionar esta opción comenzará a ejecutarse nuestro flujo de trabajo, visualmente se verá una rueda dentada trabajando, los usuarios de VoiceOver no tendrán ningún tipo de feedback. El proceso tardará dependiendo del tamaño del archivo que queramos convertir.

Hay muchas mejoras que se le pueden hacer a este flujo de trabajo: soportar documentos en formato RTF, poder seleccionar otra voz, añadir un feedback para los usuarios de VoiceOver, etc. Pero como iniciación a Automator creo que es suficiente.

Apple, su nube, sus productos y la accesibilidad

Ayer tuvo lugar en San Francisco la WWDC 2011, el congreso para desarrolladores para plataformas de Apple. Durante la presentación Steve Jobs hizo de maestro de ceremonias para presentar las novedades de la empresa para sus sistemas operativos y algunas novedades más.

Nube, servicios y aplicaciones

Durante toda la presentación se hicieron demostraciones de aplicaciones propias de Apple, se dieron cifras y más cifras del éxito de la empresa, sus plataformas y los desarrolladores que las utilizan y se habló de la tendencia a tener todos los datos de forma ubícua a través de Internet, es lo que se llama comúnmente la Nube. Pero, como viene siendo habitual, lo que más nos interesa son las novedades en accesibilidad.

Recordemos que las versiones evaluadas son versiones beta por lo que algunos cambios pueden desaparecer, como ya sucedió con las voces en español para Mac OSX, o pueden aparecer muchas más novedades.

iOS 5

iOS, el sistema operativo para dispositivos móviles de Apple, llega a su versión 5. Esta actualización gratuita que estará disponible en otoño presenta conceptos ya adoptados por otras plataformas para dispositivos móviles. Ahora no dependemos de un equipo de sobremesa para sincronizar y actualizar el sistema y las aplicaciones. El iPad, el tablet de Apple, ha sido adquirido por muchas personas mayores o con muy pocos conocimientos en informática ya que su interfaz presenta muy pocas barreras de acceso para este tipo de perfil de usuario. Apple ha recibido muchas peticiones y quejas de estos usuarios y familiares ya que carecen de un equipo informático en casa para sincronizar y actualizar sus iPads. Con el acercamiento de Apple a la nube iOS 5 incorpora lo que han denominado PC free, que es simplemente la posibilidad de actualizar aplicaciones, sistema operativo y las compras hechas en la iTunes store, la tienda de música y contenidos multimedia de Apple, sin necesidad de sincronizar con un equipo de sobremesa. Ya si es posible tener un iPad en casa y nada más. El iPhone y otros dispositivos iOS también se benefician de estas características permitiendo acceder a documentos y otros recursos de forma inmediata y que todos los equipos pertenecientes a un mismo usuario, sean iOS, Mac OSX o Windows, estén perféctamente sincronizados de forma transparente para el usuario. Todo esto gracias a iCloud, la nube de Apple que, en su versión básica, es gratuita.

iOS 5 incluye mejor gestión de las notificaciones, más personalizaciones tanto en aspectos sonoros como gráficos, y mejor experiencia de usuario al simplificarse algunos procesos.

Novedades en accesibilidad

Apple ha incluido muchas mejoras en accesibilidad en esta versión de iOS. A destacar la inclusión de un nuevo perfil de usuario con discapacidad: Usuario con baja destreza. En las personalizaciones para este perfil de usuario se incluye la posibilidad de modificar el tiempo necesario para ejecutar gestos múltiples, como el doble tap, o la posibilidad de crear y modificar nuestros propios gestos para realizar acciones en nuestro dispositivo.

El perfil de usuario hipoacúsico ahora puede definir patrones de vibración para cada contacto y para ciertos eventos, así podrá identificar llamadas y mensajes simplemente atendiendo a la vibración que realiza su dispositivo.

Zoom no ha sufrido muchas modificaciones pero una nueva característica de verbalizar el texto seleccionado permite, ahora, poder escuchar con la síntesis de voz el texto magnificado. No es la mejor solución para aquellos usuarios que necesitan ejecutar VoiceOver y zoom a la vez pero si se satisfacen las necesidades de aquellos usuarios que usan la magnificación y necesitan escuchar lo escrito para poder estar seguros de qué están leyendo.

VoiceOver para iOS ha sido mejorado notablemente, ahora se permiten más personalizaciones pero sigue sin aparecer la posibilidad de personalizar por aplicación. Nuance ha proporcionado las nuevas voces para iOS. La calidad en la dicción ha sido bastante mejorada pero los usuarios que utilizamos la voz masculina para español de España nos encontraremos que la nueva voz es femenina. Algo que han solicitado muchos usuarios aunque, personalmente, prefiero una voz masculina para trabajar, cosas de costumbres.

El teclado ha sido mejorado de varias formas: los usuarios que escriben con pulgares encontrarán una distribución de teclado más acorde con sus necesidades, se ha incluido un diccionario de abreviaturas para escritura rápida esto es, por ejemplo, si escribimos la palabra miMail se escribirá tyflos@hotmail.com para esto debemos personalizar nuestras abreviaturas en los ajustes del teclado en iOS.

Voice control no ha recibido mejoras importantes en esta versión. Recordemos que son versiones beta y no incorporan todas las novedades que aparecerán en el otoño de este año.< Esperemos que Nuance también colabore en esto.

Mac OSX Lion

La nueva versión del sistema operativo de Apple para equipos de sobremesa y portátiles saldrá a la venta en el mes de julio. Su novedad más importante es que su distribución y venta se hará a través de Internet usando la Mac App store, la tienda on-line de aplicaciones para Mac OSX. De esta forma Apple quiere eliminar los soportes físicos, la piratería y las esperas y desplazamientos para adquirir un producto software. Su precio, unos $30, y la posibilidad de instalar esta versión del sistema operativo en cualquier equipo que tengamos asociados a nuestra cuenta de iTunes hace pensar que han conseguido evitar la piratería de software. Al menos en eso coincidimos muchos de los que hemos analizado este movimiento mercantil.

Mac OSX Lion se parece, cada vez más, tanto en su aspecto visual como en su uso a la plataforma iOS, el sistema operativo de Apple para smartPhones y tablets. Las barras de desplazamiento desaparecen, todo, o casi todo, se accede mediante gestos sobre una superficie táctil y se sigue un modelo de trabajo y visualización minimalista en donde toda la pantalla es ocupada por una aplicación para centrarnos en nuestro trabajo. Esto no implica la posibilidad de usar múltiples ventanas, espacios o modificar el aspecto visual del entorno.

En mi opinión Apple busca unificar las experiencias de usuario a la hora de usar un equipo de sobremesa Apple y un tablet de la misma marca, el conocido iPad. De esta forma un usuario sólo tiene que aprender a manejar un entorno. Esto es ideal para aquellos usuarios que bien carecen de ordenador y sólo tienen un tablet o aquellos usuarios que tienen un PC con Windows o Linux y usan un iPad pero desconocen los equipos con Mac OSX y temen la experiencia de tener que aprender a manejar un nuevo entorno. Recordemos que Apple es una empresa, quiere ganar usuarios y su dinero, presta muchísima atencióna la experiencia de usuario y al diseño de sus productos.

Novedades en accesibilidad

Mac OSX Lion se ha convertido en el primer sistema operativo comercial y privado que se considera accesible desde la caja. Otras versiones anteriores de Mac OSX podían considerarse así para los angloparlantes, ya que se incluían voces en inglés. Pero ahora, por fin, Mac OSX incluirá voces en más de 20 idiomas.

Dentro de las voces en español se incluyen 2 voces para español de España y otras dos voces para español de latinoamérica. Interesante mencionar que instaladas de serie vienen las voces de baja calidad, muy rápidas pero muy metálicas. Pero a través del servicio de actualizaciones y extensiones del sistema podemos instalar voces de alta calidad. Puede que las nuevas voces de iOS, propiedad de Nuance, también se utilicen en esta plataforma.

VoiceOver para Mac OSX se ve reforzado con más gestos y la posibilidad de crear acciones un nuevo concepto para personalizar nuestro lector de pantallas para crear atajos rápidos o ampliar la funcionalidad del mismo. El soporte para Apple script se ha visto mejorado y se pueden crear scripts para mejorar el acceso a aplicaciones que posean carencias de accesibilidad.

Zoom, el magnificador integrado en el sistema, se compatibiliza con los efectos de zoom propios del sistema y se mejoran las animaciones y el soporte de color durante la magnificación.

Los comandos de voz son fácilmente ampliables para nuevas aplicaciones pero sigue sin añadirse soporte para otros idiomas que no sea el inglés. Esperemos que esta colaboración con Nuance por parte de Apple nos traiga un soporte de reconocimiento de voz para varios idiomas pronto.

El soporte de braille ha sido mejorado incluyendo tablas internaciones de braille y el soporte para más dispositivos de lectura braille.

Conclusiones

Apple quiere llevar a sus productos a la nube y sus nuevos servicios y no se olvida de los usuarios con discapacidad. Cierto que aún faltan cosas por mejorar en cuanto a la accesibilidad de sus productos pero ojalá otras empresas prestasen el mismo interés en la usabilidad y la accesibilidad de sus productos.

No me considero fanático ni aférrimo defensor de una empresa o un producto. Mi filosofía en cuanto a adquisición de productos y servicios se puede resumir en la siguiente frase: Uso lo que me dejan usar y premio al que lo hace bien. Con esto quiero decir que, aunque uso productos en otras plataformas como Windows, GNU Linux, Symbian o Android, por ahora Apple tiene mi confianza para seguir utilizando sus productos con tranquilidad. Tanto por diseñarlos con accesibilidad como porque la alternativa de otros fabricantes es pobre en su experiencia de usuario para los usuarios con discapacidad o porque conseguir que el producto resulte accesible implica costos adicionales para adquirir los parches de accesibilidad.

Petición de mejora en accesibilidad para Android

Internet, con la llegada de las redes sociales y los servicios de administración electrónica, ha hecho que la gente pueda actuar, de forma pacífica, apoyando, pidiendo o participando en muchas iniciativas sociales.

Muchos conocemos los problemas de los productos de Google en cuanto a su accesibilidad y la aparente sordera de esta empresa a las peticiones y quejas que hemos trasladado algunos usuarios y desarrolladores con discapacidad. Pues bien, se ha comenzado una recogida de firmas virtuales para solicitar que Google mejore la accesibilidad en Android.

Puedes participar firmando, virtualmente, en la página de solicitud de mejora de accesibilidad en Android (en inglés). La página está en inglés pero no es complicado completar el formulario que ofrece para apoyar la iniciativa.