watchOS에서 지도를 완성하는 데 걸린 6년

Apple Watch로 산책이나 등산을 할 때, 가장 중요한 습관 하나가 있다. 이동 중 현재 위치를 매우 자주 확인하는 것. 손목 위적지도가 이를 위한 가장 좋은 방식이다.
Pedometer++ 개발자 David Smith는 Apple Watch 출시 초기부터 손목 위의 좋은 지도를 원했지만, 현실적으로는 watchOS 6에서 SwiftUI가 도입되고 "진짜" 앱을 만들 수 있게 된 뒤에야 가능성이 생겼다. 그리고 그 길을 완성하는 데 6년이라는 시간이 걸렸다.
첫 번째 시도: 서버 기반 지도의 한계
초기 Apple Watch는 화면이 작고 프로세서가 느려 원하는 수준에 도달하기 어려웠다. Pedometer++의 첫 지도 시도는 서버에서 지도를 생성해 Apple Watch에 표시하는 방식이었다.
// 초기 접근: 서버에서 지도 이미지를 생성let mapImage = await server.generateMap(for: workoutData)
문제는 운동 데이터를 매번 왕복 전송해야 화면을 새로고침할 수 있다는 점이었다. 아이디어 검증에는 유용했지만, 내비게이션이나 일상적 사용에는 실용적이지 않았고, 오프라인에서도 동작할 수 없었다.
SwiftUI 기반 커스텀 지도 엔진
watchOS에서 진전하려면 더 낮은 수준의 제어가 필요했다. 그래서 완전한 SwiftUI 네이티브 지도 렌더링 엔진을 직접 구축했다.
SwiftUI는 당시 watchOS가 지원하는 선택지였고, SwiftUI만 지원하는 위젯에 지도를 넣는 데도 도움이 되었다. 2021년에는 watchOS에서 지도를 안정적이고 성능 좋게 렌더링할 수 있는 수준에 도달했다.
이 엔진의 핵심은 타일 기반 지도를 렌더링하고, 그 위에 위치 정보를 오버레이할 수 있다는 점이었다.
화면 설계의 딜레마
watchOS 앱 설계는 작은 화면과 한 손 조작이라는 제약 때문에 재미있지만 답답한 과제였다.
목표는 사용자가 지도를 읽고 내비게이션에 활용하면서도 운동 관련 정보에 접근할 수 있게 만드는 것이었다. 여러 설계 시도 끝에 한동안은 왼쪽 위 버튼으로 지도 화면과 지표 화면을 전환하는 모달 방식을 채택했다.
하지만 이 설계는 타협처럼 느껴졌다. 지도를 인터랙티브하게 만들려면 스와이프가 필요한 UI 구조 안에 지도를 넣기 어려웠다.
여러 설계안은 공통적으로 앱이 한 번에 고정된 필드 집합만 표시해야 한다는 한계를 가졌다. 인터페이스를 사용자가 구성할 수 있게 만들 수도 있었지만, watchOS 설계에서는 몇 초 이상 걸리는 상호작용을 피해야 하며 사용자 설정은 번거로운 것이므로 적합하지 않았다.
Liquid Glass를 위한 새 지도 제작
앱 구조 설계가 계속 고민되던 시점에 Apple이 watchOS 26과 Liquid Glass를 발표 했다. Liquid Glass의 핵심 설계 요소는 요소를 겹겹이 쌓는 레이어링이며, 서로 잘 맞는 색의 유형도 중요했다.
기존에는 앱의 기본 지도에 Thunderforest Outdoors를 사용했지만, 포함된 콘텐츠는 좋았지만 유리 같은 요소를 얹었을 때 Liquid Glass에 잘 맞지 않았다.
그래서 지도 제작자 Andy Allen과 함께 Liquid Glass에서 잘 보이도록 완전히 새로운 기본 지도를 제작했다.
새 지도에서는:
• 시각적 복잡도를 줄이고
• 요소의 대비를 높이며
• 유리 아래에서 탁하게 뭉개지지 않도록 지도 요소의 채도를 높였다
이 작업을 통해 지도 타일의 다크 모드 변형도 만들 수 있게 되었다. 다크 모드는 iOS에서도 유용하지만 watchOS에서 특히 효과가 컸고, 팔 길이 거리에서도 매우 읽기 쉬운 지도를 목표로 조정했다.
Rafa Conde와 새로운 레이아웃
결과적으로 watchOS에 적합한 지도가 생겼지만, 그 수준에 맞는 앱 설계는 아직 부족했다. 정체를 벗어나기 위해 디자이너 Rafa Conde와 협업했다.
여러 대안 레이아웃 중:
• 지표를 왼쪽 위에 레이어링하고

