Convertir un AppleScript en una aplicación para MacOS

AppleScript permite a cualquier usuario de MacOS realizar pequeñas utilidades de forma rápida y sencilla pero el resultado sigue siendo un script que requiere de una aplicación para ser ejecutado. Pero esto no es del todo cierto

El Editor de scripts que ofrece Apple nos permite convertir un script de AppleScript en una aplicación para MacOS.

Un pequeño ejemplo para empezar

Para continuar vamos a partir de un pequeño ejemplo de script que sólo mostrará una alerta por pantalla. El código es el siguiente:


on run
display alert "Esto es un mensaje de prueba."
end run

Una vez escrito nuestro script y tras haberlo guardado con un nombre apropiado es el momento de convertirlo en aplicación.

Exportando un AppleScript como aplicación

En el menú Archivo de la barra de menú del Editor de scripts encontramos la opción de Exportar ….

Al activar la opción de Exportar … aparecerá un cuadro de diálogo para exportar nuestro script. Nos solicitará un nombre, una carpeta de destino y un formato. Ese campo formato es el que nos interesa.

Como formato podremos exportar a script, paquete de scripts, texto y aplicación. Es el formato aplicación el que nos interesa.

Dependiendo de la versión de MacOS que estemos ejecutando el campo formato también estará disponible en el cuadro de diálogo para guardar nuestro script.

Primeros pasos con Swift

Swift es un nuevo lenguaje de programación creado por Apple buscando atraer a nuevos desarrolladores. La propia compañía lo describe en su página oficial de Swift como un lenguaje potente y sencillo de aprender.

Realmente Swift, en comparación con otros lenguajes, tiene una curva de aprendizaje menor y las herramientas proporcionadas por Apple para desarrollar con él lo hacen un lenguaje muy apropiado como primera opción para aprender a programar.

Recientemente Apple ha decidido donar su lenguaje a la comunidad de código abierto lo que permitirá a Swift estar presente en otras plataformas por lo que desarrollar una aplicación para iOS, OSX, Linux y otras plataformas será algo habitual en Swift.

Programando en Swift

Para programar en un lenguaje de programación lo primero que necesitamos son herramientas de desarrollo compatibles con ese lenguaje. Si somos usuarios del sistema operativo MacOS X sólo debemos ir a la aplicación de la Mac AppStore y descargar el entorno de desarrollo de Apple más conocido como xCode.

xCode, como otras aplicaciones específicas para una profesión, no es una herramienta sencilla de comprender con un primer vistazo pero tampoco es una tarea imposible. Iremos conociendo poco a poco esta herramienta junto con el aprendizaje de Swift en una serie de artículos publicados en este blog.

Para programar en otra plataforma distinta a MacOS X hay varias alternativas proporcionadas por la comunidad de código abierto de Swift los cuales trabajan en un compilador para varias plataformas. Actualmente el compilador funciona para el sistema operativo Linux.

Otra alternativa para ir practicando con Swift mientras aprendemos es utilizar una herramienta online creada por IBM para este objetivo. Esta herramienta es conocida como IBM Swift Sandbox y nos ofrece la posibilidad de crear y ejecutar un Playground de Swift a través de nuestro navegador web. Esta herramienta web, aunque recientemente ha solucionado algunos problemas de compatibilidad con dispositivos móviles para poder programar en cualquier momento desde cualquier lugar, presenta algunas barreras de accesibilidad relacionadas con el uso de esta herramienta por parte de usuarios de productos de apoyo por lo que se recomienda utilizar en su lugar xCode o el compilador de Swift para Linux. Esperemos que pronto esté disponible este compilador para otros sistemas operativos.

¿Qué es un Playground de Swift?

Con la creación de Swift Apple también desarrolló nuevas herramientas y conceptos que ayuden a los desarrolladores a realizar su trabajo con mayor efectividad. Una de sus creaciones es el Playground de Swift. Un Playground de Swift es un mini proyecto de aplicación que nos permite probar de forma rápida y controlada partes de código antes de que decidamos introducir ese nuevo código en nuestro proyecto de trabajo. Esto permite probar algoritmos y funciones de una forma cómoda, segura y, además, Apple ha incorporado herramientas de monitorización en los Playgrounds para obtener el rendimiento de los algoritmos ejecutados así como permitir hacer una depuración más intensa de nuestro código.

