- 新增删除营养分析记录功能,支持本地状态更新和API调用 - 添加图片全屏预览功能,支持缩放和手势操作 - 实现Liquid Glass风格的删除按钮,包含兼容性处理 - 优化历史记录页面布局和交互体验 - 更新Memory Bank文档,添加Liquid Glass按钮实现指南
227 lines
5.9 KiB
Markdown
227 lines
5.9 KiB
Markdown
# 技术栈
|
|
|
|
## 核心技术
|
|
|
|
### 前端框架
|
|
- **React Native**: 0.81.4 - 跨平台移动应用开发框架
|
|
- **Expo SDK**: 54.0.13 - React Native 开发平台和工具链
|
|
- **Expo Router**: 6.0.12 - 基于文件系统的路由库
|
|
- **TypeScript**: 5.9.2 - 类型安全的 JavaScript 超集
|
|
|
|
### 状态管理
|
|
- **Redux Toolkit**: 2.9.0 - 状态管理解决方案
|
|
- **React Redux**: 9.2.0 - React Redux 绑定
|
|
- **Redux Listener Middleware**: 自定义中间件用于自动同步
|
|
|
|
### UI 框架和样式
|
|
- **React Native Elements**: UI 组件库
|
|
- **Expo UI**: 0.2.0-beta.7 - Expo UI 组件
|
|
- **Expo Glass Effect**: 0.1.4 - Liquid Glass 毛玻璃效果, 优先使用
|
|
- **React Native Reanimated**: 4.1.0 - 高性能动画库
|
|
- **React Native Gesture Handler**: 2.28.0 - 手势处理
|
|
- **React Native SVG**: 15.12.1 - SVG 图形支持
|
|
|
|
### 导航
|
|
- **Expo Router**: 6.0.12 - 文件系统路由
|
|
- **React Navigation**: 7.x - 导航库
|
|
|
|
## 数据和存储
|
|
|
|
### 本地存储
|
|
- **Expo SQLite**: 16.0.8 - SQLite 数据库
|
|
- **Expo SQLite KV Store**: 键值存储
|
|
- **Async Storage**: 2.2.0 - 异步存储(兼容层)
|
|
|
|
### 网络和 API
|
|
- **Fetch API**: 原生网络请求
|
|
- **XMLHttpRequest**: 流式请求支持
|
|
- **Axios**: HTTP 客户端(可选)
|
|
|
|
## 原生功能集成
|
|
|
|
### HealthKit 集成
|
|
- **自定义 HealthKit Manager**: iOS 原生模块
|
|
- **健康数据类型**: 步数、心率、HRV、睡眠、活动圆环等
|
|
- **权限管理**: 动态权限请求和状态监控
|
|
|
|
### 通知系统
|
|
- **Expo Notifications**: 0.32.12 - 本地和推送通知
|
|
- **后台任务**: Expo Task Manager
|
|
- **推送通知**: 远程推送支持
|
|
|
|
### 设备功能
|
|
- **Expo Camera**: 17.0.8 - 相机功能
|
|
- **Expo Image Picker**: 17.0.8 - 图片选择
|
|
- **Expo Haptics**: 15.0.7 - 触觉反馈
|
|
- **Expo Quick Actions**: 6.0.0 - 快捷动作
|
|
- **Expo Symbols**: 1.0.7 - SF Symbols
|
|
|
|
## 开发工具和构建
|
|
|
|
### 构建系统
|
|
- **Expo Prebuild**: 原生构建生成
|
|
- **Metro**: JavaScript 打包工具
|
|
- **Babel**: JavaScript 编译器
|
|
|
|
### 代码质量
|
|
- **ESLint**: 9.35.0 - 代码检查
|
|
- **ESLint Config Expo**: 10.0.0 - Expo ESLint 配置
|
|
- **Prettier**: 代码格式化
|
|
- **TypeScript**: 类型检查
|
|
|
|
### 开发环境
|
|
- **VS Code**: 主要开发 IDE
|
|
- **Expo Go**: 开发调试
|
|
- **iOS Simulator**: iOS 模拟器
|
|
- **Xcode**: iOS 原生开发
|
|
|
|
## 第三方服务
|
|
|
|
### 云存储
|
|
- **腾讯云 COS**: 图片和文件存储
|
|
- **上传服务**: 自定义上传实现
|
|
|
|
### AI 服务
|
|
- **AI 教练**: 自定义 AI 对话服务
|
|
- **图像识别**: 食物识别
|
|
- **语音识别**: 语音转文字
|
|
|
|
### 分析和监控
|
|
- **Sentry**: 7.2.0 - 错误监控和性能分析
|
|
- **崩溃报告**: 自动崩溃收集
|
|
|
|
## UI 组件库
|
|
|
|
### 基础组件
|
|
- **ThemedView**: 主题化视图组件
|
|
- **ThemedText**: 主题化文本组件
|
|
- **IconSymbol**: 图标组件
|
|
- **ProgressBar**: 进度条组件
|
|
- **AnimatedNumber**: 数字动画组件
|
|
|
|
### 业务组件
|
|
- **FitnessRingsCard**: 健身圆环卡片
|
|
- **StepsCard**: 步数卡片
|
|
- **NutritionRadarCard**: 营养雷达图
|
|
- **WaterIntakeCard**: 饮水记录卡片
|
|
- **MoodCard**: 心情卡片
|
|
- **GoalCard**: 目标卡片
|
|
- **TaskCard**: 任务卡片
|
|
|
|
### 图表组件
|
|
- **RadarChart**: 雷达图
|
|
- **CircularRing**: 圆形进度环
|
|
- **CalorieRingChart**: 卡路里环形图
|
|
- **ActivityHeatMap**: 活动热力图
|
|
|
|
## 开发依赖
|
|
|
|
### 类型定义
|
|
- **React Types**: 19.1.13
|
|
- **React Native Types**: 内置
|
|
- **Expo Types**: 内置
|
|
|
|
### 工具库
|
|
- **Day.js**: 1.11.18 - 日期处理
|
|
- **Lodash**: 4.17.21 - 工具函数库
|
|
- **React Native Chart Kit**: 6.12.0 - 图表库
|
|
- **Lottie React Native**: 7.3.4 - 动画库
|
|
|
|
### 音频和媒体
|
|
- **React Native Voice**: 3.2.4 - 语音识别
|
|
- **Expo Media Library**: 18.2.0 - 媒体库
|
|
- **Expo Audio**: 音频处理
|
|
|
|
## 平台特定配置
|
|
|
|
### iOS 配置
|
|
- **最低版本**: iOS 16.0
|
|
- **Bundle ID**: com.anonymous.digitalpilates
|
|
- **Team ID**: 756WVXJ6MT
|
|
- **权限配置**: 相机、相册、麦克风、健康数据、通知等
|
|
|
|
### 构建配置
|
|
- **New Arch**: 启用
|
|
- **JS Engine**: JSC
|
|
- **Metro 配置**: 自定义配置
|
|
- **插件配置**: 多个 Expo 插件
|
|
|
|
## 性能优化
|
|
|
|
### 渲染优化
|
|
- **React.memo**: 组件记忆化
|
|
- **useMemo/useCallback**: 钩子优化
|
|
- **FlatList**: 大列表优化
|
|
- **InteractionManager**: 延迟渲染
|
|
|
|
### 数据优化
|
|
- **Redux Toolkit**: 自动优化
|
|
- **数据分页**: 分页加载
|
|
- **缓存策略**: 智能缓存
|
|
- **后台同步**: 异步同步
|
|
|
|
### 资源优化
|
|
- **图片优化**: WebP 格式
|
|
- **Bundle 分割**: 代码分割
|
|
- **内存管理**: 资源释放
|
|
- **网络优化**: 请求合并
|
|
|
|
## 安全措施
|
|
|
|
### 数据安全
|
|
- **HTTPS**: 加密通信
|
|
- **Token 管理**: JWT 存储
|
|
- **数据加密**: 本地加密
|
|
- **权限控制**: 细粒度权限
|
|
|
|
### 隐私保护
|
|
- **数据脱敏**: 敏感数据处理
|
|
- **权限最小化**: 最小权限原则
|
|
- **用户控制**: 数据控制权
|
|
- **合规性**: 隐私法规遵循
|
|
|
|
## 测试框架
|
|
|
|
### 单元测试
|
|
- **Jest**: 测试框架
|
|
- **React Native Testing Library**: 组件测试
|
|
- **Mock**: 模拟数据和服务
|
|
|
|
### 集成测试
|
|
- **Detox**: E2E 测试(可选)
|
|
- **手动测试**: 功能验证
|
|
- **性能测试**: 性能基准
|
|
|
|
## 部署和发布
|
|
|
|
### 构建流程
|
|
- **Expo EAS Build**: 云端构建
|
|
- **App Store Connect**: 应用商店发布
|
|
- **OTA 更新**: 热更新
|
|
- **版本管理**: 语义化版本
|
|
|
|
### 持续集成
|
|
- **GitHub Actions**: 自动化流程
|
|
- **代码检查**: 自动化检查
|
|
- **测试执行**: 自动化测试
|
|
- **部署流程**: 自动化部署
|
|
|
|
## 开发规范
|
|
|
|
### 代码规范
|
|
- **ESLint**: 代码检查
|
|
- **Prettier**: 代码格式化
|
|
- **TypeScript**: 类型安全
|
|
- **命名规范**: 统一命名
|
|
|
|
### Git 工作流
|
|
- **Conventional Commits**: 提交规范
|
|
- **分支策略**: Git Flow
|
|
- **代码审查**: PR 流程
|
|
- **版本标签**: 标签管理
|
|
|
|
### 文档规范
|
|
- **JSDoc**: 代码注释
|
|
- **README**: 项目文档
|
|
- **API 文档**: 接口文档
|
|
- **组件文档**: 组件说明 |