개발기
ContinuityCapture 개발기 — iPhone 카메라를 Mac의 단축키로 부르기
개발 발행 3분 읽기
#ContinuityCapture#개발기#macOS#iPhone
ContinuityCapture 프로젝트 보기ContinuityCapture는 Mac에서 단축키를 누르면 iPhone·iPad의 연속성 카메라로 사진을 찍거나 문서를 스캔하고, 결과를 폴더와 클립보드로 바로 건네는 macOS 도우미입니다. Preview를 열어 저장하거나 클라우드 동기화를 기다리는 중간 단계가 없습니다.
처음에는 단축어를 찾았습니다#
원했던 것은 거창한 카메라 앱이 아니라 “Mac에서 부르고, iPhone으로 찍고, Mac에서 바로 쓰기”였습니다. 먼저 Shortcuts와 AppleScript로 Preview의 가져오기 메뉴를 여는 방법을 시험했습니다. 상주 프로그램은 필요 없었지만, 화면 메뉴를 대신 누르는 자동화는 앱의 언어와 메뉴 상태에 영향을 받고 촬영 뒤 저장 단계도 남았습니다.
특히 사진이 목적일 때 Preview 창을 거쳐 다시 파일로 저장하는 흐름은 문제를 옆으로 옮긴 것에 가까웠습니다. 그래서 단축어를 더 복잡하게 만드는 대신, 메뉴가 내부에서 사용하는 macOS의 연속성 카메라 기능을 작은 네이티브 앱에서 직접 호출하기로 했습니다.
시스템 기능을 정면으로 호출했습니다#
ContinuityCapture는 AppKit이 제공하는 가져오기 동작을 열고, iPhone에서 넘어온 사진이나 스캔 결과를 받아 저장합니다. UI 스크립팅으로 메뉴 좌표를 쫓지 않기 때문에 시스템 언어나 기기 이름을 코드에 새길 필요가 없습니다. 촬영 데이터의 이동은 macOS와 iPhone의 연속성 서비스가 맡고, 앱은 도착한 결과만 처리합니다.
사진은 이미지 파일로, 여러 장의 문서 스캔은 하나의 PDF로 정리합니다. 저장 뒤에는 클립보드에도 복사해 문서나 대화창에서 바로 붙여넣을 수 있게 했고, 원한다면 단축키를 누르던 앱으로 자동 전달할 수 있게 이어 붙였습니다.
한 번 쓰고 사라지는 앱으로 만들었습니다#
카메라를 부르는 도구가 하루 종일 메모리를 차지할 이유는 없었습니다. 실행하면 촬영을 기다리고, 저장·취소·오류 중 하나로 끝나는 즉시 종료합니다. 자동 붙여넣기 권한이 없을 때도 저장과 클립보드는 그대로 작동하도록 단계별로 실패를 분리했습니다.
또한 특정 사용자명이나 설치 폴더 대신 앱 이름을 통해 실행하게 바꾸고, 배포용 앱 번들만으로도 동작하도록 정리했습니다. 소스에서 빌드하는 사람과 완성된 앱을 받는 사람 모두 같은 사용 흐름을 갖게 하려는 결정이었습니다.
지금은#
ContinuityCapture는 무료 오픈소스로 공개되어 있으며 사진과 문서 스캔을 지원합니다. Alfred, Shortcuts, Karabiner 같은 각자의 도구에 실행 명령을 연결할 수 있고, 저장 폴더와 자동 붙여넣기 여부도 선택할 수 있습니다. 목표는 여전히 단순합니다. iPhone 카메라를 Mac의 자연스러운 입력 장치처럼 쓰는 것입니다.