Files
digital-pilates/.kilocode/rules/memory-bank/tech.md
richarjiang b27099c6d9 feat(nutrition): 优化营养成分表分析功能并移除流式显示
- 移除流式分析文本显示,简化用户界面
- 修复ImagePicker媒体类型配置,使用数组格式
- 简化API响应处理逻辑,直接使用服务端返回数据
- 移除旧格式转换函数,统一使用新的API响应格式
- 清理冗余状态变量和UI组件,提升代码可维护性
2025-10-16 12:46:43 +08:00

5.9 KiB

技术栈

核心技术

前端框架

  • 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 文档: 接口文档
  • 组件文档: 组件说明