macOS · DMG · v1.0.5
CatClock
맥 화면 위에 떠 있는, 고양이가 알람시계를 들고 있는 플로팅 타이머 위젯. 퇴근까지 얼마 남았는지, 이 작업이 몇 분째인지 — 작업을 방해하지 않고 곁눈질로 확인할 수 있게 만든 도구입니다. 스토어를 거치지 않고 DMG로 바로 받아 씁니다.
서비스 소개
CatClock 은 맥 위에서 일하는 사람을 위해 만든 가벼운 플로팅 타이머입니다. 기본 타이머 앱은 따로 창을 띄워야 하고, 메뉴바 타이머는 숫자가 너무 작고, 알람을 걸어두면 까먹기 일쑤 — 그래서 "그냥 화면 한 켠에 작게 떠 있고, 지나가다 보면 보이는" 위젯이 필요했습니다.
서버 없이 100% 로컬에서 동작합니다.
위치·설정은 UserDefaults 에 저장되고, 사용자가 직접 올린 고양이 사진은 앱 지원 폴더에 보관됩니다.
App Store 를 거치지 않는 대신, DMG 한 파일로 끝나는 단순한 배포를 골랐습니다.
- 플로팅 위젯테두리 없는 투명 NSPanel. 마우스로 끌어 옮기고, 다음 실행 시 위치 복원. 화면 밖으로 나가면 자동으로 안쪽으로 회수.
- 두 가지 표시 모드최상단 고정(다른 앱 위에 항상 보임) · 데스크탑 전용(앱을 켜면 가려지는 차분한 모드) — 메뉴바에서 즉시 전환.
- 두 가지 타이머작업 타이머(분 단위 직접 설정) · 퇴근 타이머(목표 시각까지 카운트다운, 지난 시각이면 다음 날로). 근무시간(N시간) 모드도 있음.
- 로그인 자동 실행아침에 맥을 켜면 CatClock 이 켜지고 N시간 카운트다운이 자동 시작 — 퇴근 시각에 "퇴근! 🎉" 반복 알림.
- 고양이 스킨 6종치즈냥 / 까만냥 / 삼색냥 / 턱시도냥 등 — 상태별(대기 · 진행 중 · 종료) 표정이 바뀝니다. 내 고양이 사진을 직접 올려 쓸 수도.
- 끄기 전까지 반복 알림타이머가 끝나면 4초마다 비프 + 위젯이 빨갛게 깜빡. 자리를 비웠다 와도 놓치지 않게.
- 메뉴바 상주독 아이콘 없이 메뉴바에만 — 상태 / 카운트다운 / 시작·일시정지·리셋·끄기 메뉴를 한 클릭으로.
설치 / 실행
- 위 Download latest (DMG) 버튼으로 최신 DMG 받기 (이전 버전은 릴리즈 노트에서 받을 수 있음)
- DMG 를 열어
CatClock.app을/Applications로 드래그 - 실행하면 메뉴바에 고양이 아이콘이 생기고, 화면 우상단에 위젯이 뜹니다. 끌어서 원하는 자리로
Behind the scenes
직접 쓰려고 만든, 첫 macOS 데스크탑 위젯.
-
01
"퇴근까지 얼마"가 원래 시작이었다
기본 타이머는 창을 띄워야 보이고, 메뉴바 타이머는 숫자가 작고, 알람만 걸어두면 까먹습니다. "그냥 한 켠에 작게 떠 있고, 지나가다 보면 보이는" 게 필요했어요. 처음엔 단순한 카운트다운으로 시작했는데, 막상 매일 쓰다 보니 "로그인하면 자동으로 9시간이 돌아가야 한다", "퇴근 시각이 지나면 다음 날로 넘어가야 한다", "끝나면 끄기 전까지 알려줘야 한다" 같은 아주 작은 — 하지만 매일 걸리적거리는 — 요구가 차곡차곡 쌓였습니다. 그게 v1.0.0 의 형태가 됐습니다.
-
02
투명 창 하나 띄우는 게 생각보다 깊다
SwiftUI 만으로는 "테두리 없고, 활성화되지 않고, 데스크탑 레벨에도 올라가는 패널" 을 만들 수 없어서
NSPanel+.nonactivatingPanel로 직접 짰습니다. 창 레벨을.floating↔CGWindowLevelForKey(.desktopWindow)사이에서 바꿔주면 "항상 위" / "바탕화면 위" 두 모드가 같은 창에서 나옵니다. 드래그·위치 저장은isMovableByWindowBackground로 단순화 — 위젯에 컨트롤이 너무 많지 않아 가능했던 선택. 화면 해상도 변화 / 모니터 분리로 위치가 화면 밖이면 자동으로 안쪽으로 끌어옵니다. -
03
서버 없는 앱의 가벼움
기존 프로젝트들은 거의 모두 서버를 두고 운영합니다 — 그래서 배포가 곧 인프라 작업이고, 한 번 출시하면 그 뒤로도 계속 돌봐야 합니다. CatClock 은 의도적으로 그 반대로 갔습니다. 서버 없음 · 계정 없음 · 통신 없음 — 빌드해서 DMG 한 파일로 끝. 덕분에 코드도 단순해지고, 사용자 입장에서도 "받아서 켜면 끝" 인 경험이 됩니다. 서버를 굴리는 것과는 또 다른, 작고 단단한 도구를 만드는 즐거움이 있었습니다.
Screenshots
카드를 누르면 큰 이미지로 볼 수 있습니다.
More
지나온 버전과 앞으로 들어갈 항목을 별도 페이지에서 확인할 수 있습니다.