Qué es Docker

En la actualidad tanto para el uso profesional como el personal existen 3 principales plataformas o sistemas operativos para los ordenadores de escritorio: Linux, Windows y MacOS. Estas 3 plataformas publican actualizaciones y nuevas versiones para que todas las personas puedan acceder a una versión más optimizada y segura de su entorno de trabajo. Esta premisa debería permitir que una aplicación o proyecto software se pueda ejecutar en cualquier ordenador que esté corriendo la misma plataforma para la que se diseñó la aplicación pero esto no es así.

Dentro de un ordenador que está ejecutando una de las 3 plataformas que hemos mencionado antes se ejecutan multitud de procesos, programas de apoyo y se disponen de distintas librerías que hacen de herramientas de apoyo a otras aplicaciones. Cada proceso, librería y programas de apoyo también tienen sus correspondientes actualizaciones y nuevas versiones. Unido a todo esto se ha de mencionar que tanto Windows, MacOS y Linux permiten al usuario personalizar ciertas características y configuraciones que permiten al usuario optimizar su máquina a su gusto o necesidad. Por ejemplo, la configuración y personalización de un ordenador dedicado a hacer de servidor web para miles de usuarios es muy distinta a la configuración de un ordenador que se utiliza en casa para tareas educativas, ócio y personales.

En mi máquina funciona

Dentro de la ingeniería del software es muy habitual que la persona encargada del desarrollo de un proyecto no pueda utilizar el ordenador que se utilizará como servidor en producción por lo que tendrá que configurar su ordenador de trabajo con una configuración lo más semejante posible a la que tendrá ese servidor en producción. Esto casi siempre es imposible debido tanto a las diferencias en el hardware como en las posibles diferencias entre versiones y configuraciones del conjunto de librerías, procesos y programas de apoyo entre una máquina y otra.

En un primer momento la industria del software optó por el uso de máquinas virtuales pero esto implicaba que los equipos dedicados al desarrollo fuesen más potentes que los equipos de producción ya que la ejecución de una máquina virtual requería tanta potencia como la máquina anfitriona y la virtualizada.

Con el cambio de arquitectura de proyectos monolíticos a proyectos con microservicios la situación mejoró. En lugar de tener que utilizar una maquina completa para ejecutar toda la aplicación empaquetada en un único ejecutable (arquitectura monolítica) se pasó a la arquitectura de microservicios en la que un proyecto software completo se divide en muchos módulos pequeños y cada uno de estos módulos sólo se encarga de resolver uno de los problemas existiendo una comunicación interna entre cada uno de los microservicios que forman un proyecto completo.

Con este nuevo paradigma el uso de una máquina virtual para desarrollar un microservicio era innecesario ya que el microservicio requería de muy poca potencia para su ejecución tanto simulada durante el desarrollo como durante su explotación en producción. Era necesario la aparición de un nuevo método de virtualización que permitiese la ejecución de un microservicio que requiera sólo los recursos mínimos necesarios para su correcta ejecución y que al ejecutarse ya incluya todo lo necesario sin necesidad de depender de la máquina que lo ejecute. Nace Docker, un sistema de virtualización muy pequeño especializado en la ejecución de microservicios.

De esta forma un desarrollador instala Docker para crear sus entornos de ejecución y desarrollar su microservicio. Una vez desarrollado puede instalar Docker en la máquina de producción, trasladar el microservicio desarrollado y ejecutarlo en la máquina final. Como Docker facilita que el microservicio se ejecute siempre con la misma configuración en cualquier máquina ya no sucede el problema de que en la máquina de desarrollo todo iba bien y en producción todo va mal.

En conclusión podemos decir que Docker es una herramienta que permite ejecutar programas y aplicaciones de forma aislada, sin que se afecten entre sí. Es como una caja virtual que contiene todo lo que un programa necesita para funcionar correctamente. Esto facilita la instalación, ejecución y distribución de aplicaciones en diferentes máquinas.

ProgramarACiegasRSS ahora también disponible para MacOS

La semana pasada publicamos la noticia de la disponibilidad de la app ProgramarACiegasRSS para iOS y iPadOS.

Gracias a que ahora MacOS e iOS soportan SwiftUI la migración de una app de iOS a MacOS es mucho más sencilla. Por esta razón ya está disponible, en tan poco tiempo, la versión de ProgramarACiegasRSS para MacOS en la MacAppStore.

Podéis conocer más sobre esta app en la página de ProgramarACiegasRSS.

