Files
to-live-photo/CLAUDE.md
empty ec2e0a3ce5 feat: v1.1 P1 功能实现 + 体验优化(4 项新功能 + 9 项修复)
## 新功能

### 视频时长放宽(Feature 5)
- LivePhotoCore: targetDuration 从固定 0.917 秒改为动态计算(0.5-5.0 秒)
- LivePhotoCore: keyFrameTime 按比例映射到目标视频时长
- EditorView: slider 上限从 1.5 秒提升至 5.0 秒
- EditorView: 超过 2 秒显示壁纸兼容性提示,超过 3 秒显示分享截断提示

### 自定义封面帧(Feature 4)
- ExportParams: 新增 coverImageURL 字段
- EditorView: 封面帧区域增加 PhotosPicker 从相册导入照片作为封面
- AppState: coverImageURL 传递到 LivePhotoWorkflow
- EditorView: onDisappear 时清理临时封面文件,避免磁盘泄漏

### 收藏/模板预设(Feature 6)
- 新增 PresetManager.swift: EditingPreset 模型 + 预设管理器
- 支持保存/加载/删除预设,最多 10 个
- UserDefaults + iCloud KV Store 双重持久化
- EditorView: 预设保存/加载 UI + 空状态 ContentUnavailableView

### iCloud 同步(Feature 7)
- RecentWorksManager: 新增 NSUbiquitousKeyValueStore 同步
- PresetManager: 同步支持 iCloud KV Store
- 合并策略:按 ID 去重,保留最新记录,限制条数上限

## Bug 修复

### P0 级
- ResultView: Live Photo 预览比例从固定值改为动态计算 aspectRatio
- EditorView: 修复本地化字符串拼接问题(使用 String(localized:) 替代硬编码)

### P1 级
- EditorView: 预设列表空状态显示 ContentUnavailableView
- ProcessingView: 进度环与百分比文本动画同步(统一 overallProgress 计算)

### P2 级
- EditorView: 添加触觉反馈(比例切换、生成按钮、预设保存、封面导入)
- HomeView: 删除作品触觉反馈 + 入场动画优化
- ProcessingView: 脉冲动画背景尺寸微调(160-175pt)
- LaunchScreen: 品牌启动画面(App Icon + 标题 + 副标题)

## 本地化

- 新增约 25 个本地化 key,覆盖 8 种语言
  (zh-Hans, zh-Hant, en, ja, ko, es, fr, ar)
- 包含:预设管理、封面导入、时长提示、删除确认、
  空状态、诊断建议等全部新增 UI 文案

## 改动文件(16 个)

- Sources/LivePhotoCore/LivePhotoCore.swift — 动态时长 + coverImageURL
- to-live-photo/AppState.swift — coverImageURL 传递
- to-live-photo/PresetManager.swift — 新增预设管理器
- to-live-photo/RecentWorksManager.swift — iCloud 同步
- to-live-photo/DesignSystem.swift — 新增设计令牌
- to-live-photo/Localizable.xcstrings — 25+ 本地化 key
- to-live-photo/Views/EditorView.swift — 4 项新功能 UI
- to-live-photo/Views/HomeView.swift — 删除作品 + 触觉反馈
- to-live-photo/Views/ProcessingView.swift — 进度环动画修复
- to-live-photo/Views/ResultView.swift — 预览比例修复 + Live Photo 预览
- to-live-photo/Base.lproj/LaunchScreen.storyboard — 品牌启动画面
- to-live-photo/Assets.xcassets/Launch*.colorset — 启动画面颜色资源

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-02-08 00:04:10 +08:00

