diff --git a/myApp/HaruDanim/CLAUDE.md b/myApp/HaruDanim/CLAUDE.md index 9e1a3ea..fd8bfae 100644 --- a/myApp/HaruDanim/CLAUDE.md +++ b/myApp/HaruDanim/CLAUDE.md @@ -225,7 +225,7 @@ xcrun xcstringstool sync Widgets/Localizable.xcstrings --stringsdata "${widget_f - iPhone만: 내비게이션 방식(탭바/버블) + 탭바 구성 or 버블 순서·두 번 눌러 바로 이동(토글+대상 탭) - 모음 탭 목표 카드 선택(개수 무제한)+표시 방식 / 주 시작 요일 / 하루 시작 시간 / 짧은 기록 무시 / **장시간 측정 알림**(1~12시간, 켜는 순간 알림 권한 요청 — `SessionAlertManager`가 LiveActivityManager.sync 길목에서 진행 세션과 예약을 동기화, 세션 종료·설정 변경 시 예약 제거) / 대표 시간 기준(가장 먼저·나중에 시작 — 기본 latest) - 데이터: **데이터 내보내기** — 행동·시간·횟수·목표·다짐을 CSV 5파일로 (ISO 8601, UTF-8 BOM, 무료 포함) -- 프리미엄 화면(§8) / 도움말(`HelpView` — 기기별 주제 분기, DisclosureGroup) / 버전(번들 CFBundleShortVersionString 표시) +- 프리미엄 화면(§8) / 도움말(`HelpView` — 기기별 주제 분기, DisclosureGroup. **그룹당 대표 주제 1개에 예시 스크린샷**(IOS/HelpImages/help-<이름>-.jpg, 총 18장 ≈1.6MB) — 언어별 파일을 HelpImage 로더가 표시 언어로 선택(jpg라 UIImage(named:) 대신 URL 로드). 앱 화면·문구가 크게 바뀌면 해당 스크린샷도 재촬영할 것: 시뮬 로케일별 재시드 후 §14 인자로 촬영, 워치는 상태바 크롭) / 버전(번들 CFBundleShortVersionString 표시) --- @@ -332,7 +332,7 @@ xcrun xcstringstool sync Widgets/Localizable.xcstrings --stringsdata "${widget_f | 측정 알림 | `-settings.longSessionAlertHours `(설정 주입) `-longSessionAlertTestSeconds `(시간 대신 N초 발화, provisional 권한 자동) `-alertDump`(예약 상태 → Documents/session-alerts.txt) | | 목표 | `-goalShowEditor` `-goalShowFinished` `-goalReorder` `-goalScrollBottom` `-questShowEditor`(다짐 편집기 표시 — 마감 시각 다짐 우선, 없으면 첫 다짐) `-endGoalYesterday "제목"`(종료일을 어제로 — 실행 시점 자동 판정 검증) `-watchGoals `(생성순 목표 N개를 '애플워치에서 보기'로 설정, 0=전체 해제 — 설정 후 스냅숏 즉시 푸시, 컴플리케이션 필터 검증용) `-streakDump`(모든 다짐의 연속 계산 결과 → Documents/streak-dump.txt) `-progressSelfTest`(spanProgress 수치 37건 자가 검증[환산 캡·수행일 집계·마감·atMost·custom] → Documents/progress-self-test.txt — 인메모리 컨테이너·설정 고정이라 실데이터/기기 설정 무영향) | | 기록/통계 | `-historyMode timetable` `-historyWeekly` `-excludeActions "이름,이름"` `-historyShowFilter` `-statShowFilter` `-statSpan ` `-statScrollBottom` `-showExport` `-exportDump`(Documents/export-dump.png) `-recordShowEditor `(최신 기록 수정 시트) | -| 설정/기타 | `-settingsScrollGoal` `-settingsScrollPremium` `-premiumPreview` `-helpPreview` `-dataExportPreview`(+`-dataExportRun`이면 CSV 자동 생성 후 Documents 복사) `-widgetPreview YES|lock` `-widgetPreviewScroll <앵커>` `-widgetRenderMode accented|vibrant`(틴트/투명 홈 렌더링 분기 검증) `cloudSync`(standard bool로 강제) `-intentSmokeTest`(시리 인텐트 10개 시나리오 실행 → Documents/intent-smoke-test.txt, -seedDemo·-premium과 함께) | +| 설정/기타 | `-settingsScrollGoal` `-settingsScrollPremium` `-premiumPreview` `-helpPreview`(+`-helpExpandAll`: 전 주제 펼침, `-helpScrollTo `: 이미지 주제로 스크롤) `-dataExportPreview`(+`-dataExportRun`이면 CSV 자동 생성 후 Documents 복사) `-widgetPreview YES|lock` `-widgetPreviewScroll <앵커>` `-widgetRenderMode accented|vibrant`(틴트/투명 홈 렌더링 분기 검증) `cloudSync`(standard bool로 강제) `-intentSmokeTest`(시리 인텐트 10개 시나리오 실행 → Documents/intent-smoke-test.txt, -seedDemo·-premium과 함께) | | 버블 | `-radialExpanded` `-radialDoubleTapTest`(2초 뒤 FAB 더블탭 재현 — `-settings.radialDoubleTapTab <탭>`과 함께) | | 일기 | `-diarySeed`(필기 획 2줄 포함 — 달력 화면에서 먼저 시드 후 재실행으로 열 것) `-diaryOpenToday`(**`-startTab diary` 필수**) `-diaryPage ` `-diaryZoomScale <배>`(2.5초 뒤 fit×N 프로그램 줌 — 획 유지·선명도 확인) `-diaryShowConfig` `-diaryShowExport`(달력 화면 onAppear — `-diaryOpenToday`와 함께 쓰면 안 뜸) `-diaryExportRun pdf|image`(결과를 Documents로 복사) `-diaryShowCalendarPicker` `-diarySeedEvents` `-diaryHideFirstAction` `-diaryShowActionFilter` `-diaryHideFirstGoal` `-diaryShowGoalFilter` `-diarySeedPhoto`(오늘=이모지+사진·어제=사진만 기분 사진 시드 — 달력 백레이어 검증) `-diarySeedTemplate`(2쪽 샘플 PDF 양식 생성) `-diaryShowTemplates`(양식 관리 시트) `-diaryShowPageChooser`(페이지 추가 선택 시트) `-diaryApplyTemplate`(첫 양식으로 페이지 추가) / 섹션 강제: `-diary.sectionOrder "timetable,hero,goals"` `-diary.hiddenSections "mood,todos,records,bars"` | | 워치 | `-complicationPreview` `-complicationScroll` `-complicationScrollTo ` `-autoRunFirstAction` `-autoStopRunning`(측정 중 행 탭과 동일 경로로 대표 측정 종료 — 페어링 심 E2E용) | diff --git a/myApp/HaruDanim/IOS/HelpImages/help-diary-en.jpg b/myApp/HaruDanim/IOS/HelpImages/help-diary-en.jpg new file mode 100644 index 0000000..9994bd1 Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-diary-en.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-diary-ja.jpg b/myApp/HaruDanim/IOS/HelpImages/help-diary-ja.jpg new file mode 100644 index 0000000..e2bf60b Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-diary-ja.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-diary-ko.jpg b/myApp/HaruDanim/IOS/HelpImages/help-diary-ko.jpg new file mode 100644 index 0000000..74290fa Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-diary-ko.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-goal-en.jpg b/myApp/HaruDanim/IOS/HelpImages/help-goal-en.jpg new file mode 100644 index 0000000..f455cda Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-goal-en.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-goal-ja.jpg b/myApp/HaruDanim/IOS/HelpImages/help-goal-ja.jpg new file mode 100644 index 0000000..3e12e83 Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-goal-ja.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-goal-ko.jpg b/myApp/HaruDanim/IOS/HelpImages/help-goal-ko.jpg new file mode 100644 index 0000000..87f295a Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-goal-ko.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-history-en.jpg b/myApp/HaruDanim/IOS/HelpImages/help-history-en.jpg new file mode 100644 index 0000000..5c33f82 Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-history-en.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-history-ja.jpg b/myApp/HaruDanim/IOS/HelpImages/help-history-ja.jpg new file mode 100644 index 0000000..ccc1089 Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-history-ja.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-history-ko.jpg b/myApp/HaruDanim/IOS/HelpImages/help-history-ko.jpg new file mode 100644 index 0000000..1dbd04a Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-history-ko.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-main-en.jpg b/myApp/HaruDanim/IOS/HelpImages/help-main-en.jpg new file mode 100644 index 0000000..933c266 Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-main-en.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-main-ja.jpg b/myApp/HaruDanim/IOS/HelpImages/help-main-ja.jpg new file mode 100644 index 0000000..f61b52b Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-main-ja.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-main-ko.jpg b/myApp/HaruDanim/IOS/HelpImages/help-main-ko.jpg new file mode 100644 index 0000000..e56df51 Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-main-ko.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-radial-en.jpg b/myApp/HaruDanim/IOS/HelpImages/help-radial-en.jpg new file mode 100644 index 0000000..415ba07 Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-radial-en.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-radial-ja.jpg b/myApp/HaruDanim/IOS/HelpImages/help-radial-ja.jpg new file mode 100644 index 0000000..7f2bffb Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-radial-ja.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-radial-ko.jpg b/myApp/HaruDanim/IOS/HelpImages/help-radial-ko.jpg new file mode 100644 index 0000000..a3e19f2 Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-radial-ko.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-watch-en.jpg b/myApp/HaruDanim/IOS/HelpImages/help-watch-en.jpg new file mode 100644 index 0000000..2957d00 Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-watch-en.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-watch-ja.jpg b/myApp/HaruDanim/IOS/HelpImages/help-watch-ja.jpg new file mode 100644 index 0000000..b6273f4 Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-watch-ja.jpg differ diff --git a/myApp/HaruDanim/IOS/HelpImages/help-watch-ko.jpg b/myApp/HaruDanim/IOS/HelpImages/help-watch-ko.jpg new file mode 100644 index 0000000..8daad99 Binary files /dev/null and b/myApp/HaruDanim/IOS/HelpImages/help-watch-ko.jpg differ diff --git a/myApp/HaruDanim/IOS/Views/HelpView.swift b/myApp/HaruDanim/IOS/Views/HelpView.swift index ffff513..e0e8a5d 100644 --- a/myApp/HaruDanim/IOS/Views/HelpView.swift +++ b/myApp/HaruDanim/IOS/Views/HelpView.swift @@ -16,6 +16,30 @@ private struct HelpTopic: Identifiable { let symbol: String let title: LocalizedStringKey let body: LocalizedStringKey + /// 설명 아래 붙는 예시 스크린샷의 베이스 이름 (예: "help-main"). + /// 실제 파일은 언어 접미사가 붙은 IOS/HelpImages/help-main-ko.jpg 형태 — HelpImage가 해석 + var imageName: String? = nil +} + +/// 도움말 스크린샷 로더 — 앱 표시 언어(ko/en/ja)에 맞는 변형을 고른다. +/// 스크린샷에 UI 문구가 박혀 있어 String Catalog 대신 언어별 파일로 관리한다. +private enum HelpImage { + static func load(_ base: String) -> UIImage? { + let lang: String + switch Bundle.main.preferredLocalizations.first?.prefix(2) { + case "en": lang = "en" + case "ja": lang = "ja" + default: lang = "ko" + } + // jpg는 UIImage(named:)의 확장자 생략 탐색에 안 걸릴 수 있어 URL로 직접 연다 + for candidate in ["\(base)-\(lang)", "\(base)-ko"] { + if let url = Bundle.main.url(forResource: candidate, withExtension: "jpg"), + let image = UIImage(contentsOfFile: url.path) { + return image + } + } + return nil + } } private struct HelpGroup: Identifiable { @@ -40,27 +64,42 @@ struct HelpView: View { } var body: some View { - List { - ForEach(groups) { group in - Section(group.title) { - ForEach(group.topics) { topic in - DisclosureGroup { - Text(topic.body) - .font(.subheadline) - .foregroundStyle(.secondary) - .padding(.vertical, 4) - } label: { - Label { - Text(topic.title) - .font(.body.weight(.medium)) - } icon: { - Image(systemName: topic.symbol) - .foregroundStyle(AppTheme.green) + ScrollViewReader { proxy in + List { + ForEach(groups) { group in + Section(group.title) { + ForEach(group.topics) { topic in + // 검증용: -helpExpandAll YES(DEBUG) → 모든 주제를 펼친 채 시작 (스크린샷 검증) + Group { + if Self.forceExpanded { + DisclosureGroup(isExpanded: .constant(true)) { + topicBody(topic) + } label: { + topicLabel(topic) + } + } else { + DisclosureGroup { + topicBody(topic) + } label: { + topicLabel(topic) + } + } } + .id(topic.imageName ?? topic.id.uuidString) } } } } + .onAppear { + #if DEBUG + // 검증용: -helpScrollTo help-main 등 → 해당 이미지 토픽으로 스크롤 + if let anchor = UserDefaults.standard.string(forKey: "helpScrollTo") { + DispatchQueue.main.asyncAfter(deadline: .now() + 1.2) { + withAnimation { proxy.scrollTo(anchor, anchor: .top) } + } + } + #endif + } } .scrollContentBackground(.hidden) .background(AppTheme.background) @@ -69,6 +108,47 @@ struct HelpView: View { .toolbar(.hidden, for: .tabBar) } + /// 검증용 전체 펼침 (DEBUG 런치 인자 -helpExpandAll YES) + private static let forceExpanded: Bool = { + #if DEBUG + return UserDefaults.standard.bool(forKey: "helpExpandAll") + #else + return false + #endif + }() + + private func topicBody(_ topic: HelpTopic) -> some View { + VStack(alignment: .leading, spacing: 10) { + Text(topic.body) + .font(.subheadline) + .foregroundStyle(.secondary) + if let name = topic.imageName, let image = HelpImage.load(name) { + Image(uiImage: image) + .resizable() + .scaledToFit() + .frame(maxWidth: 300) + .clipShape(RoundedRectangle(cornerRadius: 12, style: .continuous)) + .overlay( + RoundedRectangle(cornerRadius: 12, style: .continuous) + .strokeBorder(.quaternary) + ) + .frame(maxWidth: .infinity) + .accessibilityHidden(true) // 본문 설명의 예시 그림 — 낭독 중복 방지 + } + } + .padding(.vertical, 4) + } + + private func topicLabel(_ topic: HelpTopic) -> some View { + Label { + Text(topic.title) + .font(.body.weight(.medium)) + } icon: { + Image(systemName: topic.symbol) + .foregroundStyle(AppTheme.green) + } + } + // MARK: 공통 — 기본 개념 private var basics: HelpGroup { @@ -98,7 +178,8 @@ struct HelpView: View { HelpTopic( symbol: "play.circle.fill", title: "측정 시작·종료", - body: "행동 버튼을 탭하면 시간형은 측정이 시작되고 다시 탭하면 종료돼요(테두리로 측정 중을 구분). 횟수형은 탭할 때마다 1씩 올라가요. 여러 행동을 동시에 측정해도 되고, 측정 중인 행동은 상단 '현재 진행 중' 영역에서도 종료할 수 있어요. 끄는 걸 자주 잊는다면 설정 → 측정의 '장시간 측정 알림'을 켜 보세요 — 정한 시간을 넘기면 알려줘요." + body: "행동 버튼을 탭하면 시간형은 측정이 시작되고 다시 탭하면 종료돼요(테두리로 측정 중을 구분). 횟수형은 탭할 때마다 1씩 올라가요. 여러 행동을 동시에 측정해도 되고, 측정 중인 행동은 상단 '현재 진행 중' 영역에서도 종료할 수 있어요. 끄는 걸 자주 잊는다면 설정 → 측정의 '장시간 측정 알림'을 켜 보세요 — 정한 시간을 넘기면 알려줘요.", + imageName: "help-main" ), HelpTopic( symbol: "clock.badge.xmark", @@ -135,7 +216,8 @@ struct HelpView: View { HelpTopic( symbol: "chart.bar.fill", title: "진행률 읽는 법", - body: "다짐마다 하루·주간·월간 진행률이 표시돼요. 주간·월간 진행률은 하루 초과 달성이 다른 날의 미달을 가리지 않도록 하루 목표량까지만 인정해 합산하고, 요일·날짜를 정한 다짐은 수행일의 기록만 집계해요 — 수행일이 아닌 날의 '하루' 진행률은 '수행일 아님'으로 표시돼요. 다짐 자신의 주기(하루 다짐의 '하루' 등)에서는 100%를 넘는 초과 달성이 그대로 표시되지만, 주간 다짐의 '하루'처럼 주기와 다른 기간은 목표를 그 기간 몫으로 나눈 페이스 기준이라 최대 100%까지만 표시돼요. '이하 유지' 다짐은 한도 안이면 100%, 넘으면 0%예요 — 주간·월간 한도 다짐의 '하루'는 하루 몫 한도 기준이라, 주간 한도가 남았어도 오늘 많이 쓰면 먼저 알려주는 경고 역할을 해요." + body: "다짐마다 하루·주간·월간 진행률이 표시돼요. 주간·월간 진행률은 하루 초과 달성이 다른 날의 미달을 가리지 않도록 하루 목표량까지만 인정해 합산하고, 요일·날짜를 정한 다짐은 수행일의 기록만 집계해요 — 수행일이 아닌 날의 '하루' 진행률은 '수행일 아님'으로 표시돼요. 다짐 자신의 주기(하루 다짐의 '하루' 등)에서는 100%를 넘는 초과 달성이 그대로 표시되지만, 주간 다짐의 '하루'처럼 주기와 다른 기간은 목표를 그 기간 몫으로 나눈 페이스 기준이라 최대 100%까지만 표시돼요. '이하 유지' 다짐은 한도 안이면 100%, 넘으면 0%예요 — 주간·월간 한도 다짐의 '하루'는 하루 몫 한도 기준이라, 주간 한도가 남았어도 오늘 많이 쓰면 먼저 알려주는 경고 역할을 해요.", + imageName: "help-goal" ), HelpTopic( symbol: "clock.badge.checkmark", @@ -167,7 +249,8 @@ struct HelpView: View { HelpTopic( symbol: "calendar", title: "기록 보기·고치기", - body: "기록 탭은 하루의 모든 기록을 보여줘요. 상단 화살표로 날짜를 이동하고, 기록을 탭하면 바로 수정할 수 있어요. 타임테이블 보기로 전환하면 하루 또는 일주일을 24시간 축 위에서 한눈에 볼 수 있어요." + body: "기록 탭은 하루의 모든 기록을 보여줘요. 상단 화살표로 날짜를 이동하고, 기록을 탭하면 바로 수정할 수 있어요. 타임테이블 보기로 전환하면 하루 또는 일주일을 24시간 축 위에서 한눈에 볼 수 있어요.", + imageName: "help-history" ), HelpTopic( symbol: "line.3.horizontal.decrease.circle", @@ -211,7 +294,8 @@ struct HelpView: View { HelpTopic( symbol: "book.closed.fill", title: "하루 정리 첫 페이지", - body: "일기 탭 달력에서 날짜를 누르면 그날의 일기가 열려요. 첫 페이지는 오늘 기분·요약·목표 진행 현황·할 일·24시간 타임테이블·기록으로 하루를 정리해 보여줘요. 오른쪽 위 ⋯ 메뉴의 '첫 화면 구성'에서 섹션 표시 여부와 순서를 바꿀 수 있어요. 기분 사진을 남긴 날은 달력의 그 날짜 칸에 사진이 배경으로 함께 보여요." + body: "일기 탭 달력에서 날짜를 누르면 그날의 일기가 열려요. 첫 페이지는 오늘 기분·요약·목표 진행 현황·할 일·24시간 타임테이블·기록으로 하루를 정리해 보여줘요. 오른쪽 위 ⋯ 메뉴의 '첫 화면 구성'에서 섹션 표시 여부와 순서를 바꿀 수 있어요. 기분 사진을 남긴 날은 달력의 그 날짜 칸에 사진이 배경으로 함께 보여요.", + imageName: "help-diary" ), HelpTopic( symbol: "calendar.badge.plus", @@ -248,7 +332,8 @@ struct HelpView: View { HelpTopic( symbol: "circle.hexagongrid.fill", title: "글래스 버블 메뉴", - body: "설정 → '내비게이션 방식'에서 '글래스 버블 메뉴'를 고르면 하단 탭바 대신 화면 아래 중앙 버튼 하나로 모든 탭을 열어요. 버튼을 누르면 유리 구슬 버튼들이 부채꼴로 퍼지고, 버블 순서도 설정에서 바꿀 수 있어요. '두 번 눌러 바로 이동'을 켜면 메뉴가 닫혀 있을 때 버튼을 빠르게 두 번 눌러 정해 둔 탭으로 바로 이동해요." + body: "설정 → '내비게이션 방식'에서 '글래스 버블 메뉴'를 고르면 하단 탭바 대신 화면 아래 중앙 버튼 하나로 모든 탭을 열어요. 버튼을 누르면 유리 구슬 버튼들이 부채꼴로 퍼지고, 버블 순서도 설정에서 바꿀 수 있어요. '두 번 눌러 바로 이동'을 켜면 메뉴가 닫혀 있을 때 버튼을 빠르게 두 번 눌러 정해 둔 탭으로 바로 이동해요.", + imageName: "help-radial" ), HelpTopic( symbol: "square.grid.2x2.fill", @@ -275,7 +360,8 @@ struct HelpView: View { HelpTopic( symbol: "applewatch", title: "워치에서 기록하기", - body: "워치 앱을 열면 꼬리표 목록이 보여요. 꼬리표를 탭하면 그 안의 행동들이 나오고, 행동을 탭하면 시간형은 측정 시작·종료, 횟수형은 +1이 기록돼요. 아이폰 앱에서 즐겨찾기한 행동은 첫 화면 맨 위 '즐겨찾기'에서 한 탭 만에 열 수 있어요. 측정 중일 때는 첫 화면 맨 위에 측정 중인 행동과 시간이 보이고, 그 줄을 탭하면 바로 측정이 종료돼요. 기록은 아이폰과 자동으로 동기화돼요." + body: "워치 앱을 열면 꼬리표 목록이 보여요. 꼬리표를 탭하면 그 안의 행동들이 나오고, 행동을 탭하면 시간형은 측정 시작·종료, 횟수형은 +1이 기록돼요. 아이폰 앱에서 즐겨찾기한 행동은 첫 화면 맨 위 '즐겨찾기'에서 한 탭 만에 열 수 있어요. 측정 중일 때는 첫 화면 맨 위에 측정 중인 행동과 시간이 보이고, 그 줄을 탭하면 바로 측정이 종료돼요. 기록은 아이폰과 자동으로 동기화돼요.", + imageName: "help-watch" ), HelpTopic( symbol: "watchface.applewatch.case",