Programar a ciegas RSS vuelve a estar disponible para iOS

La app Programar a ciegas RSS vuelve a estar disponible en la AppStore para poder leer con más comodidad los artículos de este sitio web.

Podéis encontrar más información en la página de ProgramarACiegas RSS en Tyflos Accessible Software.

Dentro de las novedades de esta versión se incluyen las siguientes:

  • Toda la app se ha rehecho utilizando SwiftUI y las últimas librerías de Apple para proporcionar la experiencia más accesible posible.
  • La aplicación ahora incluye persistencia de la información utilizando Realm para poder leer los artículos en cualquier momento.
  • Con esta nueva reconstrucción de la app es posible la publicación en otras plataformas como MacOS, TvOS, WatchOS o VisionOS si el feedback de los usuarios así lo piden.

Qué es Fastlane

Dentro del desarrollo de software es habitual que los entornos de desarrollo incluyan muchas herramientas para realizar tareas relacionadas con el mantenimiento y la publicación de una aplicación software. Pero la mayoría de estas herramientas integradas en los entornos de desarrollo funcionan de forma manual requiriendo una completa atención por parte de la persona que está desarrollando el software.

La automatización de procesos dentro de la ingeniería del software se ha demostrado como uno de los caminos más beneficiosos para aumentar la productividad y la fiabilidad del software. Por esta razón han ido apareciendo multitud de herramientas que permiten realizar más tareas y procesos que los entornos de desarrollo y, sobre todo, automatizar estos procesos.

¿Qué es Fastlane?

Fastlane es una de estas herramientas que permiten automatizar muchos de los procesos y tareas relacionadas con el desarrollo de software para iOS y Android.

Esta herramienta creada por Felix Crause consiste en un conjunto de servicios y aplicaciones ejecutadas desde la línea de comandos (CLI) utilizando lenguaje Ruby y permite automatizar muchos de los procesos que se realizan con Android Studio y Xcode.

Entre las diversas tareas que permite automatizar Fastlane están las siguientes:

  • Creación de capturas de pantalla para la tienda de aplicaciones
  • Despliegue de la app dentro de entornos de betatesting como Test flight.
  • Publicación del proyecto en la tienda de aplicaciones
  • Firma de paquetes de software para la distribución del proyecto
  • Ejecución de planes de tests

Como todas estas automatizaciones se ejecutan desde la línea de comandos es muy fácil incluir scripts de la Terminal para realizar comprobaciones o actualizaciones de recursos para la distribución de nuestro proyecto software.

En futuros artículos veremos algunas de estas automatizaciones con más detalle.

La instalación de fastlane es muy sencilla y su uso consiste principalmente en la ejecución de ciertos comandos de Terminal en la propia carpeta raíz de nuestro proyecto software. Este uso de la Terminal hace que el uso de Fastlane resulte más accesible que utilizar ciertas herramientas visuales incluidas en Xcode o Android studio.

Puedes obtener documentación, ejemplos y más información en la página oficial de Fastlane.

Cómo utilizar VoiceOver en VisionOS

El próximo 2024 Apple introducirá en el mercado su nuevo producto Apple vision Pro. Un visor que permite interactuar al usuario entre lo real y lo virtual. VisionOS es el sistema operativo para este dispositivo y como viene siendo habitual en Apple sale al mercado con varias características de accesibilidad y de personalización para que todos los usuarios puedan disfrutar de esta nueva forma de interactuar con la tecnología.

VoiceOver para VisionOS

Dentro de los ajustes de VisionOS, en el apartado de accesibilidad, el primer elemento que podemos activar es VoiceOver.

Podemos configurar la activación rápida de un elemento de accesibilidad pulsando 3 veces la corona del Apple vision pro.

La navegación de esta versión de VoiceOver es muy similar a la que podemos disfrutar con VoiceOver para iPadOS permitiendo navegar mediante gestos o conectando un teclado externo.

Utilizar VoiceOver para VisionOS con gestos

el Apple Vision pro no necesita pantalla táctil ya que reconoce la posición de nuestras manos y dedos en todo momento y esto nos permite hacer gestos para manipular la interfaz de VisionOS. ¿Pero cómo solucionar la necesidad de feedback háptico para las personas ciegas? Pues Apple ha apostado por sustituir los movimientos en el aire por tocar nuestros dedos de la mano derecha con nuestro pulgar.

