2 Commits

Author SHA1 Message Date
songyc macbook
0cdb566ad5 fix(watch): 컴플리케이션이 워치 앱을 열지 않아도 갱신되도록 수정
- 워치 앱 시작(App.init) 시점에 WCSession 활성화: 백그라운드로 깨어나
  스냅숏을 받을 수 있도록 델리게이트를 미리 설정
- iPhone이 transferCurrentComplicationUserInfo 전용 채널로도 스냅숏 전송
  (전송 예산 고려: 측정 상태 변화 또는 30분 경과 시에만)
- 워치 didReceiveUserInfo 수신 → 캐시 저장 + 컴플리케이션 타임라인 갱신
- ComplicationStore.defaults 단일 인스턴스화

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013yKDMhuF39GVYy3FMcGHh7
2026-07-10 14:44:48 +09:00
songyc macbook
f9f1898d15 feat(watch): 애플워치 앱 + WCSession 실시간 연동 (CLAUDE.md §9.1)
- WatchShared/WatchPayload: iOS·워치·워치위젯 3개 타깃이 공유하는 Codable 스냅숏
  (꼬리표/행동/목표·다짐 진행률/측정 중 대표 행동 + 추가 개수/프리미엄)
- iOS WatchSyncManager: 워치의 실행·새로 고침 명령 처리(ActionRunner 공용) 후
  Live Activity·홈 위젯 갱신, 데이터 변경 시 updateApplicationContext로 푸시
- 워치 앱: 꼬리표 목록 → 행동 목록 → 탭으로 실행(시간형 토글/횟수형 +1),
  측정 중 실시간 타이머, 대표 행동 표시는 다이나믹 아일랜드 설정과 동일 기준
- 미결제 시 프리미엄 잠금, iPhone 연결 불가 안내
- 수신 스냅숏을 워치 App Group에 캐시 (컴플리케이션용)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013yKDMhuF39GVYy3FMcGHh7
2026-07-10 09:00:01 +09:00