# 技术栈 ## 核心技术 ### 前端框架 - **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 文档**: 接口文档 - **组件文档**: 组件说明