122 lines
2.9 KiB
Markdown
122 lines
2.9 KiB
Markdown
# 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 工具链 |