Abrir y comprobar si una aplicación está abierta en MacOS con AppleScript

Con AppleScript podemos enviar y manipular aplicaciones para conseguir realizar tareas pero para que estas aplicaciones puedan realizar dichas tareas deben estar abiertas. Por esta razón, en muchas ocasiones, debemos asegurarnos dentro del código de nuestro script si la aplicación está abierta y de no ser así abrirla para poder operar con ella.

Preguntando si la aplicación está en ejecución

Ya vimos en el artículo estructuras condicionales en AppleScript cómo crear una estructura condicional para hacer preguntas con nuestro script.

Con una sentencia if then podemos preguntar a una aplicación si está activa o no. Por ejemplo, el siguiente código pregunta si la aplicación Mensajes est´ activa:


if application "Messages" is running then
-- código a ejecutar cuando mensajes está abierto
end if

También podemos consultar si la aplicación no está disponible:


if application "Messages" is not running then
-- código a ejecutar cuando la aplicación no está disponible
end if

Abriendo la aplicación

En AppleScript con el comando tell podemos enviar diversos comandos a las aplicaciones. Uno de estos comandos es ordenarle que se abra. Por ejemplo, abramos la aplicación mensajes:


tell application "Messages" to activate

Con tell también podemos crear bloques de código para enviar una serie de comandos a una aplicación. Su sintáxis es la siguiente:


tell application "Nombre de aplicación
-- Código a ejecutar con la aplicación
end tell

En muchas ocasiones es recomendable incluir pausas (comando delay) entre una operación y otra que enviemos a una aplicación para darle tiempo a la aplicación a procesar el comando y obtener un resultado.

Cerrando la aplicación

También podemos ordenar a una aplicación que se cierre. El comando en lugar de activate es quit. El código es el siguiente:


tell application "Messages" to quit

Ejemplo completo

En un script real que quisiera utilizar la aplicación mensajes para algo la estructura del código debería seguir la siguiente lógica:

  • Si la aplicación no está activa
  • Entonces abre la aplicación
  • Opera con la aplicación mensajes con la tranquilidad de que se sabe que recibirá nuestros comandos porque sabemos que está abierta

Nuestro script final quedaría de la siguiente forma:


if application "Messages" is not running then
tell application "Messages" to activate
end if

Esta práctica de seguridad es muy recomendable para asegurarnos de que nuestros scripts funcionan siempre como se espera.

Encuentra aplicaciones accesibles para personas ciegas en Buscaapps

Las personas con discapacidad a la hora de adquirir un producto necesitan conocer sus características de accesibilidad. Este problema es más evidente al tratarse de un producto software ya que si la aplicación no es compatible con el producto de apoyo que utilice la persona con discapacidad por muy bien que funcione la aplicación la experiencia de uso que obtendrá la persona con discapacidad será negativa.

Por ahora ninguna de las diversas tiendas de aplicaciones de software que existen tanto para dispositivos móviles como para ordenadores de escritorio incluyen parámetros de búsqueda o identificación de aplicaciones accesibles. Esa carencia de información repercute muy negativamente entre todos los usuarios con discapacidad.

El proyecto Busca apps ofrece la oportunidad de crear un catálogo de aplicaciones para diversas plataformas identificando el grado de accesibilidad de la interfaz de usuario de la aplicación para las personas ciegas.

Buscaapps se mueve gracias a la comunidad de usuarios que la rodea ya que cualquier persona puede añadir una nueva aplicación al catálogo para que este portal web sirva como punto de referencia a todos los usuarios ciegos a la hora de adquirir o encontrar software accesible para personas ciegas.

Esperemos que Busca apps crezca apropiadamente y recuerda que cualquier persona puede colaborar así que visita la página de Busca apps y comparte tus experiencias con las aplicaciones accesibles e inaccesibles que conozcas.

Simular atajos de teclado y pulsaciones de teclas en MacOS con AppleScript

En el sistema operativo MacOS se suele tener un buen acceso a la funcionalidad de las aplicaciones a través del teclado ya que, por norma, las aplicaciones permiten el uso de atajos de teclado.

La gestión de los atajos de teclado se realiza desde el sistema operativo por lo que es posible utilizar estos atajos de teclado para poder crear scripts de AppleScript específicos para una aplicación y crear nuestras propias personalizaciones de uso de una aplicación utilizando nuestros propios scripts de AppleScript

