| name | mobile-hybrid |
| description | 移动端跨平台开发。覆盖 React Native / Flutter / Expo / Ionic / Capacitor / Tauri。 |
移动端跨平台开发(Mobile & Hybrid)
适用场景
- React Native / Expo APP 开发
- Flutter APP 开发
- Ionic / Capacitor 混合 APP
- Tauri 桌面应用
- 跨平台架构选型
- 原生模块桥接
与其他 skill 的分工
| 场景 | 用什么 |
|---|
| 移动端 APP / 桌面应用 | 本 skill |
| 小程序(微信/支付宝) | miniprogram-development/ |
| Web 页面 | component-architecture/ |
| API 调用 | data-fetching/ |
技术栈决策
┌─ 跨平台选型决策 ───────────────────────────────────────────┐
│ │
│ Q1: 性能要求? │
│ 极致原生感 → Flutter / 原生 │
│ 够用就行 → React Native / Ionic │
│ │
│ Q2: 团队技术栈? │
│ React/TS → React Native + Expo │
│ Dart 可学 → Flutter │
│ Web 技术 → Ionic + Capacitor │
│ Rust → Tauri(桌面) │
│ │
│ Q3: 需要哪些端? │
│ iOS + Android → RN / Flutter │
│ iOS + Android + Web → Flutter / Ionic │
│ 桌面(Win/Mac/Linux) → Tauri / Electron │
│ 全部 → Flutter(最多端) │
└─────────────────────────────────────────────────────────────┘
框架对比
| 框架 | 语言 | 性能 | 热更新 | 包大小 | 生态 | 适合 |
|---|
| React Native | TypeScript | 良好 | CodePush | 8~15MB | 庞大 | React 团队 |
| Expo | TypeScript | 良好 | EAS Update | 15~25MB | Expo 生态 | 快速 RN 开发 |
| Flutter | Dart | 优秀 | Shorebird | 10~20MB | Google | 高保真 UI |
| Ionic | TypeScript | 一般 | 直接部署 | 5~10MB | Web 生态 | Web 技术做 APP |
| Capacitor | TypeScript | 一般 | - | 5~10MB | Ionic 出品 | Web→APP 壳 |
| Tauri | Rust+TS | 优秀 | - | 3~8MB | Rust | 桌面应用 |
| Electron | TypeScript | 一般 | - | 100MB+ | 庞大 | 桌面(不推荐新项目) |
React Native + Expo 快速上手
npx create-expo-app@latest my-app
cd my-app
npx expo start
npx expo install expo-router
pnpm add zustand
pnpm add tamagui
项目结构(Expo Router)
app/
├── (tabs)/ # Tab 导航组
│ ├── index.tsx # 首页 Tab
│ ├── explore.tsx # 探索 Tab
│ └── _layout.tsx # Tab Layout
├── modal.tsx # Modal 页面
├── [id].tsx # 动态路由
├── _layout.tsx # 根 Layout
└── +not-found.tsx # 404
components/
├── ui/ # 基础组件
└── features/ # 业务组件
Flutter 快速上手
flutter create my_app
cd my_app
flutter run
flutter pub add go_router
flutter pub add riverpod
flutter pub add dio
flutter pub add freezed
组件库选型
React Native
| 库 | Stars | 风格 | 适合 |
|---|
| Tamagui | 10K+ | 跨平台通用 | 高性能 + Web 复用 |
| React Native Paper | 13K+ | Material Design | MD 风格 |
| NativeBase | 20K+ | 通用 | 功能全 |
| Gluestack UI | 3K+ | 现代 | NativeBase 继任 |
| RN UI Lib | 6K+ | Wix 出品 | 企业级 |
Flutter
| 库 | 说明 |
|---|
| Material 3 | Flutter 内置,Material Design 3 |
| Cupertino | Flutter 内置,iOS 风格 |
| FlutterFlow | 低代码 Flutter UI |
| GetWidget | 1000+ 预制组件 |
常见坑
1. Expo 托管工作流 vs 裸工作流选错 → 后期迁移痛苦
2. React Native 原生模块版本冲突 → 锁版本 + patch-package
3. Flutter 热重载失效 → 有状态 Widget 注意 key
4. 不测真机 → 模拟器表现不一致
5. iOS 审核被拒 → 提前读 Apple Guidelines
6. Android 权限不声明 → 运行时崩溃
7. 包大小不控制 → 用户不愿下载
8. 不做离线缓存 → 弱网体验差
9. 推送证书过期 → 推送静默失效
10. 不做崩溃监控 → 线上问题无感知
配套模板
templates/mobile-hybrid-template.md
与其他 skill 的协作
上游:
ui-ux-designer → APP 设计稿(iOS/Android 规范差异)
api-designer → API 契约
下游:
testing-frontend → APP 自动化测试(Detox/Appium)
build-deploy → APP 构建发布(EAS/Fastlane)
devops-engineer → APP CI/CD