• 지도를 세로 스택의 맨 위 페이지로 두는
설계가 최종 방향이 되었다. 이 설계는 지도를 먼저 탭해야 탐색 모드로 들어가도록 만들어 인터랙티브 지도의 문제를 처리했다.
전체 콘셉트가 정해진 뒤 실제 앱을 만들고 세부 요소를 다듬는 작업이 이어졌다. Rafa의 콘셉트는 빠르게 동작하는 프로토타입으로 구현됐고, 수백 마일을 걸으며 현장에서 검증되었다.
MapKit을 쓰지 않은 이유
watchOS용 Apple MapKit이 등장하기 전부터 커스텀 지도 작업이 진행됐다. MapKit 대신 직접 구현한 이유는 Pedometer++에 필요한 구성 가능성과 유틸리티가 부족했기 때문이었다.
MapKit의 한계:
• 항상 다크 모드로 표시되며, 사용자 선택 불가
• 애니메이션과 오버레이 측면에서 여전히 제한적
• 지형 등고선과 트레일 표시 범위는 개선되고 있지만, 커스텀 지도가 더 풍부한 세부 정보를 제공
예를 들어, 스코틀랜드의 하이킹 코스를 보면 커스텀 지도와 MapKit 사이에 큰 차이가 있다. Apple Watch의 Metal 그래픽 API를 서드파티 개발자에게 열어주지 않아서, 동적 렌더링 자체가 불가능할 수도 있다고 지적했다.
6년 결실: Pedometer++ 8
수많은 시행착오와 수백 마일의 현장 검증을 거쳐, Pedometer++ 8 출시로 마침내 중요한 도달점에 이름했다.
최종 화면은:
• 읽기 쉽고 유용하며
• watchOS 플랫폼에 자연스럽게 맞으면서도
• 새롭고 독특한 디자인
으로 정리되었다.
배운 점
이 여정에서 얻은 핵심 교훈:
1. 제약이 혁신을 만든다 — 작은 화면, 느린 프로세서라는 제약이 커스텀 엔진을 만들게 했다
2. 현장 테스트는 대체할 수 없다 — 수백 마일의 검증이 최고의 설계로 이끌었다
3. 좋은 도구보다 올바른 도구가 있다 — MapKit 대신 커스텀 구현이 필요했다
4. 인내심은 보상된다 — 6년이라는 시간이 걸렸지만 최고의 결과를 만들었다
Apple Watch로 산책할 때 손목 위의 지도 하나에도 이렇게 많은 고민과 노력이 담겨 있는지 알면, 매번 지도를 볼 때마다 조금 다른 감각을 느낄 것이다.
📚 출처
• 제목: watchOS에서 지도를 완성하는 데 걸린 6년
• 원문: david-smith.org
'자동화&툴 리뷰' 카테고리의 다른 글
| Uber, Claude Code에 2026년 AI 예산을 4개월 만에 모두 태움 완벽 가이드 (0) | 2026.05.04 |
|---|---|
| dav2d - VideoLAN의 AV2 크로스 플랫폼 디코더 완벽 가이드 (0) | 2026.05.04 |
| LinkedIn이 브라우저 확장 프로그램을 스캔 중 — 개발자가 알아야 할 핵심 정리 (0) | 2026.05.03 |
| 스페인 의회가 LaLiga의 대규모 IP 차단에 대응할 예정 — 개발자가 알아야 할 핵심 정리 (2) | 2026.05.03 |
| 포지의 연합이 필요하다 — Tangled로 열어가는 분산형 코드 협업의 새 지평 (0) | 2026.05.01 |