7월 2일, 한 시간 간격으로 붙은 두 개의 태그. 1.7 다음에 1.8입니다. 로그가 잘못된 것이 아닙니다. 1.7이 기능 릴리스이고 — 원격 데스크톱이 보기만 하는 창에서 실제로 일할 수 있는 자리로 바뀐 릴리스입니다 — 1.8은 거기에 한 가지를 더한 것입니다. 1.7이 막 보내기 시작한 소리 아래에 제대로 된 오디오 코덱을 넣었습니다. Mac 쪽에서는 SharkTTY Desk 0.7.0과 0.8.0이 짝을 이룹니다.
진짜 키보드다운 키보드
iOS 키보드로 iPad에서 Mac을 조작하는 것은 인내심 훈련에 가깝습니다. Escape가 없습니다. Control이 없습니다. 기능 키도 없습니다. macOS가 누르고 있으라고 기대하는 키가 iOS에는 하나도 없습니다.
그래서 1.7은 자기 키보드를 길렀습니다. iPad 원격 데스크톱의 플로팅 QWERTY 보드로 시작해, 열 몇 번의 커밋을 거치며 누가 봐도 키보드라고 할 만한 물건이 되었습니다. 기호와 Tab, Return, 넓은 Shift와 함께 진짜 보조키로 동작하는 ⌃, ⌥, ⌘, 그리고 두 줄에 걸친 ISO 스타일 L자 Return. 이 Return은 엄지가 실제로 어디에 닿는지 살펴본 뒤 홈 열과 맨 아랫줄로 내려가면서 두 칸짜리 Shift와 fn 키를 얻었습니다.
있기만 한 물건에서 쓸 만한 물건으로 만든 설정은 둘입니다. 크기를 조절할 수 있고, 슬라이더로 투명도를 정할 수 있습니다 — 아래 데스크톱이 비쳐 보이는 게 싫다면 완전히 불투명하게까지. iPad 아래쪽 3분의 1을 덮는 키보드는 그 밑이 보일 때 전혀 다른 이야기가 됩니다. 그리고 서로 경쟁하는 두 개의 버튼 대신, 이제 모드 드롭다운이 달린 키보드 버튼 하나가 있습니다. 플로팅 보드로 가거나, 단축키 도구 막대가 딸린 시스템 키보드로 가거나.
손가락으로 픽셀 하나를 짚기
손끝은 macOS 창의 신호등 버튼 세 개를 합친 정도의 면적을 덮습니다. 가상 마우스가 존재하는 이유가 바로 이 산수이고, 1.7은 거기에 돋보기를 붙였습니다 — 손가락 아래 영역을 Mac의 네이티브 해상도로 보여 주는 확대창이라, 체크박스 근처가 아니라 체크박스 위에 정확히 내려앉을 수 있습니다. 포인터와 돋보기 모두 단일 디스플레이 안에서만이 아니라 통합 화면 배치 전체에서 동작하도록 확장되었습니다.
이 영역의 수정 하나는 짚고 넘어갈 만한데, 실제로 써 봐야만 드러나는 종류이기 때문입니다. 돋보기 타일은 메인 화면과는 별개의 픽셀 스트림이라 아주 조금 늦게 도착합니다. 커서가 움직이는 동안에는 확대된 화면이 커서가 있었던 자리를 보여 준다는 뜻입니다. 뒤처진 돋보기를 보여 주는 것은 아예 보여 주지 않는 것보다 나쁘므로, 이제 커서가 움직이는 동안에는 숨었다가 멈추면 다시 나타납니다.
배치할 수 있는 하나의 그림이 된 화면들
1.6은 모든 디스플레이를 화면에 올렸습니다. 1.7은 그것들을 배치할 수 있게 했습니다. 화면 병합 드롭다운, 그리고 옮기고 크기를 조절할 수 있는 디스플레이 영역입니다. 마지막 항목에는 핸들이 필요했는데, 이유는 이렇습니다. 똑같은 끌기 제스처가 의도에 따라 두 가지를 뜻합니다 — 이 그림을 옮기거나, 그림 안에서 Mac의 포인터를 옮기거나. 둘 사이를 추측하는 것은 어느 쪽으로도 나쁜 경험이므로, 이동과 크기 조절은 핸들이 있는 명시적인 조정 모드 뒤로 넣었고 손가락을 오므려 확대하는 동작도 그곳에서만 적용됩니다.
오른쪽 클릭도 규모만 작을 뿐 같은 문제를 안고 있었습니다. 자리마다 방식이 달랐던 것을 1.7에서 타일 보기와 집중 보기 모두 두 손가락 탭으로 통일했습니다. 단일 디스플레이도 상단 바와 아래쪽 가장자리에서 안쪽으로 들여, 그림이 앱 자신의 UI 아래로 숨지 않게 했습니다.
가정하지 않고 협상하는 화질
이제 영상 화질은 대화입니다. Mac 에이전트가 자신이 인코딩할 수 있는 등급을 알리고, 뷰어가 하나를 골라 그리며, 상한인 xHD — Mac의 네이티브 픽셀 — 는 기기에서 요청할 수 있습니다. 이것은 1.6에서 추가한 기능 비트 구조 위에 얹혀 있고, 덕분에 새 앱이 오래된 에이전트에게 무언가를 요청했을 때 깨진 스트림 대신 분명한 거절을 받게 됩니다.
양쪽으로 흐르는 소리
1.7은 Mac에서 기기로 오는 시스템 오디오와, 반대 방향으로 가는 마이크 업링크를 추가했습니다. 그래서 iPhone이 다른 곳에 있는 Mac의 마이크가 될 수 있습니다. 둘을 합치면, Mac으로 걸려 온 통화를 실제로 받을 수 있는 통화로 만들어 줍니다.
여기서 1.8이 등장합니다. 그때까지 오디오는 데이터 채널 위의 원본 PCM이었습니다. 정확하지만 소리에 필요한 것보다 훨씬 많은 대역폭을 씁니다. 1.8은 Opus를 추가했습니다 — 자체 기능 비트를 가진 프로토콜의 코덱 어휘, 안전한 래퍼와 함께 빌드에 포함한 libopus 1.5.2, 그리고 FFI를 통해 연결한 뷰어 쪽 디코딩입니다. 중요한 절반은 기능 비트입니다. 에이전트와 뷰어가 둘 다 Opus를 말하지 못하면 실패하는 대신 공통으로 가진 것으로 되돌아갑니다. 그 경로의 남은 조각들 — 임의의 PCM을 20 ms Opus 프레임으로 바꾸는 버퍼 인코더와 뷰어 쪽 재생 — 은 다음 빌드에서 마무리되었습니다.
한편, 터미널에서는
1.7에서는 원격 데스크톱이 관심을 대부분 가져갔지만, 터미널도 챙길 만한 것을 셋 얻었습니다.
- 보조 바에서 바로 하는 파일 업로드. 설정 파일 하나를 파일 관리자를 거치지 않고 서버로 보낼 수 있습니다.
- 키보드 숨기기 버튼. 대부분이 키보드인 휴대폰 화면에서 출력을 읽기 위한 것입니다.
- 마우스 리포트 토글. 켜면 연결된 트랙패드나 마우스의 클릭과 드래그가 그것을 이해하는 프로그램으로 갑니다 — vim, tmux, htop, less. 끄면 포인터가 대신 텍스트를 선택합니다. 두 동작 다 옳고, 지금 어느 쪽이 필요한지는 당신만 압니다.
플로팅 키보드는 터미널 쪽에서도 기호와 Tab, Return을 얻었고, 대충 비슷한 배열이 아니라 표준 미국식 키보드에 맞춰 다시 배치되었습니다 — 다음 빌드에서 도착한 여섯 개의 진짜 배열을 위한 밑작업이었습니다.
다른 언어로 읽기: English · 中文 · 日本語 · Español · Français · 한국어 · Українська
앱 자체에 대한 자세한 내용은 SharkTTY 가이드에서, 사용자용 짧은 업데이트 안내는 새로운 기능에서 확인할 수 있습니다. 가장 빠른 문의 방법은 피드백 보드입니다. 개발 블로그로 돌아가기.