Colocando nuestra mano derecha con la palma mirando hacia arriba podemos tocar nuestro dedo índice con el pulgar. Este gesto mueve el foco de VoiceOver al siguiente elemento de la interfaz.

Si con nuestro pulgar derecho tocamos nuestro dedo corazón el foco de VoiceOver se moverá al elemento anterior.

Por último para hacer tab en un elemento y activarlo deberemos tocar con nuestro pulgar nuestro dedo anular.

Existen más gestos y más opciones de personalización en los ajustes de VoiceOver para VisionOS pero con estos 3 gestos ya podemos explorar la interfaz de este nuevo sistema operativo.

Utilizar VoiceOver para VisionOS con teclado

Los atajos de teclado de VoiceOver para VisionOS son los mismos que para la versión de iPadOS.

Pulsando la combinación Control+Opción+Flecha derecha moveremos el foco de VoiceOver al elemento siguiente.

Pulsando Control+Opción+flecha izquierda moveremos el foco de VoiceOver al elemento anterior.

Por último pulsando control+Opción+barra espaciadora activaremos el elemento focalizado.

Otro atajo de teclado útil es Control+Opción+k que activará el modo de ayuda y podremos explorar los distintos atajos de teclado disponibles.

Para salir de este modo de ayuda y de otros modos de ajuste de VoiceOver deberemos utilizar el atajo de escape que es Control+Opción+tecla Escape.

Cómo probar VisionOS sin el Apple vision pro

Actualmente no está disponible este nuevo dispositivo de Apple pero los desarrolladores ya pueden crear nuevas aplicaciones para este sistema operativo. ¿Cómo lo hacen? Pues utilizando un simulador incluido con Xcode.

Al crear con Xcode un nuevo proyecto de aplicación y seleccionando como destino VisionOS podremos ejecutar una simulación de VisionOS en nuestro equipo con MacOS.

Una vez en ejecución el simulador el primer arranque de VoiceOver no es accesible y deberemos ir a los ajustes de VisionOS, activar la categoría accesibilidad y activar VoiceOver.

Una vez activado VoiceOver cada vez que arranquemos el simulador VoiceOver comenzará a hablar.

Para poder controlar con el teclado el VoiceOver de VisionOS debemos activar la opción del simulador de enviar las pulsaciones de teclas al simulador. Esto lo podemos hacer pulsando Opción+Comando+k. Una vez activada esta modalidad el teclado se utilizará exclusivamente por el simulador.

Para desactivar esta modalidad de uso del teclado deberemos pulsar a la vez las 2 teclas de Comando situadas a la izquierda y la derecha de la barra espaciadora.

Obtener el contenido del portapapeles con AppleScript

Ya hemos visto que en AppleScript podemos acceder a mucha de la información que está disponible en nuestro equipo pero aún no hemos visto una de las funciones más simples y útiles de los sistemas operativos modernos: el portapapeles.

El portapapeles es un espacio en memoria donde se aloja una copia del contenido que hayamos copiado o cortado con las funciones del sistema operativo.

¿Para qué podemos querer acceder a la información de portapapeles desde un script? Pues desde una simple función para mostrar el contenido del portapapeles en un cuadro de diálogo para verificar qué tenemos almacenado en esa memoria o para crear un script que nos traduzca el texto del portapapeles al idioma que necesitemos.

Con AppleScript podemos acceder a ese espacio de memoria utilizando la variable the clipboard. Esta variable de AppleScript puede almacenar cualquier tipo de contenido como imágenes, texto, audio o la información de un fichero de una carpeta. Esto nos obliga a convertir esta información en algo comprensible para nuestro script.

Veamos un ejemplo en el que obtenemos como texto la información guardada en el portapapeles:

set clipboardContent to (the clipboard as text)

Con esto podemos crear un script para verbalizar el contenido del portapapeles utilizando la voz del sistema. El código sería algo como esto:

set clipboardContent to the clipboard as text

say clipboardContent

Este código funciona pero no tiene en cuenta si en el portapapeles el contenido que está almacenado es convertible a texto. Para evitar posibles errores de ejecución de nuestro script debemos emplear un bloque try que nos permita controlar errores de ejecución en un script. El código quedaría así:

try

  set clipboardContent to the clipboard as text

  say clipboardContent

on error

  say "El portapapeles no contiene texto"

end try

Con esta modificación nuestro script siempre verbalizará algo aunque sea para notificarnos que el contenido de nuestro portapapeles no es texto.