Retour au journal de dev Notes de version · iPhone et iPad

SharkTTY 1.6 : voir tous les écrans à la fois

· Safafish

SharkTTY 1.6 est sortie le 27 juin, en même temps que SharkTTY Desk 0.6.0 pour le Mac. C’est la version où le bureau à distance a cessé de vouloir dire un écran. L’essentiel du travail, pourtant, est en dessous : une connexion qui renonce là où il faut, réessaie là où il faut, et vous dit laquelle des deux choses vient de se produire.

Tous les écrans, pas seulement un

Jusqu’à la 1.6, se connecter à un Mac équipé de trois moniteurs vous en donnait un. Vous pouviez choisir lequel, et c’était tout. Un Mac multi-écrans paraissait ainsi plus petit vu d’un téléphone qu’en vrai, et la partie du bureau dont vous aviez besoin se trouvait immanquablement sur l’écran que vous ne regardiez pas.

La 1.6 les envoie tous. La vue agrégée dispose les écrans ensemble, et toucher ou faire glisser sur l’un d’eux prend le contrôle de cet écran-là — le pointeur va où va votre doigt, sur l’écran où il se pose. Chaque écran est diffusé à la demande plutôt que tous en même temps, et c’est la seule raison pour laquelle un Mac à trois moniteurs reste utilisable sur la connexion d’un téléphone.

La même version permet de modifier un bureau enregistré et de récupérer son lien de partage sans quitter la session : préparer l’accès pour un deuxième appareil n’oblige plus à se déconnecter d’abord.

Des reconnexions qui reconnectent vraiment

Un bureau à distance qui lâche dans un ascenseur n’est pas un bureau à distance. Le chemin de connexion a été reconstruit en 1.6 autour d’un ordre de préférence simple : tenter d’abord un chemin pair à pair direct, parce qu’il est plus rapide et n’implique personne d’autre, et ne se rabattre sur un relais que si le chemin direct ne s’établit pas. Le pair à pair d’abord est une question d’ordonnancement, pas une case à cocher — l’app met les chemins en concurrence et prend celui qui répond.

C’est sur les tentatives répétées que ces choses tournent mal, dans un sens ou dans l’autre. Tout réessayer, et un identifiant erroné se transforme en boucle infinie qui ressemble à un problème de réseau. Ne rien réessayer, et deux secondes de hoquet cellulaire mettent fin à votre session. La 1.6 sépare donc les cas : un refus d’authentification arrête immédiatement le parcours de repli, parce que tenter le chemin suivant avec la même mauvaise clé échouera de la même façon, tandis qu’un échec de transport temporise avec de la gigue et continue d’essayer. La gigue compte plus qu’il n’y paraît — sans elle, tous les clients tombés au même instant reviennent au même instant.

En plus de cela : l’app remarque désormais le retour du réseau et se rétablit au lieu d’attendre la fin de sa temporisation, le chemin WebSocket a reçu un keepalive pour que les sessions inactives cessent d’être coupées par les équipements intermédiaires, et la boucle d’acceptation ne perd plus les connexions arrivées pendant qu’elle traitait la précédente.

Liens courts, et connexion sans rien copier

Une chaîne d’appairage est une longue ligne de texte contenant un hôte, un port, une empreinte de certificat et un jeton. Elle se scanne bien et s’envoie mal. La 1.6 a ajouté des liens courts pour le relais autonome comme pour le relais géré : l’app résout le lien, reçoit un jeton en retour et s’en sert pour se connecter — aucune empreinte à comparer à l’œil, rien à coller.

Petite correction connexe, dans la catégorie des choses qui n’auraient jamais dû avoir besoin d’être dites : le scanner de QR ignore maintenant les codes qui ne sont ni une chaîne d’appairage ni un lien court, au lieu d’essayer de fabriquer une connexion à partir d’un QR Wi-Fi laissé sur une affiche.

Du chiffrement sur le chemin du relais

Les trames du relais WebSocket sont chiffrées en 1.6, et le relais géré délivre des tickets au lieu d’accepter tout ce qui se présente dans la bonne salle. Les deux vont dans le même sens : le travail d’un relais est de transmettre des octets entre deux extrémités qui se sont déjà mises d’accord, et moins il peut faire de ces octets, mieux c’est. Si vous préférez ne faire confiance au relais de personne, celui qui est autonome est open source et vous pouvez le faire tourner vous-même.

Des versions qui se négocient au lieu de se deviner

L’app et l’agent Mac échangent désormais une version de protocole et un jeu de bits de capacité avant toute autre chose. Ce n’est pas spectaculaire et cela se rentabilise dès la première rencontre entre une vieille app et un agent récent : au lieu d’une connexion qui marche à moitié puis échoue à un endroit incompréhensible, l’app sait exactement ce que l’autre extrémité sait faire, et une app trop ancienne reçoit une invitation claire à se mettre à jour. Tout ce qui a suivi s’appuie sur ces bits de capacité — la négociation du codec audio en 1.8 est le même mécanisme.

L’authentification par code de connexion est arrivée ici aussi, avec limitation de débit et liste d’autorisation côté Mac : un code qui fuite ne peut pas être forcé en silence.

Six langues, terminées

L’interface a été localisée dans les six langues prises en charge à cette version, et non dans la plupart d’entre elles. Les apps de terminal accumulent beaucoup de chaînes courtes, et les vingt derniers pour cent sont celles que personne ne voit tant que rien ne va de travers — c’est-à-dire précisément le moment où lire une erreur dans sa propre langue compte.

Et les petites

  • Des marges de zone sûre dans le terminal, pour que le texte ne passe plus sous les coins arrondis et l’indicateur d’accueil.
  • Mémoire de clavier par hôte : le clavier que vous utilisiez avec un hôte est celui que vous retrouvez.
  • Un plafond de qualité xHD pour le bureau à distance, pour les fois où vous avez la bande passante et voulez les pixels.
  • Le port SSH se saisit au lieu de s’incrémenter, ce qu’appréciera quiconque a déjà tapoté jusqu’à 2222.

Toutes les fonctionnalités de la 1.6 sont gratuites. Les seuls achats intégrés sont des pourboires facultatifs, et ils ne débloquent rien.

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

Pour en savoir plus sur l’app, consultez le guide SharkTTY ; les notes courtes destinées aux utilisateurs se trouvent dans Nouveautés, et le moyen le plus rapide de nous joindre reste le tableau de retours. Retour au journal de dev.