Nuestro primer programa en Swift

Supongamos que vamos a utilizar xCode para crear nuestro primer programa en Swift. Al abrir xCode aparecerá una ventana de bienvenida. En ella habrá diversos botones, entre ellos encontramos uno que nos permite empezar con un Playground de Swift de forma rápida, es el botón con el título Get started with a playground. Una vez pulsado nos pedirá que demos un nombre a nuestro fichero de Playground y seleccionar una de las plataformas para nuestro Playground: iOS, OSX o TVOS. Tras esto se nos consultará dónde guardar el fichero de nuestro Playground. Con esto xCode ya puede crear el entorno de desarrollo para que empecemos a jugar con nuestro Playground de Swift.

xCode presenta en su interfaz un area de menú con una barra de herramientas con las principales opciones de ejecución, depuración y visualización, y un area de trabajo. Los usuarios de VoiceOver pueden identificar estas zonas fácilmente si utilizan el gesto de dejar de interactuar con el item varias veces (VO+Mayúsculas+flecha arriba). Explorando la ventana desde arriba a la izquierda siguiendo la exploración hacia la derecha encontrará la barra de herramientas, identificada como Toolbar, una zona para controlar las pestañas abiertas en xcode y un area de trabajo. Este area de trabajo es identificada por VoiceOver con el título de ruta de nuestro proyecto, sería algo parecido a MyPlayground.playground split group. Interactuando con el area de trabajo encontraremos varios subcontenedores:
el editor de código, la barra de debug, la zona de debug y varias zonas relacionadas con el diseño visual de la interfaz. Esta zona puede que contenga todos, algunos o ningunos de estos subcontenedores ya que podemos modificar la visualización de xCode en las opciones del menú View de la barra de menú de xCode. Por ahora sólo nos interesa el subcontenedor donde se encuentra el editor de código, VoiceOver lo identificará con el nombre de nuestro fichero en edición; la barra de debug y el panel de debug o depuración, dentro de este panel encontraremos la opción de ejecución para nuestro Playground.

En el editor de código encontramos que ya hay escrito un código de ejemplo:


//: Playground - noun: a place where people can play
import Cocoa
var str = "Hello, playground"

Prueba a borrar todo ese código, escribir el siguiente código y pulsar el botón Execute que hay en la barra de debu:


print("Hola mundo!")

Tras ejecutar el código veremos que el texto Hola mundo! aparece en el area de depuración. ¡Enhorabuena, has creado tu primer programa en Swift!

Puede que sólo encuentres la barra de debug, identificada por VoiceOver como debug bar group y no encuentres el panel de debug, identificado por voiceOver como debug group. Esto puede suceder porque este panel de depuración se puede ocultar. Para hacer que se vea podemos entrar en la barra de debug y pulsar el botón show debug area o usar la opción de la barra de menú de xCode en el menú View o el atajo de teclado ()Comando+Mayúsculas+Y).

Un primer paso de otros muchos

Pensaréis que este programa no vale para nada pero si habéis seguido las instrucciones hasta aquí se supone que habéis adquirido los primeros conocimientos para comenzar a aprender Swift ya que ahora sabéis lo siguiente:

  • Saber escribir código y ejecutar código en un Playground
  • Usar la función print() que muestra un texto por pantalla

En futuros artículos iremos aprendiendo más cosas sobre este lenguaje de programación.

Cómo reproducir un sonido al iniciar sesión en OSX

Aunque el sistema operativo OSX posee muchas características de accesibilidad y usabilidad hay que reconocer que el número de eventos del sistema asociados a un sonido es insuficiente.

Por suerte para sus usuarios existen herramientas y aplicaciones para solucionar total o parcialmente este problema.

Sonido al iniciar la sesión

Uno de los eventos de sonido más reconocidos en el sistema operativo Windows de Microsoft es el inicio de sesión. Es habitual escuchar una fanfarria notificando que la sesión del usuario se ha abierto.

Detectar cuando sucede este evento es sencillo. Podemos lanzar una aplicación cuando el sistema operativo arranque. Para ello las preferencias del sistema posee un apartado en la que se indican qué aplicaciones se arrancarán con la sesión del usuario.

Crear aplicaciones con Automator no es demasiado complicado.

