Volver al blog de desarrollo Notas de versión · iPhone y iPad

SharkTTY 1.7 y 1.8: un teclado flotante, una lupa y el sonido del Mac en tu mano

· Safafish

Dos etiquetas separadas por una hora el 2 de julio: 1.7 y luego 1.8. No es un error del registro. 1.7 es la versión de funciones — aquella en la que el escritorio remoto dejó de ser un visor y pasó a ser un sitio donde se puede trabajar de verdad — y 1.8 es 1.7 más una cosa: un códec de audio de verdad bajo el sonido que 1.7 acababa de empezar a enviar. En el lado del Mac se corresponden con SharkTTY Desk 0.7.0 y 0.8.0.

Un teclado que es de verdad un teclado

Controlar un Mac desde un iPad con el teclado de iOS es un ejercicio de frustración. No hay Escape. No hay Control. No hay teclas de función. Todo lo que macOS espera que mantengas pulsado, iOS no lo tiene.

Así que 1.7 se hizo el suyo. Empezó como un panel QWERTY flotante en el escritorio remoto del iPad y después, a lo largo de una docena de commits, se convirtió en algo que reconocerías como un teclado: símbolos, Tab y Retorno; ⌃, ⌥ y ⌘ como modificadores reales con una tecla Mayús ancha; un Retorno en forma de L al estilo ISO que ocupa dos filas y que luego bajó a la fila central y a la inferior, con una Mayús de dos celdas y una tecla fn, una vez que miramos dónde aterrizan de verdad los pulgares.

Los dos ajustes que lo hicieron usable y no solo presente: puedes cambiarle el tamaño y puedes fijar su opacidad con un control deslizante — hasta dejarlo completamente opaco si prefieres no ver el escritorio a través de él. Un teclado que ocupa el tercio inferior de un iPad es otra cosa cuando ves lo que hay debajo. Y en lugar de dos botones que competían entre sí, ahora hay un único botón de teclado con un menú de modos: el panel flotante, o el teclado del sistema con una barra de atajos.

Apuntar a un píxel con un dedo

La yema de un dedo cubre más o menos la superficie de los tres botones de semáforo de una ventana de macOS. El ratón virtual existe por esa aritmética, y 1.7 le dio una lupa — una lupa que muestra la zona bajo tu dedo a la resolución nativa del Mac, para que aciertes una casilla en vez de quedarte al lado. Tanto el puntero como la lupa se ampliaron para funcionar sobre la disposición agregada de pantallas y no solo dentro de una pantalla suelta.

Hay un arreglo de esa zona que merece explicarse, porque es de los que solo aparecen con el uso. El recuadro de la lupa es un flujo de píxeles distinto del de la imagen principal y llega una fracción más tarde. Mientras el cursor se mueve, eso significa que la vista ampliada muestra dónde estaba el cursor. Enseñar una lupa desfasada es peor que no enseñar ninguna, así que ahora se oculta mientras el cursor está en movimiento y vuelve cuando se detiene.

Las pantallas como una sola imagen que puedes colocar

1.6 puso todas las pantallas delante. 1.7 permitió colocarlas: un menú de pantallas combinadas y un área de visualización que puedes mover y redimensionar. Esto último necesitaba un tirador, y esta es la razón. El mismo gesto de arrastre significa dos cosas distintas según la intención — mover esta imagen, o mover el puntero del Mac dentro de ella. Adivinar entre las dos es una mala experiencia en ambos sentidos, así que mover y redimensionar quedaron detrás de un modo de ajuste explícito con un tirador, y el pellizco para ampliar solo funciona ahí.

El clic derecho tenía el mismo problema, en pequeño. Se hacía de forma distinta en sitios distintos; 1.7 lo convirtió en un toque con dos dedos en todas partes, tanto en la vista en mosaico como en la enfocada. Las pantallas individuales también quedaron separadas de la barra superior y del borde inferior, para que la imagen no se esconda bajo la propia interfaz de la app.

Una calidad que se negocia, no que se supone

La calidad de vídeo es ahora una conversación. El agente del Mac anuncia qué niveles puede codificar, el visor elige uno y lo representa, y el techo — xHD, los píxeles nativos del Mac — puede pedirse desde el dispositivo. Se apoya en la maquinaria de bits de capacidades añadida en 1.6, que es lo que permite que una app más nueva le pida algo a un agente más antiguo y reciba un no claro en lugar de un flujo roto.

Sonido, en los dos sentidos

1.7 añadió el audio del sistema desde el Mac hacia el dispositivo, y un enlace de micrófono en sentido contrario, para que un iPhone pueda ser el micrófono de un Mac que está en otra parte. Entre los dos, una llamada atendida en el Mac es una llamada que puedes atender de verdad.

Y ahí es donde entra 1.8. El audio, en ese momento, era PCM en bruto por un canal de datos: correcto, y mucho más ancho de banda del que el sonido necesita. 1.8 añadió Opus — el vocabulario del códec en el protocolo con su propio bit de capacidad, libopus 1.5.2 incorporado a la compilación con una envoltura segura alrededor, y la decodificación en el lado del visor conectada a través del FFI. El bit de capacidad es la mitad importante: un agente y un visor que no hablen los dos Opus recurren a lo que sí comparten en lugar de fallar. Las piezas que faltaban de ese camino — un codificador con búfer que convierte PCM arbitrario en tramas Opus de 20 ms, y la reproducción en el visor — quedaron terminadas en la versión siguiente.

Mientras tanto, en el terminal

El escritorio remoto se llevó casi toda la atención en 1.7, pero el terminal recibió tres cosas que vale la pena tener:

  • Subida de archivos directamente desde la barra de accesorios, para que un archivo de configuración llegue a un servidor sin rodeos por un gestor de archivos.
  • Un botón para ocultar el teclado, para leer la salida en una pantalla de teléfono que es casi toda teclado.
  • Un interruptor de informe del ratón. Activado, un trackpad o ratón conectados envían sus clics y arrastres a los programas que los entienden — vim, tmux, htop, less. Desactivado, el puntero selecciona texto. Los dos comportamientos son correctos; solo tú sabes cuál quieres en este momento.

El teclado flotante también ganó símbolos, Tab y Retorno en el lado del terminal, y se redistribuyó para coincidir con un teclado estadounidense estándar en vez de con una aproximación — el trabajo previo para las seis disposiciones reales que llegaron en la versión siguiente.

Lee esta entrada en: English · 中文 · 日本語 · Español · Français · 한국어 · Українська

Más sobre la app en la guía de SharkTTY, las notas breves para usuarios en Novedades, y la vía más rápida para escribirnos es el tablón de comentarios. Volver al blog de desarrollo.