Peering

Peering / Blog

So wird aus einem Tippen auf deinem iPhone ein Klick auf deinem Mac

Einen Klick zu senden ist leicht. Tausende davon über eine schlechte Verbindung zu senden, in der richtigen Reihenfolge und ohne dass der Cursor hinterherhinkt, ist der Punkt, an dem Fernsteuerung interessant wird.

Positionen sind Bruchteile, keine Pixel

Wenn du das Bild berührst, sendet das iPhone nicht „Pixel 812, 640“. Es sendet einen Punkt zwischen 0 und 1 auf jeder Achse, bezogen auf die gezeigte Quelle. Der Mac macht daraus echte Koordinaten für das Display oder Fenster, das er aufnimmt. Deshalb trifft ein Tippen die richtige Stelle, egal ob das Bild eingepasst oder gezoomt ist, im Hoch- oder Querformat, auf einem Retina-Display oder einem virtuellen Display in der Form des iPhones. Keine Seite muss sich auf eine Auflösung einigen.

Nicht jede Nachricht ist gleich

Eingaben reisen als kleine JSON-Befehle über die verschlüsselte Steuerverbindung, und die App behandelt jede Art anders:

Diese kleine Regel macht den größten Teil des Unterschieds zwischen einem Cursor, der gleitet, und einem, der nach einem Hänger ruckelt. Sie sorgt auch dafür, dass eine schlechte Verbindung zu einem weniger flüssigen Zeiger führt und nie zu einer falschen Aktion.

Das Kurzbefehl-Feld von Peering auf dem iPhone mit Kurzbefehlen für Visual Studio Code über dem Bild des Macs.
Eine Kurzbefehl-Taste sendet dieselben Tastenereignisse wie eine Tastatur, mit den richtigen Sondertasten.

Tasten sind macOS-Tastencodes

Ein Tastendruck ist ein virtueller macOS-Tastencode plus Modifikator-Bits für Umschalt, Control, Option und Befehl. Die Mac-App wandelt ihn in ein echtes Tastaturereignis um und schickt es ans System, weshalb sie die Berechtigung „Bedienungshilfen“ braucht. Kurzbefehle folgen der App, in der du bist: Das Feld oben zeigt die Befehle für den Editor im Vordergrund, keine feste Liste.

Tasten wie an einer echten Tastatur zu verhalten hat überraschende Ecken. Eine echte Pfeiltaste trägt zwei zusätzliche Flags, ein Funktions-Flag und ein Ziffernblock-Flag, die ein naives synthetisches Ereignis weglässt. Ohne sie tat Control plus Pfeil nach oben auf dem Mac nichts, statt Mission Control zu öffnen, obwohl der richtige Tastencode angekommen war. Peering setzt jetzt beide Flags, wie es eine echte Tastatur tut.

Text sind keine Tastendrücke

Emoji, Akzente und nicht lateinische Schriften lassen sich keinen Tastencodes zuordnen. Dafür sendet das iPhone die Zeichen selbst als Text, und der Mac tippt sie ein. Deshalb funktioniert die Tastatur in jeder Sprache, und deshalb funktionieren in diesem Modus einige Mac-Kurzbefehle nicht. Das ist ein Kompromiss, den du in den Einstellungen umschalten kannst.

Im Takt bleiben

Das iPhone pingt den Mac jede Sekunde, und der Mac antwortet, indem er den Ping zurückgibt, was zugleich als Live-Latenzmessung dient. Geht das iPhone in den Hintergrund, sagt es das vorher, weil iOS eine App einfrieren kann, ohne ihre Verbindungen zu schließen, und der Mac sendet dann kein Video mehr an das iPhone, bis es zurückkehrt. Eine Sitzung kann auch auf „nur beobachten“ gestellt werden, dann ignoriert der Mac Eingaben, während das Bild weiterläuft.

Die andere Richtung dieser Schleife ist wie das Bild zum iPhone kommt. Zusammen bestimmen beide, wie reaktionsschnell sich das Ganze anfühlt.

Fragen

Unterstützt Peering Emoji und nicht englische Tastaturen?

Ja. Text, der kein Tastendruck ist, wird als Zeichen gesendet und auf dem Mac getippt, sodass Emoji und jede Sprache funktionieren. Mac-Kurzbefehle werden nur in dem Modus gesendet, der Tastencodes sendet.

Warum bleibt der Cursor bei schwacher Verbindung flüssig?

Mausbewegungen werden zusammengefasst, sodass nur die neueste Position bleibt, und Scrollbewegungen werden addiert. Klicks und Tasten werden immer in der richtigen Reihenfolge zugestellt.