Al abrir Automator y pulsar el botón de nuevo documento debemos seleccionar aplicación como tipo de documento .

Al abrirse la interfaz de Automator nos aparece una acción ya creada con el texto Una aplicación recibe archivos y carpetas como datos de entrada. Debemos ignorar esto ya que la entrada de datos en nuestra aplicación para reproducir un sonido será ignorada.

Reproduciendo un sonido desde la terminal de OSX

Para que nuestra aplicación creada con Automator reproduzca un sonido utilizaremos un comando de la terminal de OSX que tiene esta funcionalidad. Es el comando afplay. Este comando puede reproducir sonidos en diversos formatos como AIFF, CAF o WAV.

Para poder utilizar un comando de la terminal en Automator debemos incluir una acción de tipo Ejecutar el script Shell que se encuentra dentro de la categoría utilidades de la biblioteca de acciones de Automator. Debemos añadir esta acción a nuestro flujo de aplicación de Automator, para ello debemos arrastrar el elemento Ejecutar el script Shell a la zona de acciones del flujo de trabajo (donde aparece el texto Una aplicación recibe archivos y carpetas como datos de entrada). Los usuarios de VoiceOver deben usar las funciones de arrastrar y soltar que incorpora este lector de pantallas.

Una vez que tengamos la acción añadida a nuestro flujo de Automator debemos introducir nuestro código del script para reproducir un sonido. Esto lo haremos dentro del cuadro de edición en el que por defecto viene el código cat. Debemos sustituir todo ese código por el nuestro.

Para nuestro ejemplo vamos a reproducir un sonido propio del sistema operativo. Será el fichero Blow.aiff que está en la carpeta /System/Library/Sounds/. El código sería el siguiente:

afplay /System/Library/Sounds/Blow.aiff

Una vez hecho esto podemos probar que nuestra aplicación funciona, para ello sólo debemos ejecutar nuestro flujo de trabajo desde el propio Automator utilizando la opción que se encuentra en el menú Flujo de trabajo. Nos saldrá una alerta indicando que Automator requiere acceso a los parámetros del Finder, podemos ignorar la advertencia ya que cuando demos a guardar nuestra aplicación no habrá ningún problema.

Guardamos nuestra aplicación en la carpeta de aplicaciones con el nombre que decidamos.

Ejecutando nuestra aplicación al inicio de la sesión

Con nuestra aplicación lista en la carpeta de aplicaciones ahora debemos hacer que se ejecute cada vez que el sistema se inicie. Para ello debemos ir a las Preferencias del sistema y en el panel de usuarios y grupos debemos seleccionar nuestro usuario y pulsar la pestaña items de inicio. Nos aparecerá una tabla con las aplicaciones que se abren al iniciar la sesión del usuario seleccionado y un par de botones para añadir o eliminar items de inicio.

Una vez añadida nuestra aplicación podemos cerrar las preferencias del sistema y reiniciar nuestro equipo para probar que se reproduce el sonido correctamente.

Puedes descargar el ejemplo de Sonido de inicio en formato Zip para probar y seguir el ejemplo.

Cambiar rápidamente de idioma para el dictado en OSX

La nueva función de dictado para OSX permite al usuario dictar textos en más de 20 idiomas. Su uso es muy sencillo al igual que su configuración.

El problema aparece cuando el usuario quiere dictar en más de un sólo idioma. Aunque el cambio de idioma es sencillo puede resultar engorroso y lento y lo digo por experiencia. Durante un día normal de uso de este servicio puedo cambiar esta configuración unas 8 veces.

Para facilitar la operación de cambio de idioma he realizado un script de AppleScript que nos permite conmutar el idioma de dictado entre español de España e inglés de Estados unidos.

Este script, junto a la posibilidad de ejecución de scripts por atajos de teclado de VoiceOver, habilitan un cambio rápido de este servicio para adaptarse a nuestras necesidades en todo momento.

Puedes descargar el script de cambio de idioma e instalarlo en tu sistema OSX Mountain Lion.

Requisitos del script

