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

3.5 KiB
Raw Blame History

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 设计令牌

构建命令

# 模拟器构建(必须指定 -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 随功能<EFBFBD><EFBFBD><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 获取上下文。