snap_wish/CLAUDE.md
2025-08-30 18:11:40 +08:00

121 lines
3.3 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.

# CLAUDE.md
此文件为 Claude Code (claude.ai/code) 提供本仓库代码开发的指导说明。
## 项目概览
**SnapWish** - 一款使用中文界面的 Flutter 照片管理应用,允许用户将照片组织到分类中、添加标签并管理照片收藏。
## 架构与结构
### 核心架构
- **Material 3 设计系统** 配合深色主题
- **三个主界面**: 照片流、分类管理、添加照片表单
- **底部导航栏** 包含2个标签页照片、分类
- **悬浮按钮** 用于通用照片添加
- **命名路由** `/add-photo` 用于导航
### 文件结构
```
lib/
├── main.dart # 根应用,包含主题和导航
├── pages/
│ ├── photo_page.dart # 照片网格和详情查看器
│ ├── categories_page.dart # 分类CRUD操作
│ └── add_photo_page.dart # 照片上传和元数据管理
└── ...
```
## 开发命令
### 基础命令
```bash
# 安装依赖
flutter pub get
# 运行开发
flutter run
# 构建命令
flutter build apk # Android APK
flutter build ios # iOS应用
flutter build web # Web构建
# 代码质量
flutter analyze # 静态分析
flutter test # 运行所有测试
flutter format . # 代码格式化
```
### 热重载与开发
```bash
flutter run --hot # 带热重载的开发模式
flutter pub outdated # 检查过时包
flutter pub upgrade # 更新依赖
```
## 关键技术模式
### 状态管理
- **StatefulWidget** 用于本地状态管理
- **setState** 用于UI更新
- **AnimationController** 用于按压动画(照片卡片)
- **SingleTickerProviderStateMixin** 用于流畅动画
### UI模式
- **CustomScrollView + Slivers** 用于灵活滚动
- **ShaderMask** 用于文字渐变效果
- **BoxDecoration** 带阴影和渐变效果
- **GestureDetector** 用于高级触摸处理
- **AnimationController** 配合Tween动画
### 导航模式
- **BottomNavigationBar** 自定义样式
- **命名路由** (`/add-photo`) 便于维护
- **PageView** 用于照片详情浏览
- **基于对话框的交互** 用于CRUD操作
### 数据结构
- **分类**: `{'name': String, 'count': int, 'isDefault': bool}`
- **标签**: `List<String>` 支持#前缀
- **照片**: 目前为模拟数据带TODO占位符
## 开发注意事项
### 已实现的关键功能
- 深色主题配合品牌色(#FF8A1F渐变
- 响应式照片卡片4:5宽高比
- 分类管理,带创建/删除验证
- 标签系统,支持#前缀
- 照片详情查看器带PageView
- 自定义底部导航配合FAB集成
### TODO项目可在代码中搜索
- 用真实照片存储替换模拟数据
- 集成图片选择器用于设备照片
- 实现照片保存功能
- 添加收藏/分享/删除功能
- 实现基于分类的照片筛选
- 集成真实文件夹/分类数据
### 当前限制
- 无实际照片存储/检索
- 无相机集成
- 无持久化存储
- 无图像缓存/优化
- 仅基础错误处理
### 设计系统
- **背景色**: #0F1113
- **表面色**: #1A1D1F
- **主色**: #FF8A1F
- **次色**: #FFBE3D
- **文字**: #EDEDED
- **次要文字**: #9CA3AF
## 开发环境
- **Flutter**: 3.2.5+
- **Dart**: 3.2.5+
- **平台**: iOS、Android、Web
- **语言**: 中文界面,带详细中文代码注释
- **架构**: 标准Flutter工具链