- 新增删除营养分析记录功能,支持本地状态更新和API调用 - 添加图片全屏预览功能,支持缩放和手势操作 - 实现Liquid Glass风格的删除按钮,包含兼容性处理 - 优化历史记录页面布局和交互体验 - 更新Memory Bank文档,添加Liquid Glass按钮实现指南
5.9 KiB
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 文档: 接口文档
- 组件文档: 组件说明