Skip to content

feat(dashboard): Phase 2 — tabs + data visualization with Swift Charts - #12

Merged
devlikebear merged 14 commits into
mainfrom
feat/dashboard-v2-phase2
Apr 18, 2026
Merged

feat(dashboard): Phase 2 — tabs + data visualization with Swift Charts#12
devlikebear merged 14 commits into
mainfrom
feat/dashboard-v2-phase2

Conversation

@devlikebear

Copy link
Copy Markdown
Owner

Summary

DashboardApp v2 Phase 2: 탭 네비게이션 + Swift Charts 기반 통계 시각화 추가. 시간대별 작업 데이터(hourly_work)를 추가하여 히트맵에 활용.

Design spec: docs/superpowers/specs/2026-04-17-dashboard-v2-design.md
Implementation plan: docs/superpowers/plans/2026-04-17-dashboard-v2-phase2.md

Backend (Go)

  • DailySummary.HourlyWork [24]int 필드 추가 (하위 호환: 기존 JSON에 필드 없어도 zeroed 배열로 파싱)
  • state.State.HourlyWork [24]int 필드 + key=value serialize/parse (HOURLY_WORK=v0,v1,...,v23)
  • tickWork(): 시간대별 작업 시간 누적 (time.Unix(unix, 0).Hour() 버킷)
  • DayEndSummary.HourlyWork 필드로 일일 리셋 시 전달
  • ActionSaveDailyHistory 핸들러: 초 → 분 변환하여 히스토리에 저장

Frontend (Swift / SwiftUI)

  • HelperCore: HistoryEntry + parseHistory(from:) + loadHistoryFromDisk() (하위 호환 보장)
  • DashboardViewModel: selectedTab, history 상태 + loadHistory() 메서드
  • DashboardTab enum: 타이머 / 통계 / 인사이트
  • TabBarView: 3-way 세그먼트 탭 바 (active color 연동)
  • StatsTabView:
    • 기간 선택 (주간/월간/전체) — .labelsHidden()로 깔끔하게
    • 작업/휴식 바 차트 (Swift Charts BarMark) — 축 색상 명시
    • 시간대별 집중도 히트맵 (9~18시, GitHub 스타일 4단계)
    • 주간 요약 카드 3개 (작업/휴식/비율)
    • .scrollIndicators(.visible)로 스크롤 가능 표시
  • InsightsTabView: Phase 3 placeholder
  • DashboardContentView: 상단 고정 영역 + 탭 바 + 동적 탭 콘텐츠 전환

Test plan

  • go test ./... — 모든 패키지 통과
  • cd helpers && swift test — 59 tests 통과 (+4 HistoryParser, +2 State, +3 timer)
  • make build — Swift 3 바이너리 + Go CLI 빌드 성공
  • 대시보드 실행 — 3개 탭 모두 렌더링 및 전환 동작
  • 시드 데이터(7일치 hourly_work)로 차트/히트맵/요약 카드 렌더링 확인
  • 기존 ~/.break-reminder-history.json 하위 호환 (missing hourly_work → 빈 배열)

Known limitations (for Phase 4)

  • 전체 라이트/다크 테마 시스템은 Phase 4에서 ThemeManager로 도입 예정
  • 현재 일부 하드코딩된 색상은 다크 모드 기준 (.primary/.secondary는 적용됨)

@devlikebear
devlikebear merged commit 6349738 into main Apr 18, 2026
1 check passed
@devlikebear
devlikebear deleted the feat/dashboard-v2-phase2 branch April 18, 2026 02:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant