맥 바탕화면에 비를 내려보세요!
Make it rain on your Mac desktop!
핵심 요약
Claude와 Metal을 활용해 맥 화면에 비 내리는 효과를 구현한 앱 'Weatherling' 소개.
- 비 내리는 효과 — 맥 화면 위에 투명한 오버레이를 띄워 비 오는 분위기를 연출함
- 기술적 구현 — Metal과 Swift를 사용해 텍스처 없이 절차적으로 빗방울을 생성함
- 개인정보 보호 — 화면 기록이나 접근성 권한 없이 완전히 샌드박스 환경에서 작동함
- 향후 업데이트 — 소리 추가 및 사용자 정의 기능을 포함한 1.1 버전 개발 중

평소에 만들던 거랑은 좀 다르게 해보고 싶어서, Claude한테 Metal 쓰는 법 좀 알려달라고 해서 맥에 비 오는 날씨를 구현해 봤다. 평소에 UI 만드는 거 말고 그래픽 쪽은 건드리기 좀 꺼려졌는데, Claude Code 쓰니까 개꿀이더라.
핵심 트릭: 오버레이 하나, 가짜 깊이감.
macOS는 앱이 다른 앱 창 사이로 자기 창을 끼워 넣는 걸 허용 안 하거든. 그렇다고 private API 쓰기는 싫어서 Weatherling은 그런 짓 안 함. 그냥 디스플레이마다 투명하고 클릭 통과되는 창을 하나씩 띄우고, 그 안에서 레이어링을 가짜로 구현하는 방식임. 셰이딩은 전부 프로시저럴 방식이라 텍스처나 화면 캡처 같은 거 안 씀. 빗방울이 뒤에 있는 걸 실제로 굴절시키지도 않고. 하이라이트는 라이트 모드든 다크 모드든 다 잘 보이게 맞춰놨음.
물 시뮬레이션은 그냥 순수 Swift로 짰음. 창 가장자리를 작은 구간으로 나눠서 물이 흐르게 만든 거임.
권한 요구 제로: 화면 기록, 손쉬운 사용, 입력 모니터링, 자동화 같은 거 하나도 안 씀. 샌드박스 완벽하게 적용됐고 Mac App Store에도 올라가 있음.
알려진 한계: 창을 그냥 딱딱한 사각형으로 처리해서 반투명 효과나 커스텀 창 모양, 그림자 같은 건 구현 안 됨. 마스크 가장자리가 픽셀 단위로 딱딱하게 끊김.
켜면 = 창문에 비 내림. 끄면 = 비 안 내림. 끝! 이게 다임! 그냥 코딩하면서 분위기 잡는 용도임.
벌써 버전 1.1 작업 중인데, 소리 추가하고 커스터마이징 기능 좀 더 넣을 예정.

