Skip to content

포켓 모드

휴대폰이나 태블릿에서 주석 작업을 합니다. 터치 기기는 엄지 영역에 컨트롤을 둔 스와이프 카드 스택으로 자동 연결되며, 동기화가 붙은 오프라인 주석과 PWA 홈 화면 설치를 지원합니다.

v2.7.0의 새 기능

Potato는 휴대폰과 태블릿에서 하는 주석 작업을 지원합니다. 포켓 모드를 켜면 작업을 여는 터치 기기가 자동으로 모바일 인터페이스로 연결됩니다. 엄지 영역에 라벨 버튼을 둔 카드 스택, 스와이프 이동, 자동 동기화가 붙은 오프라인 주석, PWA 홈 화면 설치를 제공합니다. 데스크톱 사용자는 평소의 인터페이스를 그대로 보며 달라지는 것이 없습니다.

휴대폰에서 돌아가는, 엄지 영역 버튼과 오프라인 동기화를 갖춘 스와이프 카드 스택.

모든 주석 유형이 휴대폰에 어울리는 것은 아닙니다. 스팬 강조와 바운딩 박스는 데스크톱 작업입니다. Potato는 이 점을 분명히 다룹니다. 터치 가능한 작업은 모바일 인터페이스를 받고, 그렇지 않은 작업은 품질이 떨어진 UI 대신 분명한 경고를 받으며, 어느 쪽이든 관리자 대시보드에서 누가 어떤 종류의 기기로 주석하고 있는지 확인할 수 있습니다.

구성

yaml
pocket:
  enabled: true        # master switch for the mobile interface (default: false)
  auto_redirect: true  # send phones/tablets to /pocket automatically (default: true)
  batch_size: 25       # items fetched per batch; also the offline queue depth (1-200)

어떤 주석 유형이 모바일에 적합한가

터치 가능(모바일에서 제공)데스크톱 전용
radio, multiselect, likert, slider, number, text/textbox, pure_displayspan, 이미지 및 바운딩 박스, 비디오, 오디오, multirate, 그 밖의 모든 것

작업이 터치 가능하려면 그 작업의 스킴이 전부 왼쪽 열에 있어야 합니다. 데스크톱 전용 스킴이 하나라도 섞인 작업은 터치로 낮춰 제공되지 않습니다. 휴대폰은 연결이 전환되지 않고, 이 작업이 모바일에 최적화되어 있지 않다는 닫을 수 있는 알림을 보게 됩니다.

모바일 어노테이터를 염두에 두고 있다면 그에 맞게 설계하십시오. 라디오 스킴 하나짜리 작업이 가장 이상적이며, 한 번의 탭이 곧 라벨이 붙은 항목 하나가 됩니다.

기기 연결이 결정되는 방식

기기터치 가능한 작업, 포켓 모드 켜짐터치 가능하지 않은 작업
데스크톱평소 인터페이스평소 인터페이스
휴대폰 / 태블릿모바일 인터페이스로 전환평소 인터페이스 + 닫을 수 있는 경고

감지는 두 개의 층에서 이루어집니다.

  1. 서버 측(User-Agent). 휴대폰과 대부분의 태블릿은 스스로를 밝히므로, 데스크톱 페이지가 그려지기도 전에 전환됩니다. API 클라이언트와 알 수 없는 에이전트는 데스크톱으로 간주되므로 스크립트와 연동은 전환되는 일이 없습니다.
  2. 클라이언트 측(포인터 확인). 일부 태블릿은 데스크톱인 척합니다. 예컨대 iPadOS Safari는 자신을 Mac이라고 알립니다. 주석 페이지의 스크립트가 기기의 포인터가 거친 포인터(손가락)인지 확인해 그런 기기도 전환합니다. 터치스크린 노트북은 주 포인터가 트랙패드이므로 영향을 받지 않습니다.

이 전환은 주석 단계에 있는 어노테이터에게만 적용됩니다. 동의, 안내, 설문 페이지는 그대로입니다.

데스크톱 사용자도 직접 선택할 수 있습니다. 포켓 모드를 쓸 수 있는 작업에서는 내비게이션 바에 /pocket으로 가는 간편 보기 링크가 표시되며, 여기서 카드 스택은 항목당 클릭 한 번으로 빠르게 라벨을 붙이는 화면이 됩니다. 모바일 사용자는 데스크톱 사이트 링크로 빠져나갈 수 있고, 그 선택은 세션 동안 유지됩니다.

