diff --git a/myApp/HaruDanim/CLAUDE.md b/myApp/HaruDanim/CLAUDE.md index 26f2baf..1cecd88 100644 --- a/myApp/HaruDanim/CLAUDE.md +++ b/myApp/HaruDanim/CLAUDE.md @@ -19,7 +19,7 @@ | 번들 ID | `com.yechan.HaruDanim` / App Group `group.com.yechan.HaruDanim` / CloudKit `iCloud.com.yechan.HaruDanim` | | 수익 모델 | 부분 유료화. 무료 한도(행동 10·목표 2·목표당 다짐 3) + 프리미엄 결제 시 해제 | | 결제 상품 | `com.yechan.HaruDanim.premium.monthly`(월 4,400원) / `.yearly`(년 44,000원) / `.lifetime`(77,000원) — **ASC 등록·판매 중(실제 가격, 2026-07-28)**. 로컬 테스트 구성(HaruDanim.storekit)도 동일 가격. 가격은 코드에 없고 `product.displayPrice`로 동적 표기, 년 구독 절약률 배지도 동적 계산 | -| 현재 상태 (2026-08-11) | **버전 1.4 개발 완료 — 제출 대기(사용자 실기기 테스트 후 업로드 예정)**. 1.4 내용(사용자 A안 승인, 2026-08-11 세션에서 전부 구현·검증): ①**iOS 18.0 하한 인하**(위 플랫폼 행 — 글라스 버블 머티리얼 폴백·사용자 심볼 안전 렌더 `Image(safeSymbol:)`[iOS 55곳+워치 7곳, 18에 없는 카탈로그 심볼 3개 물음표 폴백]·`-symbolAuditDump`. ⚠️하한 18 Release(-O wholemodule)에서 swift-frontend가 제네릭 중첩 Coordinator의 deinit 최적화 중 크래시하는 컴파일러 버그 실측 — DiaryZoomCoordinator를 비제네릭 톱레벨+AnyView 소거로 우회, 되돌리지 말 것) ②**펜슬 저장 디바운스**(§6.7 — 획마다 전체 직렬화·블랍 재기록하던 버벅임 해소) ③**통계 '오늘 기준' 롤링**(§6.6·§10 ⑤ — 지난 7일/30일) ④**CSV 구간 내보내기**(§6.8, 코어 CSVExport 추출) ⑤**일기 내보내기 후 삭제**(§6.7, 렌더 코어 DiaryExportRenderer 추출) ⑥**데이터 정리·초기화**(§6.8 — 전체/처음~날짜까지+백업 3종[CSV·일기 PDF·정리 리포트 ArchiveReport]) ⑦도움말 3주제 갱신·l10n(전 카탈로그 missing/stale 0)·MARKETING_VERSION 1.4·`Marketing/AppStore/whats-new-1.4.txt`. 검증: 자가 검증 `-progressSelfTest` 49·`-csvImportTest` 20·`-intentSmokeTest` 10·`-dataResetTest` 18 ALL PASS(26 심+18.5 심), Debug/Store/워치 빌드 성공, 18.5·26 시각 QA(버블 폴백·일기 줌·롤링 통계·초기화 화면·리포트 PDF 3페이지 실물). **스토어 제출 시**: 하한 인하는 ASC에서 바꿀 것 없음(바이너리에서 자동 파생), 스크린샷 재촬영 불필요(통계 토글·설정 행 추가는 사소 — 교체 여부는 사용자 판단), 심사 특이사항 없음. **버전 1.3 App Store 출시 2026-08-06** — 3일 실사용+심층 검증(2026-08-05: 자가 검증 3종 ALL PASS·벌크 1만 건·일기 내보내기 일치·위젯 스모크·만료 열람·도움말 — 회귀 0) 통과 후 제출. 심층 검증에서 기록한 사소 잔여 엣지 9건은 후속 후보로만 보류(전부 극단 한정·자가 복구형, 필기 blob 동시 편집 한계는 §6.7). 1.3 내용: 아래 소기능 이력의 일기 개선 묶음(양식 펜 색 고정 + 도형·텍스트 상자 편집 개편 + 검토 후속 수정), `Marketing/AppStore/whats-new-1.3.txt`. 잔여 엣지 9건 상세: 최소 크기 커밋 스냅백·일기 상세 이탈 시 빈 텍스트 상자 잔존·페이지 가장자리 손잡이 클리핑·인라인 편집 중 페이지 스와이프 상태 잔존·회전 상자 커서 어색함 등(1.0부터의 구조 한계인 필기 blob 동시 편집 덮어쓰기·열린 캔버스 원격 미갱신은 §6.7, 같은 페이지 동시 필기 회피 권장). 1.2 내용: 주기 몫 완료 상태 표기(§4.2)+도움말 '진행률 읽는 법' 갱신(상세는 아래 소기능 이력). **버전 1.1 출시 2026-07-30.** 1.1 내용: ①**맥 일기 개방**(§6.7 — 사이드바 노출 + '그리기' 토글로 마우스 필기, 텍스트 우선 도구줄. 아이패드 경로 불변. 맥 실기 확인 완료) ②**CSV 가져오기**(§6.8 — 프리미엄, 추가 전용·미리 보기·멱등. 검증 `-csvImportTest` 20건 ALL PASS) ③**일기 기본 표시 설정**(§6.7 — 캘린더·목표·행동 전 날짜 기본값 + 날짜별 재정의, 스키마 무변경 마커 방식) ④**'짧은 기록 무시' iCloud KVS 동기화**(§6.8 — 전 기기 공통) ⑤스크린샷 전면 개편(아이폰 10·아이패드 10·워치 합성 1 × ko/en/ja — ASC 업로드 완료) ⑥스토어 메타데이터 변경(앱 이름·부제목·키워드·프로모션 — 검색·색인 강화, `Marketing/AppStore/app-name-subtitle.txt`·`keywords.txt`·`promotional-text.txt`. 스토어 표기만 변경, 설치 이름 불변) ⑦MARKETING_VERSION 1.1. **버전 1.0 출시 2026-07-28.** 이후 작업은 사용자 실사용 중 발견한 버그 수정·사용자가 원하는 소기능 추가만 한다(선제적 기능 제안·대규모 리팩터링 금지). 출시 후 소기능 이력: **일기 도형·텍스트 상자 UX 2차 개편**(2026-08-03, 사용자 요청 — §6.7. 종류별 모양 손잡이[사각형 꼭짓점 4개·원 상하좌우 4개·선/화살표 양 끝점]와 정사각형·정원 스냅 피드백, 텍스트 상자 제자리 입력[탭→바로 키보드]·테두리 색 독립, '글 수정'→'스타일' 시트로 재편, borderColorHex 필드 추가. 1.3으로 버전 상향)·**일기 도형·텍스트 상자 편집 강화**(2026-08-03, 사용자 요청 — §6.7. "정해진 모양·크기 그대로만 나온다"는 보고: 크기 손잡이(가로세로 자유·맥 마우스 대응)·회전 제스처·'도형 수정' 시트[색·선 굵기·채우기·모서리 둥글기·회전]·텍스트 시트 확장[글자 크기·굵게·정렬·테두리], DiaryPageItem에 기본값 필드 8개 추가)·**양식 페이지 펜 색 고정**(2026-08-03, 사용자 요청 — §6.7. 다크/라이트 잉크 반전으로 맥·아이패드에서 필기가 안 보이던 실사용 보고 해소, 내보내기 라이트 트레잇 고정 포함)·**주기 몫 완료 상태 표기**(2026-08-01, 사용자 요청 — §4.2. 도움말 '진행률 읽는 법' 문구도 갱신. 같은 날 MARKETING_VERSION 1.2(빌드 1)로 상향 + `Marketing/AppStore/whats-new-1.2.txt` 작성·TestFlight 업로드, **심사 통과 → App Store 출시 완료(2026-08-02, 사용자 확인)**). 업데이트 제출: 버전 올려 빌드 업로드 → 심사 제출(IAP는 첫 심사에서 승인됐으므로 첨부 불필요). 출시 전 이력 — RC는 커밋 `f05e611`(버전 1.0 (1)), 이후 실사용 보고 기반 수정 라운드(전부 커밋·푸시·실기기 확인 완료): l10n 누락 일괄·ja 앱 이름 'Haru Danim' 통일·워치 컴플리케이션 추천 캡 제거(§11)·⑥ 위젯 종료 버튼(§10)·진행률 환산 캡+수행일 집계+수행일 아님 표기(§4.2)·파일명/CSV 헤더 현지화(§7)·워치 컴플리케이션 목표 필터(§6.4·§11, 사용자 승인 소기능)·기록 시각 입력 상시 휠 다이얼+분 절사(§6.5)·일기 달력 기분 사진 백레이어(§6.7)·다짐 없는 목표 '다짐 없음' 표기(§4.3)·워치 측정 중 행 탭 종료(§11)·도움말 예시 스크린샷 18장(§6.8)·설정 하루 시작 시간 접힘 행(§6.5)·**모음 탭 즐겨찾기 모아 보기**(§6.1 — 행동 많아질 때 혼잡도 대응, 사용자 승인 소기능. v1 별도 카드 가로 줄[대안 A~F 중 A]이 "따로 노는 느낌" 실사용 피드백으로 v2 그리드 섹션 통합+나머지 접기로 교체, 같은 날 후속 피드백으로 편집 모드 섹션 인지·섹션 간 드래그 지정/해제·"지정 순서대로 뒤에" 규칙 추가, 2026-07-22)·**en 복수형 정리**(2026-07-22 — 수량 1일 때 "1 times/quests" 류 오류를 카탈로그 plural variation으로 14건 전환[iOS 10·위젯 3·워치 1], 모음 탭 섹션 제목 en "Favorite"→"Favorites"로 워치와 통일. ko/ja 무영향). **App Store 등록 자료는 `Marketing/`에 완비**(설명·키워드·구독 메타·스크린샷 원본/합성판, README에 재생성 절차 — 앱 변경이 자료에 영향 주면 요청 없이 함께 갱신할 것. 2026-07-22 즐겨찾기 섹션(v2) 반영해 아이폰·아이패드 01-main과 help-main ko/en/ja 재촬영·합성판 재생성. **2026-07-29 스크린샷 세트 확장** — 아이폰 8장(+위젯·버블 메뉴·iCloud 동기화 합성·다크 모드)/아이패드 7장(+주간 타임테이블·위젯·동기화 합성) × ko/en/ja, 촬영·합성 절차는 Marketing/README '추가 스크린샷' 절. **1.1 제출 때 ASC 업로드 완료**). **사업자 등록·통신판매업 신고 완료(2026-07-22)** — 서류 절차 끝, ASC 등록·유료 계약 진행 가능(순서는 Marketing/README 체크리스트). 사용자는 계속 실사용 테스트 중이며 버그 보고 시: 최소 변경 + 시뮬레이터 재검증 + l10n 루틴(§2.3) + Debug/Store(워치 파일이면 워치까지) 빌드 + 커밋·푸시 | +| 현재 상태 (2026-08-11) | **버전 1.4 개발 완료 — 제출 대기(사용자 실기기 테스트 후 업로드 예정)**. 1.4 내용(사용자 A안 승인, 2026-08-11 세션에서 전부 구현·검증): ①**iOS 18.0 하한 인하**(위 플랫폼 행 — 글라스 버블 머티리얼 폴백·사용자 심볼 안전 렌더 `Image(safeSymbol:)`[iOS 55곳+워치 7곳, 18에 없는 카탈로그 심볼 3개 물음표 폴백]·`-symbolAuditDump`. ⚠️하한 18 Release(-O wholemodule)에서 swift-frontend가 제네릭 중첩 Coordinator의 deinit 최적화 중 크래시하는 컴파일러 버그 실측 — DiaryZoomCoordinator를 비제네릭 톱레벨+AnyView 소거로 우회, 되돌리지 말 것) ②**펜슬 저장 디바운스**(§6.7 — 획마다 전체 직렬화·블랍 재기록하던 버벅임 해소) ③**통계 '오늘 기준' 롤링**(§6.6·§10 ⑤ — 지난 7일/30일) ④**CSV 구간 내보내기**(§6.8, 코어 CSVExport 추출) ⑤**일기 내보내기 후 삭제**(§6.7, 렌더 코어 DiaryExportRenderer 추출) ⑥**데이터 정리·초기화**(§6.8 — 전체/처음~날짜까지+백업 3종[CSV·일기 PDF·정리 리포트 ArchiveReport]) ⑦도움말 재구성(1.4(2) 검수 후속, 2026-08-12 — 뭉친 주제 3곳 분리: 기록·통계 그룹에 '지난 7일·30일로 보기'·'데이터 정리·초기화' 독립 주제 신설[CSV 주제는 백업·복원만, 비교 주제는 1.3 원문 복귀], 일기 그룹 '펜슬 노트 페이지'에서 '사진·도형·텍스트 꾸미기' 분리. 이미지는 그룹당 대표 1주제 원칙 유지 — 18장 전수 실사로 참조·언어 매칭 무결 확인)·l10n(전 카탈로그 missing/stale 0)·**워치 실행 햅틱 .click→.success 상향**(1.4(2) — 실사용 '너무 약함' 보고)·MARKETING_VERSION 1.4/**빌드 2**(TestFlight 재업로드용 — 같은 버전은 빌드 번호만 올려 업로드하면 1.4(2)로 기존 테스터에 배포됨)·`Marketing/AppStore/whats-new-1.4.txt`. 검증: 자가 검증 `-progressSelfTest` 49·`-csvImportTest` 20·`-intentSmokeTest` 10·`-dataResetTest` 18 ALL PASS(26 심+18.5 심), Debug/Store/워치 빌드 성공, 18.5·26 시각 QA(버블 폴백·일기 줌·롤링 통계·초기화 화면·리포트 PDF 3페이지 실물). **스토어 제출 시**: 하한 인하는 ASC에서 바꿀 것 없음(바이너리에서 자동 파생), 스크린샷 재촬영 불필요(통계 토글·설정 행 추가는 사소 — 교체 여부는 사용자 판단), 심사 특이사항 없음. **버전 1.3 App Store 출시 2026-08-06** — 3일 실사용+심층 검증(2026-08-05: 자가 검증 3종 ALL PASS·벌크 1만 건·일기 내보내기 일치·위젯 스모크·만료 열람·도움말 — 회귀 0) 통과 후 제출. 심층 검증에서 기록한 사소 잔여 엣지 9건은 후속 후보로만 보류(전부 극단 한정·자가 복구형, 필기 blob 동시 편집 한계는 §6.7). 1.3 내용: 아래 소기능 이력의 일기 개선 묶음(양식 펜 색 고정 + 도형·텍스트 상자 편집 개편 + 검토 후속 수정), `Marketing/AppStore/whats-new-1.3.txt`. 잔여 엣지 9건 상세: 최소 크기 커밋 스냅백·일기 상세 이탈 시 빈 텍스트 상자 잔존·페이지 가장자리 손잡이 클리핑·인라인 편집 중 페이지 스와이프 상태 잔존·회전 상자 커서 어색함 등(1.0부터의 구조 한계인 필기 blob 동시 편집 덮어쓰기·열린 캔버스 원격 미갱신은 §6.7, 같은 페이지 동시 필기 회피 권장). 1.2 내용: 주기 몫 완료 상태 표기(§4.2)+도움말 '진행률 읽는 법' 갱신(상세는 아래 소기능 이력). **버전 1.1 출시 2026-07-30.** 1.1 내용: ①**맥 일기 개방**(§6.7 — 사이드바 노출 + '그리기' 토글로 마우스 필기, 텍스트 우선 도구줄. 아이패드 경로 불변. 맥 실기 확인 완료) ②**CSV 가져오기**(§6.8 — 프리미엄, 추가 전용·미리 보기·멱등. 검증 `-csvImportTest` 20건 ALL PASS) ③**일기 기본 표시 설정**(§6.7 — 캘린더·목표·행동 전 날짜 기본값 + 날짜별 재정의, 스키마 무변경 마커 방식) ④**'짧은 기록 무시' iCloud KVS 동기화**(§6.8 — 전 기기 공통) ⑤스크린샷 전면 개편(아이폰 10·아이패드 10·워치 합성 1 × ko/en/ja — ASC 업로드 완료) ⑥스토어 메타데이터 변경(앱 이름·부제목·키워드·프로모션 — 검색·색인 강화, `Marketing/AppStore/app-name-subtitle.txt`·`keywords.txt`·`promotional-text.txt`. 스토어 표기만 변경, 설치 이름 불변) ⑦MARKETING_VERSION 1.1. **버전 1.0 출시 2026-07-28.** 이후 작업은 사용자 실사용 중 발견한 버그 수정·사용자가 원하는 소기능 추가만 한다(선제적 기능 제안·대규모 리팩터링 금지). 출시 후 소기능 이력: **일기 도형·텍스트 상자 UX 2차 개편**(2026-08-03, 사용자 요청 — §6.7. 종류별 모양 손잡이[사각형 꼭짓점 4개·원 상하좌우 4개·선/화살표 양 끝점]와 정사각형·정원 스냅 피드백, 텍스트 상자 제자리 입력[탭→바로 키보드]·테두리 색 독립, '글 수정'→'스타일' 시트로 재편, borderColorHex 필드 추가. 1.3으로 버전 상향)·**일기 도형·텍스트 상자 편집 강화**(2026-08-03, 사용자 요청 — §6.7. "정해진 모양·크기 그대로만 나온다"는 보고: 크기 손잡이(가로세로 자유·맥 마우스 대응)·회전 제스처·'도형 수정' 시트[색·선 굵기·채우기·모서리 둥글기·회전]·텍스트 시트 확장[글자 크기·굵게·정렬·테두리], DiaryPageItem에 기본값 필드 8개 추가)·**양식 페이지 펜 색 고정**(2026-08-03, 사용자 요청 — §6.7. 다크/라이트 잉크 반전으로 맥·아이패드에서 필기가 안 보이던 실사용 보고 해소, 내보내기 라이트 트레잇 고정 포함)·**주기 몫 완료 상태 표기**(2026-08-01, 사용자 요청 — §4.2. 도움말 '진행률 읽는 법' 문구도 갱신. 같은 날 MARKETING_VERSION 1.2(빌드 1)로 상향 + `Marketing/AppStore/whats-new-1.2.txt` 작성·TestFlight 업로드, **심사 통과 → App Store 출시 완료(2026-08-02, 사용자 확인)**). 업데이트 제출: 버전 올려 빌드 업로드 → 심사 제출(IAP는 첫 심사에서 승인됐으므로 첨부 불필요). 출시 전 이력 — RC는 커밋 `f05e611`(버전 1.0 (1)), 이후 실사용 보고 기반 수정 라운드(전부 커밋·푸시·실기기 확인 완료): l10n 누락 일괄·ja 앱 이름 'Haru Danim' 통일·워치 컴플리케이션 추천 캡 제거(§11)·⑥ 위젯 종료 버튼(§10)·진행률 환산 캡+수행일 집계+수행일 아님 표기(§4.2)·파일명/CSV 헤더 현지화(§7)·워치 컴플리케이션 목표 필터(§6.4·§11, 사용자 승인 소기능)·기록 시각 입력 상시 휠 다이얼+분 절사(§6.5)·일기 달력 기분 사진 백레이어(§6.7)·다짐 없는 목표 '다짐 없음' 표기(§4.3)·워치 측정 중 행 탭 종료(§11)·도움말 예시 스크린샷 18장(§6.8)·설정 하루 시작 시간 접힘 행(§6.5)·**모음 탭 즐겨찾기 모아 보기**(§6.1 — 행동 많아질 때 혼잡도 대응, 사용자 승인 소기능. v1 별도 카드 가로 줄[대안 A~F 중 A]이 "따로 노는 느낌" 실사용 피드백으로 v2 그리드 섹션 통합+나머지 접기로 교체, 같은 날 후속 피드백으로 편집 모드 섹션 인지·섹션 간 드래그 지정/해제·"지정 순서대로 뒤에" 규칙 추가, 2026-07-22)·**en 복수형 정리**(2026-07-22 — 수량 1일 때 "1 times/quests" 류 오류를 카탈로그 plural variation으로 14건 전환[iOS 10·위젯 3·워치 1], 모음 탭 섹션 제목 en "Favorite"→"Favorites"로 워치와 통일. ko/ja 무영향). **App Store 등록 자료는 `Marketing/`에 완비**(설명·키워드·구독 메타·스크린샷 원본/합성판, README에 재생성 절차 — 앱 변경이 자료에 영향 주면 요청 없이 함께 갱신할 것. 2026-07-22 즐겨찾기 섹션(v2) 반영해 아이폰·아이패드 01-main과 help-main ko/en/ja 재촬영·합성판 재생성. **2026-07-29 스크린샷 세트 확장** — 아이폰 8장(+위젯·버블 메뉴·iCloud 동기화 합성·다크 모드)/아이패드 7장(+주간 타임테이블·위젯·동기화 합성) × ko/en/ja, 촬영·합성 절차는 Marketing/README '추가 스크린샷' 절. **1.1 제출 때 ASC 업로드 완료**). **사업자 등록·통신판매업 신고 완료(2026-07-22)** — 서류 절차 끝, ASC 등록·유료 계약 진행 가능(순서는 Marketing/README 체크리스트). 사용자는 계속 실사용 테스트 중이며 버그 보고 시: 최소 변경 + 시뮬레이터 재검증 + l10n 루틴(§2.3) + Debug/Store(워치 파일이면 워치까지) 빌드 + 커밋·푸시 | | 출시·운영 메모 (2026-07-28) | **ASC 등록·심사·출시 전부 완료** — 제출 1건에 앱 1.0+구독 그룹+상품 3종 동반(신형 ASC는 각 항목의 "심사에 추가"로 하나의 제출 초안에 담는 방식), '앱 개인정보 보호'="데이터 수집 안 함", 유료 앱 계약·대한민국 세금 양식 활성, 소규모 사업자 프로그램 가입. 개발자 본인 프리미엄은 **평생 이용권 특가 코드(무료 Offer Code) 교환**으로 스토어 버전에 적용됨(IAP용 프로모션 코드는 2026-03 폐지 — 이후 무료 지급은 특가 코드만 가능, 생성 후 교환 가능까지 최대 1시간). 상시 참고: `ITSAppUsesNonExemptEncryption=NO`, PrivacyInfo.xcprivacy 4개 번들(수집·트래킹 없음), 개인정보처리방침=`github.com/notalentprogrammer/HaruDanim` PRIVACY.md·이용약관=Apple 표준 EULA(결제 화면·앱 설명 모두 링크). **iCloud 프로덕션 동기화 확인 완료(2026-07-28)** — 아이폰·아이패드·맥 3기기 반나절 실사용에서 기존 데이터 포함 정상 왕복(개발→프로덕션 CloudKit 환경 전환에 따른 재업로드 우려 해소. 향후 동기화 문제 보고 시 이 전환 이력 참고). **정산 계좌 변경 완료** — 1.0 출시 시점에 이미 처리(2026-08-06 사용자 확인). 남은 운영 예정 작업 없음. 절차 상세 기록은 Marketing/README.md 체크리스트 | --- diff --git a/myApp/HaruDanim/Haru_Danim.xcodeproj/project.pbxproj b/myApp/HaruDanim/Haru_Danim.xcodeproj/project.pbxproj index d4ff408..f1813e3 100644 --- a/myApp/HaruDanim/Haru_Danim.xcodeproj/project.pbxproj +++ b/myApp/HaruDanim/Haru_Danim.xcodeproj/project.pbxproj @@ -601,7 +601,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = IOS/Haru_Danim.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = 5GNS4Z2SYT; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -643,7 +643,7 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_ENTITLEMENTS = IOS/Haru_Danim.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = 5GNS4Z2SYT; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -686,7 +686,7 @@ CODE_SIGN_ENTITLEMENTS = "Haru_DanimWatch Watch App/Haru_DanimWatch Watch App.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = 5GNS4Z2SYT; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -722,7 +722,7 @@ CODE_SIGN_ENTITLEMENTS = "Haru_DanimWatch Watch App/Haru_DanimWatch Watch App.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = 5GNS4Z2SYT; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -758,7 +758,7 @@ CODE_SIGN_ENTITLEMENTS = Haru_DanimWatchWidgets/Haru_DanimWatchWidgetsExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = 5GNS4Z2SYT; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Haru_DanimWatchWidgets/Info.plist; @@ -794,7 +794,7 @@ CODE_SIGN_ENTITLEMENTS = Haru_DanimWatchWidgets/Haru_DanimWatchWidgetsExtension.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = 5GNS4Z2SYT; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Haru_DanimWatchWidgets/Info.plist; @@ -827,7 +827,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = Widgets/Haru_DanimWidgets.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = 5GNS4Z2SYT; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Widgets/Info.plist; @@ -853,7 +853,7 @@ buildSettings = { CODE_SIGN_ENTITLEMENTS = Widgets/Haru_DanimWidgets.entitlements; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = 5GNS4Z2SYT; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = Widgets/Info.plist; diff --git a/myApp/HaruDanim/Haru_DanimWatch Watch App/WatchStore.swift b/myApp/HaruDanim/Haru_DanimWatch Watch App/WatchStore.swift index 4dc67a2..be2ac04 100644 --- a/myApp/HaruDanim/Haru_DanimWatch Watch App/WatchStore.swift +++ b/myApp/HaruDanim/Haru_DanimWatch Watch App/WatchStore.swift @@ -52,8 +52,9 @@ final class WatchStore: NSObject { /// 행동 실행 (시간형 토글 / 횟수형 +1) func run(_ action: WatchActionInfo) { - // 손목에서는 화면을 안 보고 탭하는 경우가 많다 — 접수 즉시 햅틱으로 확인 - WKInterfaceDevice.current().play(.click) + // 손목에서는 화면을 안 보고 탭하는 경우가 많다 — 접수 즉시 햅틱으로 확인. + // .click은 실사용에서 너무 약하다는 보고(1.4)로 가장 강한 축인 .success로 상향 + WKInterfaceDevice.current().play(.success) send([ WatchSync.commandKey: WatchSync.runCommand, WatchSync.actionIDKey: action.id.uuidString, diff --git a/myApp/HaruDanim/IOS/Localizable.xcstrings b/myApp/HaruDanim/IOS/Localizable.xcstrings index 384b519..0313044 100644 --- a/myApp/HaruDanim/IOS/Localizable.xcstrings +++ b/myApp/HaruDanim/IOS/Localizable.xcstrings @@ -2893,6 +2893,22 @@ } } }, + "기록이 오래 쌓여 정리하고 싶다면 설정 → 데이터 → '데이터 정리·초기화'를 써 보세요. 전체를 비우거나, 처음부터 지정한 날짜까지의 기록·일기만 삭제할 수 있어요 — 이때 행동·꼬리표·목표·다짐과 일기 양식은 남고, 지정한 날짜에 걸쳐 있는 측정과 진행 중인 측정도 남아요. 삭제 전에 CSV 백업과, 삭제할 기록을 한눈에 정리한 '정리 리포트'(PDF·이미지)를 만들어 보관할 수 있어요 — 백업을 켰다면 파일을 만든 뒤에만 삭제로 진행할 수 있어요. 과거 기록이 사라지면 다짐의 연속 달성 기록은 끊겨요. iCloud 동기화를 켰다면 다른 기기에서도 함께 삭제되니 백업을 꼭 저장해 두세요.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "If records have piled up, try Settings → Data → Data Cleanup & Reset. You can clear everything, or delete only records and diaries from the beginning through a chosen date — actions, tags, goals, quests, and diary templates remain, and sessions spanning the chosen date or still running are kept too. Before deleting, you can create a CSV backup plus a summary report (PDF/image) that sums up what will be removed at a glance — if backups are on, deletion proceeds only after the files are created. Removing past records breaks quest streaks. With iCloud sync on, deletion applies to your other devices too, so be sure to save the backups." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "記録がたまって整理したいときは、設定 → データ → 「データ整理・リセット」を試してください。全体を空にするか、最初から指定した日付までの記録・日記だけを削除できます — アクション・タグ・目標・クエストと日記テンプレートは残り、指定日をまたぐ計測や進行中の計測も残ります。削除前にCSVバックアップと、削除する記録をひと目でまとめた「整理レポート」(PDF・画像)を作成して保管できます — バックアップをオンにした場合は、ファイルを作成した後にのみ削除に進めます。過去の記録が消えるとクエストの連続達成は途切れます。iCloud同期がオンの場合は他のデバイスでも削除されるため、必ずバックアップを保存してください。" + } + } + } + }, "기록이 있는 %@:%@ ~ %@:%@ 구간만 표시": { "localizations": { "en": { @@ -3812,6 +3828,22 @@ } } }, + "노트 페이지 도구 줄에서 '사진'·'도형'·'텍스트'를 추가한 뒤 '배치 모드'에서 꾸며요 — 드래그로 옮기고, 핀치로 크기를(모양 비율은 그대로), 두 손가락 돌리기로 회전을 바꿔요. 선택하면 나타나는 손잡이로 모양을 다듬어요: 사각형은 꼭짓점을 끌면 그 모서리만 움직이고, 원은 상하좌우 손잡이로 늘리거나 눌러 타원을 만들고, 화살표·선은 양 끝점을 끌어 길이와 방향을 바꿔요. 조절 중에 정사각형·정원이 되는 순간 손잡이가 노란색으로 변하며 살짝 붙잡아 줘요. 텍스트 상자는 선택된 상태에서 한 번 더 탭하면 바로 그 자리에서 키보드로 입력·줄바꿈이 되고, '스타일'에서 글자 색·크기·굵게·정렬·테두리(색·굵기 포함)를 바꿀 수 있어요. 도형은 '도형 수정'에서 색·선 굵기·채우기·모서리 둥글기·회전을 바꿔요.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Add 'Photos', 'Shapes', and 'Text' from the note page toolbar, then style them in 'Arrange mode' — drag to move, pinch to resize (keeping the shape's proportions), and twist with two fingers to rotate. Use the handles that appear when selected to refine the shape: drag a rectangle's corner to move just that corner, use a circle's top/bottom/left/right handles to stretch or squash it into an ellipse, and drag either end of an arrow or line to change its length and direction. The moment it becomes a perfect square or circle while adjusting, the handles turn yellow and gently snap into place. Tap a selected text box once more to type right in place with the keyboard, line breaks included, and use 'Style' to change text color, size, bold, alignment, and the border (including its color and width). For shapes, 'Edit Shape' changes color, line width, fill, corner radius, and rotation." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "ノートページのツールバーから「写真」「図形」「テキスト」を追加したら「配置モード」で仕上げます — ドラッグで移動し、ピンチでサイズを変え(形の比率はそのまま)、2本指でひねって回転します。選択すると現れるハンドルで形を整えられます: 四角形は角をドラッグするとその角だけが動き、円は上下左右のハンドルで伸ばしたりつぶしたりして楕円にでき、矢印・線は両端をドラッグして長さと向きを変えられます。調整中に正方形・正円になった瞬間、ハンドルが黄色に変わりそっと吸い付きます。選択中のテキストボックスをもう一度タップすると、その場でキーボード入力・改行ができ、「スタイル」で文字の色・サイズ・太字・配置・枠線(色・太さを含む)を変えられます。図形は「図形を編集」で色・線の太さ・塗りつぶし・角の丸み・回転を変更します。" + } + } + } + }, "누적 기록": { "localizations": { "en": { @@ -6973,6 +7005,22 @@ } } }, + "사진·도형·텍스트 꾸미기": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "Photos, Shapes & Text" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "写真・図形・テキストで飾る" + } + } + } + }, "사진에 저장": { "localizations": { "en": { @@ -7566,18 +7614,18 @@ } } }, - "설정 → 데이터 → '데이터 내보내기'에서 모든 기록(행동·시간·횟수·목표·다짐)을 CSV 파일로 만들 수 있어요. 구간을 직접 지정해 그 기간의 기록만 내보낼 수도 있어요. 스프레드시트에서 열어 분석하거나 백업으로 보관해 두세요. 내보내기는 무료에서도 사용할 수 있어요.\n'데이터 가져오기'(프리미엄)를 쓰면 내보냈던 CSV에서 행동과 시간·횟수 기록을 다시 불러올 수 있어요. 기존 데이터는 바꾸지 않고 새 기록만 추가하며, 이미 있는 기록은 자동으로 건너뛰어서 같은 파일을 여러 번 가져와도 안전해요. CSV에 없는 행동은 새로 만들어지고, 이름과 방식이 같은 행동이 이미 있으면 그 행동으로 이어져요.\n기록이 오래 쌓여 정리하고 싶다면 '데이터 정리·초기화'를 써 보세요. 전체를 비우거나 지정한 날짜까지의 기록·일기만 삭제할 수 있고, 삭제 전에 CSV 백업과 삭제할 기록을 한눈에 정리한 '정리 리포트'(PDF·이미지)를 만들어 보관할 수 있어요. iCloud 동기화를 켰다면 다른 기기에서도 함께 삭제되니 백업을 꼭 저장해 두세요.": { + "설정 → 데이터 → '데이터 내보내기'에서 모든 기록(행동·시간·횟수·목표·다짐)을 CSV 파일로 만들 수 있어요. 구간을 직접 지정해 그 기간의 기록만 내보낼 수도 있어요. 스프레드시트에서 열어 분석하거나 백업으로 보관해 두세요. 내보내기는 무료에서도 사용할 수 있어요.\n'데이터 가져오기'(프리미엄)를 쓰면 내보냈던 CSV에서 행동과 시간·횟수 기록을 다시 불러올 수 있어요. 기존 데이터는 바꾸지 않고 새 기록만 추가하며, 이미 있는 기록은 자동으로 건너뛰어서 같은 파일을 여러 번 가져와도 안전해요. CSV에 없는 행동은 새로 만들어지고, 이름과 방식이 같은 행동이 이미 있으면 그 행동으로 이어져요.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "In Settings → Data → Data Export, you can turn all records (actions, time, counts, goals, quests) into CSV files. You can also set a custom range to export only that period. Open them in a spreadsheet or keep them as a backup. Export is available on the free plan too.\nWith Data Import (Premium), you can bring back actions and time/count records from exported CSVs. It never changes existing data — it only adds new records and automatically skips ones that already exist, so importing the same file twice is safe. Actions missing from the app are created, and records connect to an existing action when the name and type match.\nIf records have piled up, try Data Cleanup & Reset. You can clear everything or delete only records and diaries up to a chosen date, and before deleting you can create a CSV backup plus a summary report (PDF/image) that sums up what will be removed. With iCloud sync on, deletion applies to your other devices too, so be sure to save the backups." + "value": "In Settings → Data → Data Export, you can turn all records (actions, time, counts, goals, quests) into CSV files. You can also set a custom range to export only that period. Open them in a spreadsheet or keep them as a backup. Export is available on the free plan too.\nWith Data Import (Premium), you can bring back actions and time/count records from exported CSVs. It never changes existing data — it only adds new records and automatically skips ones that already exist, so importing the same file twice is safe. Actions missing from the app are created, and records connect to an existing action when the name and type match." } }, "ja": { "stringUnit": { "state": "translated", - "value": "設定 → データ → 「データエクスポート」で、すべての記録(アクション・時間・回数・目標・クエスト)をCSVファイルにできます。範囲を指定してその期間の記録だけを書き出すこともできます。表計算で分析したり、バックアップとして保管したりしましょう。エクスポートは無料でも使えます。\n「データ読み込み」(プレミアム)を使うと、書き出したCSVからアクションと時間・回数の記録を復元できます。既存データは変更せず新しい記録だけを追加し、すでにある記録は自動でスキップするため、同じファイルを何度読み込んでも安全です。CSVにないアクションは新規作成され、名前と方式が同じアクションがあればそこにつながります。\n記録がたまって整理したいときは「データ整理・リセット」を試してください。全体を空にするか、指定した日付までの記録・日記だけを削除でき、削除前にCSVバックアップと、削除する記録をひと目でまとめた「整理レポート」(PDF・画像)を作成して保管できます。iCloud同期がオンの場合は他のデバイスでも削除されるため、必ずバックアップを保存してください。" + "value": "設定 → データ → 「データエクスポート」で、すべての記録(アクション・時間・回数・目標・クエスト)をCSVファイルにできます。範囲を指定してその期間の記録だけを書き出すこともできます。表計算で分析したり、バックアップとして保管したりしましょう。エクスポートは無料でも使えます。\n「データ読み込み」(プレミアム)を使うと、書き出したCSVからアクションと時間・回数の記録を復元できます。既存データは変更せず新しい記録だけを追加し、すでにある記録は自動でスキップするため、同じファイルを何度読み込んでも安全です。CSVにないアクションは新規作成され、名前と方式が同じアクションがあればそこにつながります。" } } } @@ -12077,6 +12125,22 @@ } } }, + "지난 7일·30일로 보기": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "View as Last 7/30 Days" + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "過去7日・30日で表示" + } + } + } + }, "지난달과 비교": { "localizations": { "en": { @@ -13333,18 +13397,34 @@ } } }, - "통계 탭 맨 위의 비교 카드는 지금 보고 있는 하루·주·월의 총 시간과 횟수를 바로 앞 기간(어제·지난주·지난달)과 비교해 보여줘요. 필터를 걸면 필터된 행동들만으로 비교돼요.\n주간·월간에서 '지난 7일/30일 단위로 보기'를 켜면 달력 주·월 대신 오늘로 끝나는 최근 7일·30일을 볼 수 있어요 — 주초·월초에 그래프가 거의 비어 보일 때 유용해요. 비교 카드도 바로 앞 7일·30일과 비교로 바뀌고, 통계 위젯에도 '지난 7일/30일' 기간이 있어요.": { + "통계 탭 맨 위의 비교 카드는 지금 보고 있는 하루·주·월의 총 시간과 횟수를 바로 앞 기간(어제·지난주·지난달)과 비교해 보여줘요. 필터를 걸면 필터된 행동들만으로 비교돼요.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "The comparison card at the top of the Stats tab compares the total time and counts of the current day/week/month with the period right before (yesterday, last week, last month). With a filter on, only the filtered actions are compared.\nIn weekly/monthly view, turn on 'View as Last 7/30 Days' to see the most recent 7 or 30 days ending today instead of the calendar week/month — handy when charts look nearly empty early in a week or month. The comparison card switches to the previous 7/30 days, and the stats widget also offers Last 7/30 Days periods." + "value": "The comparison card at the top of the Stats tab compares the total time and counts of the current day/week/month with the period right before (yesterday, last week, last month). With a filter on, only the filtered actions are compared." } }, "ja": { "stringUnit": { "state": "translated", - "value": "統計タブ最上部の比較カードは、表示中の1日・週・月の合計時間と回数を、直前の期間(昨日・先週・先月)と比較して表示します。フィルターをかけると、フィルターしたアクションだけで比較されます。\n週間・月間で「過去7日/30日単位で表示」をオンにすると、暦の週・月の代わりに今日で終わる直近7日・30日を表示できます — 週初めや月初めにグラフがほぼ空に見えるときに便利です。比較カードも直前の7日・30日との比較に切り替わり、統計ウィジェットにも「過去7日/30日」の期間があります。" + "value": "統計タブ最上部の比較カードは、表示中の1日・週・月の合計時間と回数を、直前の期間(昨日・先週・先月)と比較して表示します。フィルターをかけると、フィルターしたアクションだけで比較されます。" + } + } + } + }, + "통계 탭 주간·월간에서 '지난 7일/30일 단위로 보기'를 켜면 달력 주·월 대신 오늘로 끝나는 최근 7일·30일을 볼 수 있어요 — 주초·월초에 그래프가 거의 비어 보일 때 유용해요. 화살표는 7일·30일씩 이동하고, 맨 위 비교 카드도 바로 앞 7일·30일과의 비교로 바뀌어요. 홈 화면 통계 위젯에도 '지난 7일'·'지난 30일' 기간이 있어요.": { + "localizations": { + "en": { + "stringUnit": { + "state": "translated", + "value": "In the Stats tab's weekly/monthly view, turn on 'View as Last 7/30 Days' to see the most recent 7 or 30 days ending today instead of the calendar week/month — handy when charts look nearly empty early in a week or month. The arrows move 7 or 30 days at a time, and the comparison card at the top switches to the previous 7/30 days. The home screen stats widget also offers 'Last 7 Days' and 'Last 30 Days' periods." + } + }, + "ja": { + "stringUnit": { + "state": "translated", + "value": "統計タブの週間・月間で「過去7日/30日単位で表示」をオンにすると、暦の週・月の代わりに今日で終わる直近7日・30日を表示できます — 週初めや月初めにグラフがほぼ空に見えるときに便利です。矢印は7日・30日ずつ移動し、最上部の比較カードも直前の7日・30日との比較に切り替わります。ホーム画面の統計ウィジェットにも「過去7日」「過去30日」の期間があります。" } } } @@ -13559,18 +13639,18 @@ } } }, - "페이지를 넘기면 자유 노트가 이어져요. 애플 펜슬로 쓰고 그리고, '사진'·'도형'·'텍스트'를 추가한 뒤 '배치 모드'에서 꾸며요 — 드래그로 옮기고, 핀치로 크기를(모양 비율은 그대로), 두 손가락 돌리기로 회전을 바꿔요. 선택하면 나타나는 손잡이로 모양을 다듬어요: 사각형은 꼭짓점을 끌면 그 모서리만 움직이고, 원은 상하좌우 손잡이로 늘리거나 눌러 타원을 만들고, 화살표·선은 양 끝점을 끌어 길이와 방향을 바꿔요. 조절 중에 정사각형·정원이 되는 순간 손잡이가 노란색으로 변하며 살짝 붙잡아 줘요. 텍스트 상자는 선택된 상태에서 한 번 더 탭하면 바로 그 자리에서 키보드로 입력·줄바꿈이 되고, '스타일'에서 글자 색·크기·굵게·정렬·테두리(색·굵기 포함)를 바꿀 수 있어요. 도형은 '도형 수정'에서 색·선 굵기·채우기·모서리 둥글기·회전을 바꿔요. 두 손가락 핀치로 페이지를 확대해 세밀하게 쓸 수 있고, 줄 노트를 켜면 줄 간격도 고를 수 있어요. 페이지가 여러 장이면 오른쪽 위 ⋯ 메뉴의 '페이지 순서 변경'으로 순서를 바꿀 수 있어요. 맥에서는 텍스트 입력이 기본이고, 도구 줄의 '그리기'를 켜면 마우스나 트랙패드로도 그릴 수 있어요 — 평소에는 클릭과 스크롤이 이동·버튼에 쓰여요.": { + "페이지를 넘기면 자유 노트가 이어져요. 애플 펜슬로 자유롭게 쓰고 그려요 — 손가락은 페이지 이동과 확대·축소에 쓰여요. 두 손가락 핀치로 페이지를 확대하면 세밀하게 쓸 수 있고, 줄 노트를 켜면 줄 간격도 고를 수 있어요. 페이지가 여러 장이면 오른쪽 위 ⋯ 메뉴의 '페이지 순서 변경'으로 순서를 바꿀 수 있어요. 맥에서는 텍스트 입력이 기본이고, 도구 줄의 '그리기'를 켜면 마우스나 트랙패드로도 그릴 수 있어요 — 평소에는 클릭과 스크롤이 이동·버튼에 쓰여요.": { "localizations": { "en": { "stringUnit": { "state": "translated", - "value": "Turn the page and free-form notes continue. Write and draw with Apple Pencil, add 'Photos', 'Shapes', and 'Text', then style them in 'Arrange mode' — drag to move, pinch to resize (keeping the shape's proportions), and twist with two fingers to rotate. Use the handles that appear when selected to refine the shape: drag a rectangle's corner to move just that corner, use a circle's top/bottom/left/right handles to stretch or squash it into an ellipse, and drag either end of an arrow or line to change its length and direction. The moment it becomes a perfect square or circle while adjusting, the handles turn yellow and gently snap into place. Tap a selected text box once more to type right in place with the keyboard, line breaks included, and use 'Style' to change text color, size, bold, alignment, and the border (including its color and width). For shapes, 'Edit Shape' changes color, line width, fill, corner radius, and rotation. Pinch with two fingers to zoom in for fine writing, and turn on lined paper to pick the line spacing. With multiple pages, use 'Reorder Pages' in the ⋯ menu at the top right. On Mac, typing is the default — turn on 'Draw' in the toolbar to draw with your mouse or trackpad; otherwise clicks and scrolling are used for moving around and buttons." + "value": "Turn the page and free-form notes continue. Write and draw freely with Apple Pencil — fingers are used for moving between pages and zooming. Pinch with two fingers to zoom in for fine writing, and turn on lined paper to pick the line spacing. With multiple pages, use 'Reorder Pages' in the ⋯ menu at the top right. On Mac, typing is the default — turn on 'Draw' in the toolbar to draw with your mouse or trackpad; otherwise clicks and scrolling are used for moving around and buttons." } }, "ja": { "stringUnit": { "state": "translated", - "value": "ページをめくると自由ノートが続きます。Apple Pencilで書いて描いて、「写真」「図形」「テキスト」を追加したら「配置モード」で仕上げます — ドラッグで移動し、ピンチでサイズを変え(形の比率はそのまま)、2本指でひねって回転します。選択すると現れるハンドルで形を整えられます: 四角形は角をドラッグするとその角だけが動き、円は上下左右のハンドルで伸ばしたりつぶしたりして楕円にでき、矢印・線は両端をドラッグして長さと向きを変えられます。調整中に正方形・正円になった瞬間、ハンドルが黄色に変わりそっと吸い付きます。選択中のテキストボックスをもう一度タップすると、その場でキーボード入力・改行ができ、「スタイル」で文字の色・サイズ・太字・配置・枠線(色・太さを含む)を変えられます。図形は「図形を編集」で色・線の太さ・塗りつぶし・角の丸み・回転を変更します。2本指ピンチでページを拡大して細かく書き込め、罫線ノートをオンにすると行間も選べます。ページが複数あるときは右上の⋯メニューの「ページの順序を変更」で並べ替えられます。Macでは文字入力が基本で、ツールバーの「描く」をオンにするとマウスやトラックパッドでも描けます — ふだんはクリックとスクロールが移動やボタン操作に使われます。" + "value": "ページをめくると自由ノートが続きます。Apple Pencilで自由に書いて描けます — 指はページ移動と拡大・縮小に使われます。2本指ピンチでページを拡大すると細かく書き込め、罫線ノートをオンにすると行間も選べます。ページが複数あるときは右上の⋯メニューの「ページの順序を変更」で並べ替えられます。Macでは文字入力が基本で、ツールバーの「描く」をオンにするとマウスやトラックパッドでも描けます — ふだんはクリックとスクロールが移動やボタン操作に使われます。" } } } diff --git a/myApp/HaruDanim/IOS/Views/HelpView.swift b/myApp/HaruDanim/IOS/Views/HelpView.swift index 98ca5bd..1bfc439 100644 --- a/myApp/HaruDanim/IOS/Views/HelpView.swift +++ b/myApp/HaruDanim/IOS/Views/HelpView.swift @@ -268,14 +268,24 @@ struct HelpView: View { body: "기록·통계 탭 오른쪽 위 내보내기 버튼으로 지금 보고 있는 기간의 리포트를 고해상도 이미지로 만들 수 있어요. 라이트·다크 테마를 골라 공유하거나 사진에 저장해요." ), HelpTopic( - symbol: "tablecells", - title: "CSV로 백업·복원하기", - body: "설정 → 데이터 → '데이터 내보내기'에서 모든 기록(행동·시간·횟수·목표·다짐)을 CSV 파일로 만들 수 있어요. 구간을 직접 지정해 그 기간의 기록만 내보낼 수도 있어요. 스프레드시트에서 열어 분석하거나 백업으로 보관해 두세요. 내보내기는 무료에서도 사용할 수 있어요.\n'데이터 가져오기'(프리미엄)를 쓰면 내보냈던 CSV에서 행동과 시간·횟수 기록을 다시 불러올 수 있어요. 기존 데이터는 바꾸지 않고 새 기록만 추가하며, 이미 있는 기록은 자동으로 건너뛰어서 같은 파일을 여러 번 가져와도 안전해요. CSV에 없는 행동은 새로 만들어지고, 이름과 방식이 같은 행동이 이미 있으면 그 행동으로 이어져요.\n기록이 오래 쌓여 정리하고 싶다면 '데이터 정리·초기화'를 써 보세요. 전체를 비우거나 지정한 날짜까지의 기록·일기만 삭제할 수 있고, 삭제 전에 CSV 백업과 삭제할 기록을 한눈에 정리한 '정리 리포트'(PDF·이미지)를 만들어 보관할 수 있어요. iCloud 동기화를 켰다면 다른 기기에서도 함께 삭제되니 백업을 꼭 저장해 두세요." + symbol: "calendar.badge.clock", + title: "지난 7일·30일로 보기", + body: "통계 탭 주간·월간에서 '지난 7일/30일 단위로 보기'를 켜면 달력 주·월 대신 오늘로 끝나는 최근 7일·30일을 볼 수 있어요 — 주초·월초에 그래프가 거의 비어 보일 때 유용해요. 화살표는 7일·30일씩 이동하고, 맨 위 비교 카드도 바로 앞 7일·30일과의 비교로 바뀌어요. 홈 화면 통계 위젯에도 '지난 7일'·'지난 30일' 기간이 있어요." ), HelpTopic( symbol: "arrow.up.arrow.down", title: "이전 기간과 비교", - body: "통계 탭 맨 위의 비교 카드는 지금 보고 있는 하루·주·월의 총 시간과 횟수를 바로 앞 기간(어제·지난주·지난달)과 비교해 보여줘요. 필터를 걸면 필터된 행동들만으로 비교돼요.\n주간·월간에서 '지난 7일/30일 단위로 보기'를 켜면 달력 주·월 대신 오늘로 끝나는 최근 7일·30일을 볼 수 있어요 — 주초·월초에 그래프가 거의 비어 보일 때 유용해요. 비교 카드도 바로 앞 7일·30일과 비교로 바뀌고, 통계 위젯에도 '지난 7일/30일' 기간이 있어요." + body: "통계 탭 맨 위의 비교 카드는 지금 보고 있는 하루·주·월의 총 시간과 횟수를 바로 앞 기간(어제·지난주·지난달)과 비교해 보여줘요. 필터를 걸면 필터된 행동들만으로 비교돼요." + ), + HelpTopic( + symbol: "tablecells", + title: "CSV로 백업·복원하기", + body: "설정 → 데이터 → '데이터 내보내기'에서 모든 기록(행동·시간·횟수·목표·다짐)을 CSV 파일로 만들 수 있어요. 구간을 직접 지정해 그 기간의 기록만 내보낼 수도 있어요. 스프레드시트에서 열어 분석하거나 백업으로 보관해 두세요. 내보내기는 무료에서도 사용할 수 있어요.\n'데이터 가져오기'(프리미엄)를 쓰면 내보냈던 CSV에서 행동과 시간·횟수 기록을 다시 불러올 수 있어요. 기존 데이터는 바꾸지 않고 새 기록만 추가하며, 이미 있는 기록은 자동으로 건너뛰어서 같은 파일을 여러 번 가져와도 안전해요. CSV에 없는 행동은 새로 만들어지고, 이름과 방식이 같은 행동이 이미 있으면 그 행동으로 이어져요." + ), + HelpTopic( + symbol: "trash", + title: "데이터 정리·초기화", + body: "기록이 오래 쌓여 정리하고 싶다면 설정 → 데이터 → '데이터 정리·초기화'를 써 보세요. 전체를 비우거나, 처음부터 지정한 날짜까지의 기록·일기만 삭제할 수 있어요 — 이때 행동·꼬리표·목표·다짐과 일기 양식은 남고, 지정한 날짜에 걸쳐 있는 측정과 진행 중인 측정도 남아요. 삭제 전에 CSV 백업과, 삭제할 기록을 한눈에 정리한 '정리 리포트'(PDF·이미지)를 만들어 보관할 수 있어요 — 백업을 켰다면 파일을 만든 뒤에만 삭제로 진행할 수 있어요. 과거 기록이 사라지면 다짐의 연속 달성 기록은 끊겨요. iCloud 동기화를 켰다면 다른 기기에서도 함께 삭제되니 백업을 꼭 저장해 두세요." ), ]) } @@ -315,7 +325,12 @@ struct HelpView: View { HelpTopic( symbol: "applepencil", title: "펜슬 노트 페이지", - body: "페이지를 넘기면 자유 노트가 이어져요. 애플 펜슬로 쓰고 그리고, '사진'·'도형'·'텍스트'를 추가한 뒤 '배치 모드'에서 꾸며요 — 드래그로 옮기고, 핀치로 크기를(모양 비율은 그대로), 두 손가락 돌리기로 회전을 바꿔요. 선택하면 나타나는 손잡이로 모양을 다듬어요: 사각형은 꼭짓점을 끌면 그 모서리만 움직이고, 원은 상하좌우 손잡이로 늘리거나 눌러 타원을 만들고, 화살표·선은 양 끝점을 끌어 길이와 방향을 바꿔요. 조절 중에 정사각형·정원이 되는 순간 손잡이가 노란색으로 변하며 살짝 붙잡아 줘요. 텍스트 상자는 선택된 상태에서 한 번 더 탭하면 바로 그 자리에서 키보드로 입력·줄바꿈이 되고, '스타일'에서 글자 색·크기·굵게·정렬·테두리(색·굵기 포함)를 바꿀 수 있어요. 도형은 '도형 수정'에서 색·선 굵기·채우기·모서리 둥글기·회전을 바꿔요. 두 손가락 핀치로 페이지를 확대해 세밀하게 쓸 수 있고, 줄 노트를 켜면 줄 간격도 고를 수 있어요. 페이지가 여러 장이면 오른쪽 위 ⋯ 메뉴의 '페이지 순서 변경'으로 순서를 바꿀 수 있어요. 맥에서는 텍스트 입력이 기본이고, 도구 줄의 '그리기'를 켜면 마우스나 트랙패드로도 그릴 수 있어요 — 평소에는 클릭과 스크롤이 이동·버튼에 쓰여요." + body: "페이지를 넘기면 자유 노트가 이어져요. 애플 펜슬로 자유롭게 쓰고 그려요 — 손가락은 페이지 이동과 확대·축소에 쓰여요. 두 손가락 핀치로 페이지를 확대하면 세밀하게 쓸 수 있고, 줄 노트를 켜면 줄 간격도 고를 수 있어요. 페이지가 여러 장이면 오른쪽 위 ⋯ 메뉴의 '페이지 순서 변경'으로 순서를 바꿀 수 있어요. 맥에서는 텍스트 입력이 기본이고, 도구 줄의 '그리기'를 켜면 마우스나 트랙패드로도 그릴 수 있어요 — 평소에는 클릭과 스크롤이 이동·버튼에 쓰여요." + ), + HelpTopic( + symbol: "square.on.circle", + title: "사진·도형·텍스트 꾸미기", + body: "노트 페이지 도구 줄에서 '사진'·'도형'·'텍스트'를 추가한 뒤 '배치 모드'에서 꾸며요 — 드래그로 옮기고, 핀치로 크기를(모양 비율은 그대로), 두 손가락 돌리기로 회전을 바꿔요. 선택하면 나타나는 손잡이로 모양을 다듬어요: 사각형은 꼭짓점을 끌면 그 모서리만 움직이고, 원은 상하좌우 손잡이로 늘리거나 눌러 타원을 만들고, 화살표·선은 양 끝점을 끌어 길이와 방향을 바꿔요. 조절 중에 정사각형·정원이 되는 순간 손잡이가 노란색으로 변하며 살짝 붙잡아 줘요. 텍스트 상자는 선택된 상태에서 한 번 더 탭하면 바로 그 자리에서 키보드로 입력·줄바꿈이 되고, '스타일'에서 글자 색·크기·굵게·정렬·테두리(색·굵기 포함)를 바꿀 수 있어요. 도형은 '도형 수정'에서 색·선 굵기·채우기·모서리 둥글기·회전을 바꿔요." ), HelpTopic( symbol: "doc.text.image",