基础页面+项目说明

This commit is contained in:
ddshi 2025-08-28 14:45:21 +08:00
parent e685e860e7
commit 114e18698f

122
CLAUDE.md Normal file
View File

@ -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 工具链