name: 移动开发 description: 使用React Native、Flutter、Swift/SwiftUI和Kotlin/Jetpack Compose构建现代移动应用。涵盖移动优先设计原则、性能优化(电池、内存、网络)、离线优先架构、平台特定指南(iOS HIG、Material Design)、测试策略、安全最佳实践、可访问性、应用商店部署和移动开发思维。在构建移动应用、实现移动UX模式、针对移动约束优化或做出原生与跨平台决策时使用。 license: MIT version: 1.0.0
移动开发技能
使用现代框架、最佳实践和移动优先思维模式进行生产就绪的移动开发。
何时使用
- 构建移动应用(iOS、Android或跨平台)
- 实现移动优先设计和UX模式
- 针对移动约束优化(电池、内存、网络、小屏幕)
- 做出原生与跨平台技术决策
- 实现离线优先架构和数据同步
- 遵循平台特定指南(iOS HIG、Material Design)
- 优化移动应用性能和用户体验
- 实现移动安全和认证
- 测试移动应用(单元、集成、E2E)
- 部署到App Store和Google Play
技术选择指南
跨平台框架:
- React Native:JavaScript专长,Web代码共享,成熟生态系统(121K星,67%熟悉度)
- Flutter:性能关键应用,复杂动画,增长最快(170K星,46%采用率)
原生开发:
- iOS(Swift/SwiftUI):最大iOS性能,最新功能,Apple生态系统集成
- Android(Kotlin/Jetpack Compose):最大Android性能,Material Design 3,平台优化
参见:references/mobile-frameworks.md 获取详细框架比较
移动开发思维模式
移动开发的十诫:
- 性能是基础,而非特性 - 70%用户在加载时间超过3秒时放弃应用
- 每一千字节,每一毫秒都重要 - 移动约束是真实的
- 默认离线优先 - 网络不可靠,需为此设计
- 用户上下文大于开发环境 - 考虑真实世界使用场景
- 平台意识但不平台锁定 - 尊重平台惯例
- 迭代而非完美 - 发布、测量、改进循环是生存之道
- 安全和可访问性由设计决定 - 非事后考虑
- 在真实设备上测试 - 模拟器在性能上撒谎
- 架构随复杂性扩展 - 不要过度工程简单应用
- 持续学习是生存之道 - 移动领域快速演变
参见:references/mobile-mindset.md 获取思维模式和决策框架
参考导航
核心技术:
mobile-frameworks.md- React Native、Flutter、Swift、Kotlin、框架比较矩阵、何时使用每种mobile-ios.md- Swift 6、SwiftUI、iOS架构模式、HIG、App Store要求、平台能力mobile-android.md- Kotlin、Jetpack Compose、Material Design 3、Play Store、Android特定功能
最佳实践与开发思维模式:
mobile-best-practices.md- 移动优先设计、性能优化、离线优先架构、安全、测试、可访问性、部署、分析mobile-debugging.md- 调试工具、性能分析、崩溃分析、网络调试、平台特定调试mobile-mindset.md- 思维模式、决策框架、平台特定思维、常见陷阱、调试策略
关键最佳实践(2024-2025)
性能目标:
- 应用启动:<2秒(70%用户在超过3秒时放弃)
- 内存使用:典型屏幕<100MB
- 网络请求:批量并积极缓存
- 电池影响:尊重Doze模式和后台限制
- 动画:60 FPS(每帧16.67毫秒)
架构:
- 小型到中型应用使用MVVM(清晰分离,可测试)
- 大型企业应用使用MVVM + Clean Architecture
- 离线优先与混合同步(推送 + 拉取)
- 状态管理:Zustand(React Native)、Riverpod 3(Flutter)、StateFlow(Android)
安全(OWASP移动Top 10):
- OAuth 2.0 + JWT + 生物识别用于认证
- Keychain(iOS)/ KeyStore(Android)用于敏感数据
- 证书固定用于网络安全
- 永不硬编码凭据或API密钥
- 实现适当的会话管理
测试策略:
- 单元测试:业务逻辑覆盖率70%+
- 集成测试:关键用户流程
- E2E测试:Detox(React Native)、Appium(跨平台)、XCUITest(iOS)、Espresso(Android)
- 发布前必须进行真实设备测试
部署:
- Fastlane用于跨平台自动化
- 分阶段推出:内部 → 封闭 → 开放 → 生产
- 强制要求:iOS 17 SDK(2024)、Android 15 API 35(2025年8月)
- CI/CD节省20%开发时间
快速决策矩阵
| 需求 | 选择 |
|---|---|
| JavaScript团队,Web代码共享 | React Native |
| 性能关键,复杂动画 | Flutter |
| 最大iOS性能,最新功能 | Swift/SwiftUI原生 |
| 最大Android性能,Material 3 | Kotlin/Compose原生 |
| 快速原型开发 | React Native + Expo |
| 桌面 + 移动 | Flutter |
| 企业具有JavaScript技能 | React Native |
| 初创公司资源有限 | Flutter或React Native |
| 游戏或重图形 | 原生(Swift/Kotlin)或Unity |
框架快速比较(2024-2025)
| 标准 | React Native | Flutter | Swift/SwiftUI | Kotlin/Compose |
|---|---|---|---|---|
| 星数 | 121K | 170K | N/A | N/A |
| 采用率 | 35% | 46% | 仅iOS | 仅Android |
| 性能 | 80-90%原生 | 85-95%原生 | 100%原生 | 100%原生 |
| 开发速度 | 快(热重载) | 非常快(热重载) | 快(Xcode预览) | 快(实时编辑) |
| 学习曲线 | 易(JavaScript) | 中(Dart) | 中(Swift) | 中(Kotlin) |
| UI范式 | 基于组件 | 基于Widget | 声明式 | 声明式 |
| 社区 | 巨大(npm) | 增长中 | Apple生态系统 | Android生态系统 |
| 最适合 | JS团队,Web共享 | 性能,动画 | 仅iOS应用 | 仅Android应用 |
实施检查清单
项目设置:
- 选择框架 → 初始化项目 → 配置开发环境 → 设置版本控制 → 配置CI/CD → 团队标准
架构:
- 选择模式(MVVM/Clean) → 设置文件夹 → 状态管理 → 导航 → API层 → 错误处理 → 日志记录
核心功能:
- 认证 → 数据持久化 → API集成 → 离线同步 → 推送通知 → 深度链接 → 分析
UI/UX:
- 设计系统 → 平台指南 → 可访问性 → 响应式布局 → 深色模式 → 本地化 → 动画
性能:
- 图像优化 → 懒加载 → 内存分析 → 网络优化 → 电池测试 → 启动时间优化
质量:
- 单元测试(70%+) → 集成测试 → E2E测试 → 可访问性测试 → 性能测试 → 安全审计
安全:
- 安全存储 → 认证流程 → 网络安全 → 输入验证 → 会话管理 → 加密
部署:
- 应用图标/启动页 → 截图 → 商店列表 → 隐私政策 → TestFlight/内部测试 → 分阶段推出 → 监控
平台特定指南
iOS(人机界面指南):
- 原生导航模式(标签栏、导航栏)
- iOS设计模式(下拉刷新、滑动操作)
- San Francisco字体,iOS颜色系统
- 触觉反馈,3D Touch/Haptic Touch
- 尊重安全区域和刘海屏
Android(Material Design 3):
- Material导航(底部导航、导航抽屉)
- 浮动操作按钮,Material组件
- Roboto字体,Material You动态颜色
- 触摸反馈(涟漪效果)
- 尊重系统栏和手势
常见陷阱避免
- 仅测试模拟器 - 真实设备显示真实性能
- 忽略平台惯例 - 用户期望平台特定模式
- 无离线处理 - 网络故障会发生
- 差的内存管理 - 导致崩溃和差UX
- 硬编码凭据 - 安全漏洞
- 无可访问性 - 排除15%+用户
- 过早优化 - 基于指标优化,而非假设
- 过度工程 - 从简单开始,按需扩展
- 跳过真实设备测试 - 模拟器不显示电池/网络问题
- 不尊重电池 - 后台处理必须有理由
性能预算
推荐目标:
- 应用大小:初始下载<50MB,总计<200MB
- 启动时间:交互前<2秒
- 屏幕加载:缓存数据<1秒
- 网络请求:API调用<3秒
- 内存:典型屏幕<100MB,峰值<200MB
- 电池:活跃使用每小时消耗<5%
- 帧率:60 FPS(每帧16.67毫秒)
资源
官方文档:
- React Native:https://reactnative.dev/
- Flutter:https://flutter.dev/
- iOS HIG:https://developer.apple.com/design/human-interface-guidelines/
- Material Design:https://m3.material.io/
- OWASP移动:https://owasp.org/www-project-mobile-top-10/
工具与测试:
- Detox E2E:https://wix.github.io/Detox/
- Appium:https://appium.io/
- Fastlane:https://fastlane.tools/
- Firebase:https://firebase.google.com/
社区:
- React Native目录:https://reactnative.directory/
- Pub.dev(Flutter包):https://pub.dev/
- Awesome React Native:https://github.com/jondot/awesome-react-native
- Awesome Flutter:https://github.com/Solido/awesome-flutter