모바일 인터페이스

  • 카드 스택 — 카드 하나에 항목 하나입니다. 왼쪽으로 밀면 다음, 오른쪽으로 밀면 이전이며, 터치가 아닌 환경을 위한 화살표 버튼도 있습니다. 지원하는 기기에서는 저장할 때마다 짧은 진동으로 확인해 줍니다.
  • 엄지 영역 컨트롤 — 라벨 버튼은 엄지가 실제로 닿는 화면 아래 3분의 1에 놓입니다. 터치 대상은 48px 이상이고, 노치가 있는 휴대폰에서는 안전 영역 여백을 지키며, prefers-reduced-motion을 따릅니다.
  • 스킴 렌더링 — 라디오 하나짜리 작업과 likert 작업은 탭하면 자동으로 다음으로 넘어갑니다. 스킴이 여럿인 카드는 모든 컨트롤과 함께 명시적인 저장 후 다음 버튼을 보여줍니다.
  • 오프라인 주석 — 현재 배치를 미리 받아 localStorage에 복사해 둡니다. 연결이 끊겨도 주석 작업은 이어지고, 칩에 "Offline — N saves queued"가 표시되며, 다시 연결되면 대기열이 자동으로 전송됩니다. 첫 방문 이후에는 서비스 워커가 앱 셸을 캐시하므로 연결이 없어도 페이지가 열립니다. 와이파이에서 배치를 미리 받아 두면 어디서든 주석할 수 있고, 기기가 다시 통신 범위에 들어오면 동기화하면 됩니다.
  • 앱으로 설치 — 페이지가 웹 매니페스트를 함께 제공하므로 "Add to Home Screen"을 누르면 자체 아이콘을 가진 독립 앱이 됩니다.

저장은 데스크톱 페이지와 같은 /updateinstance 엔드포인트와 페이로드를 씁니다. 포켓 모드는 새로운 쓰기 경로를 더하지 않으므로 내보내기, 일치도 통계, 관리자 대시보드, 품질 관리 모두 평범한 주석으로 봅니다.

기기 탭

관리자 대시보드기기 탭이 생겨 어노테이터별로 마지막으로 확인된 기기, 기기 종류별 방문 횟수, 모바일 인터페이스를 사용한 횟수, 마지막 접속 시각을 보여줍니다. 요약 줄이 핵심을 알려 줍니다("12명 중 3명이 휴대폰이나 태블릿으로 접속했습니다").

이는 양쪽 방향으로 쓸모가 있습니다. 작업이 터치 가능하지 않은데도 기기 탭에 휴대폰을 쓰는 어노테이터가 보인다면, 그들은 경고를 보고도 그대로 진행한 것이므로 결과물을 한 번 들여다볼 만합니다. 그리고 방문 기록은 포켓 모드를 켜든 켜지 않든 남기 때문에, 켜기 전에 "포켓 모드를 켜면 도움이 될까?"라는 물음에 이 탭이 답해 줍니다.

데이터는 <output_annotation_dir>/pocket/device_visits.json에 사용자별 집계로만 저장됩니다. 항목 단위 추적은 없습니다.

문제 해결

  • 휴대폰이 전환되지 않습니다. pocket.enabledpocket.auto_redirect가 true인지, 작업이 터치 가능한지(GET /pocket/api/routingcapable: true를 보여주는지), 그리고 사용자가 이번 세션에서 "데스크톱 사이트"를 고르지 않았는지 확인하십시오.
  • iPad가 처음 열 때 데스크톱 페이지를 받습니다. iPadOS Safari는 자신을 Mac이라고 알리므로 서버가 잡아낼 수 없습니다. 페이지의 스크립트가 실행되고 나면 클라이언트 측 포인터 확인이 전환해 줍니다.
  • 모바일에서는 "끝났다"고 하는데 데스크톱 페이지에는 남은 항목이 보입니다. 동기화되지 않은 오프라인 저장이 남아 있을 수 있습니다. 동기화 칩이 대기열을 보여주며, 기기가 다시 온라인이 되면 전송됩니다.

추가 자료