Esto también permite que una aplicación no compatible con AppleScript pueda ser manipulada por un script utilizando los propios elementos y controles de interfaz de la aplicación no compatible.

La aplicación System Events

La aplicación System Events es un servicio del sistema operativo que permite realizar ciertas operaciones a otras aplicaciones y programas en ejecución. System Events no tiene interfaz de usuario por lo que hay que utilizarlo a través de otra aplicación o un script de AppleScript

Con System events podemos controlar el teclado, el ratón, el volumen de nuestro Macbook y muchas cosas más. Veremos en más detalles a System Events en otros artículos.

Dentro del diccionario de System Events para AppleScript se encuentra el comando keystroke el cual nos permite simular una pulsación de teclas desde nuestro script.

El comando keystroke para ser utilizado sobre una aplicación requiere que dicha aplicación esté siendo ejecutada en ese momento. Pero si el comando es un atajo de teclado general de MacOS entonces el comando keystroke puede ser utilizado sin ningún requisito previo.

Para el comando keystroke debemos indicar qué teclas queremos pulsar pero hay que identificar entre teclas alfanuméricas y teclas modificadoras. Las teclas modificadoras son la tecla de mayúsculas, comando, control, alt, etc.

La forma de usar el comando keystroke es la siguiente:


tell application "System Events" to keystroke "letra a pulsar" using teclas modificadoras

También podemos utilizar el código numérico de la tecla en lugar de su representación literal. Su sintaxis es la siguiente:


tell application "System Events" to key code número de la tecla using teclas modificadoras

Unos ejemplos simples

En un editor de textos vamos a escribir la frase Hola mundo simulando las pulsaciones de teclado. El código es:


tell application "System Events" to keystroke "Hola mundo!"

Vamos a enviar el atajo de teclado Comando+n para abrir una nueva ventana en la aplicación que esté activa en ese momento. El código es el siguiente:


tell application "System Events" to keystroke "n" using command down

Participación en TerritoriMac sobre evento de educación de Apple en Abril de 2018

Tras el evento sobre educación realizado por Apple el pasado abril todos los medios de noticias sobre tecnología se hicieron eco de las novedades de la compaña de la manzana para los colegios.

El portal Territorimac también ha aportado su visión del evento en su nuevo formato de vídeo.

En esta nueva etapa en Territorimac se invita a diversos expertos y profesionales para aportar opinión e información sobre un tema y crear un vídeo con toda la información para ser difundido a través del canal de Territorimac en Youtube

Para esta ocasión fui invitado para aportar información sobre las implicaciones del evento en cuanto a accesibilidad de los productos de Apple.

Puedes ver el vídeo sobre Opinión del iPad 2018 con Apple Pencil en el canal de Youtube de Territorimac

Participación en el programa de los audiojuegos

Durante el mes de Mayo de 2018 fui invitado a participar en el El programa de los audiojuegos para compartir la visión sobre juegos accesibles y audiojuegos desde el punto de vista de un desarrollador de software.

El programa de los audiojuegos es un programa de radio de la emisora RadioGeneral.com en el que se tratan temas sobre ocio electrónico para personas ciegas.

Durante la grabación del programa tratamos tantos temas que superamos el tiempo oficial de emisión por lo que hubo que publicar dos versiones del programa. Podeis escuchar la versión reducida del programa de radio o escuchar la versión completa del programa de radio

Podeis escuchar todos sus programas desde el Tumblr del programa de los audiojuegos

Estudia y aprende con Accessible flash cards para iOS

Hoy se ha publicado la séptima aplicación para iPhone e iPad de Tyflos accessible software y la primera aplicación de caracter educativo. Esta aplicación se llama Accessible flash cards

Las flash cards consisten en un método de estudio basado en la memorización de términos y sus definiciones a través de sesiones de entrenamiento.

Aunque la aplicación no incluye ninguna colección por defecto de tarjetas es muy sencillo crear colecciones para mejorar un idioma, memorizar atajos de teclado, capitales del mundo, conocimientos sobre química y mucho más. Además puedes compartir tus colecciones con amigos usando la opción de exportar dentro de los ajustes de la aplicación.

Como todas las aplicaciones de Tyflos accessible software se ha diseñado incluyendo criterios de diseño universal y es accesible y compatible con los distintos productos de apoyo de Apple iOS, el sistema operativo para iPhone e iPad.

Aunque el título de la aplicación está en inglés la interfaz de toda la aplicación está en castellano e inglés.

Puedes descargar Accessible flash cards desde la AppStore de Apple.