e717de69ca
- standalone watchOS(WKApplication + WKWatchOnly), 다크 OLED, xcodegen 단일 타깃 - 4기능 = 이드(AI채팅)·공부(암기카드)·할일·브리핑 - 라이브: 공부 /study-cards(due·rate·flag) · 할일 /events(today·complete) · 브리핑 /briefing/latest · 이드 /eid/chat(SSE 누적, unavailable 처리) - 1회 로그인(access 메모리 + refresh 쿠키 7일 영속) + 401 자동 refresh+재시도 - 햅틱 피드백 + 정직한 로딩/빈/오류 상태 + DS 초록 아이콘(원형 마스킹) - 맥·아이폰은 웹 래퍼로(2026-06-15 결정), 순수 네이티브는 워치 전용 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
47 lines
1.5 KiB
Swift
47 lines
1.5 KiB
Swift
import SwiftUI
|
|
|
|
/// 워치 홈 = 4기능 메뉴. 작은 화면이라 큰 탭타깃 리스트.
|
|
struct RootMenu: View {
|
|
var body: some View {
|
|
NavigationStack {
|
|
List {
|
|
NavigationLink { EidView() } label: {
|
|
MenuRow(symbol: "bubble.left.and.bubble.right.fill", title: "이드", sub: "AI 채팅")
|
|
}
|
|
NavigationLink { StudyView() } label: {
|
|
MenuRow(symbol: "rectangle.on.rectangle.angled.fill", title: "공부", sub: "암기 카드")
|
|
}
|
|
NavigationLink { TodoView() } label: {
|
|
MenuRow(symbol: "checklist", title: "할 일", sub: "오늘")
|
|
}
|
|
NavigationLink { BriefingView() } label: {
|
|
MenuRow(symbol: "newspaper.fill", title: "브리핑", sub: "모닝")
|
|
}
|
|
}
|
|
.navigationTitle("DS")
|
|
}
|
|
.tint(WT.accent)
|
|
}
|
|
}
|
|
|
|
struct MenuRow: View {
|
|
let symbol: String
|
|
let title: String
|
|
let sub: String
|
|
var body: some View {
|
|
HStack(spacing: 10) {
|
|
Image(systemName: symbol)
|
|
.font(.system(size: 16))
|
|
.foregroundStyle(WT.accent)
|
|
.frame(width: 24)
|
|
VStack(alignment: .leading, spacing: 1) {
|
|
Text(title).font(.system(size: 16, weight: .semibold)).foregroundStyle(WT.ink)
|
|
Text(sub).font(.system(size: 11)).foregroundStyle(WT.muted)
|
|
}
|
|
}
|
|
.padding(.vertical, 3)
|
|
}
|
|
}
|
|
|
|
#Preview { RootMenu() }
|