Para un correcto funcionamiento del script es necesario cumplir los siguientes requisitos:

  • Utilizar OSX Mountain Lion 10.8.2 o superior
  • Tener instaladas las voces de Alex y Diego en el sistema. Estas voces se utilizan para la notificación de cambio de idioma.
  • Utilizar OSX en español. El script no funcionará de forma apropiada en un entorno OSX configurado para otro idioma.
  • El script sólo cambia entre español de España e inglés de Estados unidos. Para modificar estos valores es necesario modificar el código fuente del script.
  • Este script se distribuye de forma gratuita. Si vas a modificarlo o distribuirlo respeta su autoría y recuerda mencionar la fuente original de donde lo obtuviste.

Personalización de teclado en OSX

El sistema operativo de Apple para sus equipos de sobremesa, más conocido como OSX, incluye una serie de funciones para personalizar el comportamiento de nuestro equipo. Entre dichas funciones destaca la de poder asignar atajos de teclado para controlar ciertos comportamientos o ejecutar ciertas aplicaciones.

Para poder acceder a esta función debemos ir a las preferencias de sistema y buscar el elemento teclado. Lo podréis encontrar en la categoría de hardware.

Al acceder a este elemento del panel de preferencias de sistema encontraremos dos pestañas: teclado y funciones rápidas de teclado. Es en esta última pestaña donde encontraremos esta funcionalidad para personalizar atajos de teclado.

Solucionando problemas del teclado español

OSX por defecto, y aunque seleccionemos un idioma distinto, define los atajos de teclado para el mapa de teclas del uso norteamericano. Funciones como buscar (Comando+f) o cerrar una ventana (Comando+w) hacen referencia a los nombres en inglés de estas funciones.

No es recomendable personalizar todas las funciones que se nos ocurra ya que esto provocará confusión si utilizamos otro equipo con OSX o alguien utiliza nuestro equipo.