105 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Live Photo Studio
**Bundle ID**: `xyz.let5see.livephotomaker`
**最低支持**: iOS/iPadOS 18.0
**技术栈**: SwiftUI + Swift Concurrency + Core ML
**语言**responses in Chinese
## 项目结构
```
Sources/LivePhotoCore/ # 核心库 (Swift Package)
to-live-photo/to-live-photo/
├── Views/ # Home → Editor → Processing → Result
├── AppState.swift # 全局状态
└── DesignSystem.swift # Soft UI 设计令牌
```
## 构建命令
```bash
# 模拟器构建(必须指定 -project
xcodebuild -project to-live-photo/to-live-photo.xcodeproj \
-scheme to-live-photo \
-destination 'platform=iOS Simulator,name=iPhone 16 Pro' build
# Archive
xcodebuild -project to-live-photo/to-live-photo.xcodeproj \
-scheme to-live-photo \
-configuration Release \
-destination 'generic/platform=iOS' \
-archivePath build/to-live-photo.xcarchive archive
```
## Git 规范
### 提交类型
- `feat`: 新功能
- `fix`: 修复已有功能的缺陷
- `refactor`: 重构(行为不变)
- `chore`: 构建、依赖、工具
- `docs`: 仅文档
### 分支策略
- **直接 main**: 文档、注释、单文件小修复、配置微调
- **新建分支**: 新功能、涉及 ≥3 文件的改动、实验性尝试
### 提交前检查
1. `xcodebuild build` 无错误
2. UI 改动需在模拟器运行验证
3. 单次提交只做一件事
## 禁止事项
- 不修改: `Info.plist` 版本号、`Package.resolved`
- 不新增: 依赖库(需明确授权)
- 不创建: 仅用一次的工具类/文件
- 不重构: 与当前任务无关的代码
- 不执行: 破坏性删除命令(如 rm -rf 涉及 ~ 或 / 路径)
## 执行安全
- 执行前评估: 命令是否可能挂起(交互式、网络依赖、长耗时)
- 禁止交互式: 不使用 `-i` 标志或需要 stdin 输入的命令
- 长任务策略: 后台执行 + 超时设置 + 进度监控
- 阻塞处理: 若命令超过预期时间无响应,主动中断而非无限等待
## 代码规范
- 遵循 `DesignSystem.swift` 令牌,禁止硬编码颜色/间距
- 新增 View 必须包含 `accessibilityLabel`
- 新增 View 必须适配深色模式和 iPad
- 触控目标 ≥ 44pt
- 错误处理使用 `LivePhotoError` 枚举,禁止裸 `throw`
## 文档管理
### 核心原则
> 不创建需要手工同步的文档。如果信息会随代码变化,要么让代码自描述,要么接受文档必然过时。
### 文档分类
| 类型 | 文件 | 更新策略 |
|-----|------|---------|
| 宪法 | `CLAUDE.md` | 谨慎修改,每次变更需明确意图 |
| 任务 | `TASK.md` | 活跃更新,追踪里程碑进度 |
| 运维 | `docs/TEST_MATRIX.md`, `docs/USER_GUIDE.md` | 随功能<E58A9F><E883BD><EFBFBD>更同步更新 |
| 上架 | `docs/APP_STORE_METADATA.md` | 版本发布前更新 |
| 归档 | `docs/archive/` | 只读,不再更新 |
### 禁止创建
- 目录结构文档(如 PROJECT_STRUCTURE.md— 代码即结构
- 文档索引(如 docs_index.md— 直接浏览 docs/ 目录
- 任何需要"记得同步"的描述性文档
### 更新触发
- 新增/修改功能 → 同步 `USER_GUIDE.md` 相关章节
- 新增测试场景 → 同步 `TEST_MATRIX.md`
- 归档文档 → 不更新,保持历史原貌
## Skill 引用
本项目配套 skill: `live-photo-studio`(位于 `~/.claude/skills/live-photo-studio/SKILL.md`
包含:设计系统令牌速查、构建踩坑记录、导航架构、关键类型、代码规范等项目专属知识。
在本项目中进行 UI 开发、调试构建问题时,可调用 `/live-photo-studio` 获取上下文。