diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..5ee4b82 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,122 @@ +# CLAUDE.md + +此文件为 Claude Code (claude.ai/code) 提供本仓库代码开发的指导说明。 + +## 项目概览 + +**SnapWish** - 一款使用中文界面的 Flutter 照片管理应用。该应用允许用户将照片组织到分类中、添加标签并管理他们的照片收藏。 + +## 架构结构 + +该应用采用标准的 Flutter Material Design 架构: +- **主入口**: `lib/main.dart` - 包含根组件和导航设置 +- **导航**: 底部导航栏包含 2 个标签页(照片、分类) +- **悬浮按钮**: 通用添加照片按钮 +- **页面**: 位于 `lib/pages/` 目录 + +## 核心组件 + +### 主结构 (`lib/main.dart`) +- **SnapWishApp**: 根 MaterialApp 组件,包含主题配置 +- **MainPage**: 管理底部导航的有状态组件 +- **路由**: `/add-photo` 路由用于添加新照片 + +### 页面 (`lib/pages/`) +- **PhotoPage** (`photo_page.dart`): 照片网格显示和照片详情查看器 +- **CategoriesPage** (`categories_page.dart`): 文件夹/分类管理,包含创建/删除功能 +- **AddPhotoPage** (`add_photo_page.dart`): 照片上传表单,包含分类选择和标签功能 + +## 开发命令 + +### 构建与运行 +```bash +# 安装依赖 +flutter pub get + +# 运行开发服务器 +flutter run + +# 构建 APK +flutter build apk + +# 构建 iOS 应用 +flutter build ios + +# 构建 Web 应用 +flutter build web +``` + +### 测试与代码质量 +```bash +# 运行所有测试 +flutter test + +# 运行特定测试文件 +flutter test test/widget_test.dart + +# 代码分析 +flutter analyze + +# 代码格式化 +flutter format . +``` + +### 开发工作流 +```bash +# 开发期间热重载 +flutter run --hot + +# 检查过时包 +flutter pub outdated + +# 升级包 +flutter pub upgrade +``` + +## 代码模式 + +### 状态管理 +- 使用 **StatefulWidget** 进行本地状态管理 +- 使用 **setState** 进行 UI 更新 +- 目前使用模拟数据(标有 TODO 注释) + +### 导航 +- **命名路由** 用于主要导航 (`/add-photo`) +- **Navigator.push** 用于照片详情查看 +- **BottomNavigationBar** 用于主标签页切换 + +### UI 组件 +- **Material 3** 设计系统 (`useMaterial3: true`) +- **中文界面**(标签为中文) +- **响应式网格布局** 用于照片显示 +- **对话框式** 交互用于分类管理 + +### 数据结构模式 +- **模拟数据** 目前以 Lists/Maps 实现 +- **分类结构**: `{name: String, count: int, isDefault: bool}` +- **标签管理**: 字符串列表支持 # 前缀 + +## 关键 TODO 项目 + +代码库包含多个 TODO 注释,指示计划功能: +- 用真实照片数据替换模拟数据 +- 实现从设备选择照片功能 +- 添加照片保存功能 +- 实现收藏/分享/删除功能 +- 按分类筛选照片 +- 集成真实文件夹/分类数据 + +## 当前限制 + +- 无实际照片存储/检索(仅模拟数据) +- 无相机集成 +- 无持久化存储 +- 无图像缓存或优化 +- 仅基础错误处理 + +## 开发环境 + +- **Flutter**: 3.2.5+ +- **Dart**: 3.2.5+ +- **目标平台**: iOS、Android(支持 Web) +- **构建工具**: 标准 Flutter 工具链 \ No newline at end of file