Pero si es recomendable cambiar ciertas combinaciones de teclado que son conflictivas para el mapa de teclado español. Un ejemplo de ello es la combinación para cambiar de ventana (Comando+`) esta combinación, al tratarse de una tecla de acento, `(acento circunflejo), puede no funcionar si el foco de teclado se encuentra en un área de texto o similar.

Vamos a cambiar dicha combinación a una más cómoda para el teclado español, por ejemplo, Comando+< (Comando + menor que).

En el cuadro de funciones rápidas de teclado encontraremos una tabla de categorías y una tabla de asociaciones de teclas. En la tabla de categorías debemos seleccionar la categoría teclado y texto. A continuación debemos buscar en la tabla de combinaciones una llamada Centrar en la siguiente ventana cuya combinación estará asignada a comando+`.

Los usuarios de VoiceOver encontrarán que estas tablas tienen varias columnas. La columna más a la izquierda permite activar o desactivar el servicio o el atajo de teclado, dependiendo en la categoría en la que nos encontremos, la columna a continuación indica el nombre del atajo o combinación y la siguiente columna contiene las teclas que han de pulsarse para activar el atajo de teclado.

Una vez hayamos encontrado la combinación que queremos modificar podemos cambiarla simplemente haciendo click sobre ella. Los usuarios de VoiceOver deben pulsar la tecla enter para poder editar el campo y desactivar el modo de navegación rápida pulsando las teclas de flecha izquierda y flecha derecha a la vez.

Añadiendo nuestras propias funciones

Podemos añadir nuevas funciones y atajos de teclado para nuestro sistema desde este mismo panel de preferencias. El proceso es muy sencillo.

En el panel de funciones rápidas de teclado debemos ir a la categoría aplicaciones. Una vez seleccionada esta categoría buscaremos un botón llamado Añadir una función rápida para una aplicación.

Una vez pulsado dicho botón nos aparecerá un cuadro de diálogo para definir nuestra nueva función.

En este cuadro de diálogo deberemos seleccionar en qué aplicación funcionará nuestro atajo de teclado, en caso de querer hacer un atajo general deberemos seleccionar el valor todas las aplicaciones para que nuestro atajo de teclado funcione en todas las aplicaciones.

Otro campo de este cuadro de diálogo es título de menú. Esto representa el nombre del servicio o función del sistema que queremos ejecutar.

Por último deberemos definir la combinación de teclas.

Instalar voces en OSX Lion

Ayer Apple publicó la nueva versión de su sistema operativo para ordenadores portátiles y de sobremesa, el conocido como OSX Lion o OSX 10.7. Esta nueva versión del sistema operativo de Apple trae numerosas novedades relacionadas con la accesibilidad pero la más notable de ella es que incluye voces en 23 idiomas.

Estas nuevas voces, entre las que se incluyen 2 voces para español de España y 2 voces para español de Latinoamérica, se ofrecen en 2 formatos: compact y normal. La versión compact es una voz de menor calidad de audio aunque su peso y agilidad es mayor que la versión normal, de mayor calidad. Esta versión compact, para el idioma por defecto de la instalación, es la que aparece instalada tras reiniciar el equipo durante el proceso de instalación o actualización del mismo a OSX Lion.

Instalar más voces en OSX Lion

Todas las voces de OSX Lion ofrecidas por Apple son gratuitas ya que se distribuyen bajo la licencia de compra de OSX Lion por lo que no deberemos pagar más por estas nuevas voces.

El proceso de instalación de estas nuevas voces puede resultar un tanto confuso al principio pero aplicando un razonamiento lógico puede que comprendamos las decisiones tomadas por Apple para aplicar el procedimiento para su correcta instalación.

Las voces son parte del sistema, como cualquier elmento del sistema en OSX Lion, su gestión tiene un representante en las preferencias del sistema por lo que deberemos ir hasta allí. Para ello podemos hacer click en la manzana de la esquina superior izquierda de la pantalla o pulsar Control+F2 para que el cursor vaya hasta la barra de menú. Debemos bajar hasta la opción preferencias del sistema ….

Una vez activada esta opción se nos abrirá el panel de preferencias del sistema. Recordemos que queremos manipular voces para nuestro equipo, por lo tanto, deberemos buscar algo relacionado con las voces. Una de las opciones del panel de preferencias del sistema se llama habla, resulta lógico que las voces se gestionen desde este apartado.

Al abrir el elemento del panel de preferencias del sistema relacionado con el habla nos aparecerá una serie de elementos relacionados con la voz del sistema. Entre ellos encontramos un botón desplegable etiquetado como voz del sistema. Al activar este botón se desplegará una lista con las voces disponibles en el sistema. La última opción de esta lista se denomina Personalizar …. Esta opción nos permite acceder a una nueva ventana en la que nos aparecerá una tabla ordenada en secciones de idioma donde encontraremos un listado con todas las voces disponibles para OSX Lion.

Podemos ir seleccionando las voces que queramos instalar activando o desactivando los diversos elementos presentes en la tabla de voces. Los usuarios de VoiceOver podrán activar o desactivar los elementos de la tabla con la combinación de teclas Control+Opción+Espacio. Una vez seleccionadas las voces que queramos instalar buscaremos, fuera de la tabla, el botón aceptar para comenzar la descarga. También podemos usar el botón reproducir para escuchar una breve demostración de la voz antes de descargarla.

El proceso de descarga es similar al proceso de instalación de algunas aplicaciones empaquetadas (MPKG) que requieren la aceptación de una licencia de uso. Tras la aceptación de la licencia comenzará la descarga y la instalación de las voces.

El proceso de descarga puede resultar lento ya que los servidores de Apple, estos días, están un tanto saturados ya que la mayoría de usuarios estamos descargando complementos y actualizaciones. Por esta razón y dado el peso de las voces es recomendable instalar las voces de 2 en 2. De esta forma podremos ir disfrutando de las voces más rápidamente ya que las nuevas voces sólo se activan tras terminar el proceso de descarga que haya abierto.

Tendencias en OSX Lion

Este artículo puede resultar ofensivo para algunos lectores al utilizar un estilo de redacción apoyado en explicaciones de guía utilizadas, comúnmente, para niños. No es objetivo de este autor el ofender sino el transmitir el hecho de que Apple quiere llevar al panel de preferencias del sistema la misma filosofía que la que se sigue en iOS, el sistema operativo de Apple para dispositivos móviles, en su apartado de ajustes en el que se controlan las personalizaciones y complementos del sistema y aplicaciones. Apple quiere que pensemos, antes de buscar por cualquier sitio del sistema, que si necesitamos un complemento o personalización busquemos en las preferencias del sistema. Esto se debe a que OSX Lion ofrece más áreas de usuario que sus versiones anteriores. El usuario puede perderse buscando por el Dashboard, escritorios virtuales, el LaunchpadMission control, el Finder o demás elementos del interfaz de OSX.