# 原生还是跨平台：APP技术选型的三条判断线丨APP开发——建沅网络

> 原生、跨平台还是套壳，取决于系统能力依赖、谁来维护、体验在生意里占多重。这篇给出三条判断顺序、一张场景对照表、三个常见误区，以及已经上线后想换技术栈的渐进做法。

“用跨平台做还是原生做？”——这个问题在需求确认之后一定会出现。它没有一个放之四海都对的答案，但有判断顺序。顺序搞反了，容易只盯住开发报价那一栏。

这篇文章把三种主流做法摊开，给出三条按顺序判断的线，再给一张场景对照表。你不需要懂代码，只要能回答关于自己业务的那几个问题。

## 一、先认清三种做法各自换来什么

| 做法 | 换来什么 | 代价在哪 |
| --- | --- | --- |
| 原生（iOS 与 Android 各做一套） | 系统能力用得最全，动效与相机、定位、蓝牙这类硬件交互最稳；问题定位也直接 | 两套人力、两套排期、两次商店审核；同一改动要写两遍 |
| 跨平台（一套业务代码两端运行） | 开发与迭代省人力，界面统一，小团队也能同时上两个平台 | 深层系统能力和复杂动画仍需写平台代码；包体积、调试链路比原生绕一些 |
| 混合 / 套壳（网页装进外壳） | 最快、最省，网页团队就能交付 | 交互与性能有天花板；对“只是把网页包起来”的应用，商店审核并不友好 |

一句话概括：**原生买的是体验与能力，跨平台买的是效率，套壳买的是时间**。三种都能上线，区别在于上线之后你还要付多少。

## 二、三条判断线，顺序不要颠倒

### 第一条：功能依赖多少系统与硬件

这是硬指标，先量它。把下面这份清单对着自己的功能划一遍，划到 3 项以上，基本就该往原生靠：

- 蓝牙、串口、NFC 等外设对接；
- 后台定位、轨迹记录、地理围栏；
- 相机实时处理（扫码之外的识别、测量、拍照上传前的压缩）；
- 指纹、面容等生物识别；
- 系统级分享、深链跳转、与其他 App 互相唤起；
- 离线缓存、后台同步、桌面小组件；
- 音视频通话与推送到达率要求较高的场景。

如果这些一条都用不上，你的需求其实很简单，接着看第二条。

### 第二条：谁来维护，维护多久

这一条最容易被跳过，但它决定第二年的成本。三种情况对应三种选法：

- **公司里没有移动端的人，未来靠外包维护。**选跨平台。一套代码，交接面小，换团队时对方接手更快；原生双端交接，常常要交接两支队伍。
- **有固定的一两个技术同事，且要长期做下去（三年以上）。**原生可以分平台演进，功能越加越深时不会被框架挡住。
- **一次做完、后期改动很少（内部工具、展会演示）。**跨平台或混合即可，不必为低频使用付费。

### 第三条：体验在生意里占多重

- **业务型**——下单、报工、审批、巡检、看板、对账。核心是表单、列表、状态流转，跨平台完全够用，把力气花在字段和流程上更值。
- **体验型**——影像处理、内容社区、重动效、游戏化激励。用户是拿它当“产品”而不是“工具”，原生更合适。
- **极低频**——一年用两回的报名、抽奖、活动页。先别做 APP：网页或小程序更省，这一点在[能做小程序的先别做 APP](../news/e588abe680a5e79d80e5819aapp-e5beaee4bfa1e5b08fe7a8-260913-thq4.html)里讲过。

## 三、场景对照表

| 你的场景 | 倾向 | 提前想清的代价 |
| --- | --- | --- |
| 业务型工具，表单与流程为主 | 跨平台 | 大量输入页的键盘与光标体验、扫码、深链要单独验证 |
| 硬件对接（蓝牙、串口、NFC） | 原生 | 两套人力；测试机型号要备足，尤其安卓碎片化机型 |
| 图像、视频、实时处理 | 原生，或核心模块原生 + 其余跨平台 | 低端机要做性能降级，算法在端上跑不动就要上云 |
| 会员 + 内容 + 电商 | 跨平台为主 | 支付、登录、分享要分别接各平台 SDK；上架合规材料一次备齐 |
| 内部低频工具 | 混合、H5 或小程序 | 别指望它承担系统级职责（后台常驻、硬件调用） |

## 四、三个常见误区

1. **“一次开发，到处运行”。**共享的是业务代码。适配、两个商店的上架素材与审核、平台各异的推送与支付 SDK，仍然要两边各做一遍。省下的是开发量，不是工作量。
2. **“套壳便宜”。**省下的是开发，赔的是体验与后续。而且对内容单薄、只是把网页包一层外壳的应用，商店审核可能不通过——这一点在立项时就该问清楚。
3. **“原生一定更好”。**只在小团队、预算有限、需求还在变的时候，双端原生常常换来两个都做一半。技术选型看的是匹配，不是先进程度。

## 五、已经上线了，想换技术栈怎么办

这种情况我们遇到过几次，先分清“必须换”还是“想换”：

- **必须换的信号：**关键功能被框架卡住做不出来；崩溃与卡顿集中在特定机型的核心流程；招不到能维护这套代码的人。
- **可以再等等的信号：**只是某个页面滑动不顺、某个动画不够细腻——这类问题通常优化就能解决。

真要换，优先走**渐进路线**：新版本里把一两个核心模块改用原生实现，其余继续原来的方案，接口不变、用户无感。全量重写需要三个前提同时成立：后端接口已经稳定、有明确的功能冻结期、能接受几个月不发新功能。三个缺一个，重写就容易变成“新旧两套并存”。

## 六、七个问题，问完答案基本就有了

1. 最核心的三个功能是什么？
2. 它们依赖哪些系统能力或硬件？
3. 上线后谁来维护，有几个人？
4. 一年计划发几个大版本？
5. 目标用户主要在哪个系统、什么价位的机型上？
6. 有没有必须对接的外部硬件或第三方 SDK？
7. 最坏情况下，能不能接受重写其中一个模块？

这七个问题的答案，就是我们给客户做选型建议时最先问的东西。它们不涉及技术偏好，全都是业务事实。

## 七、我们通常怎么建议

面向多数中小企业的业务型应用，常见做法是**先用跨平台把需求验证出来，跑顺之后再按模块下沉原生**。理由是：需求在第一年最容易变，改一套代码比改两套便宜；等到哪一块真的被框架挡住了，再单独拿出来重做，边界清楚、预算也可控。

反过来，如果一开始就知道要对接硬件、要做重度的图像处理，那就别绕这一圈，直接按原生规划，把测试机和人力提前算进预算。

### 本页要点（Key Takeaways）

- 三种做法买的东西不同：原生买体验与能力，跨平台买效率，套壳买时间
- 判断顺序：先量系统与硬件依赖 → 再看谁来维护、维护多久 → 最后看体验在生意里的权重
- “一次开发，到处运行”只是业务代码共享；适配、审核、各平台 SDK 仍要两边做
- 业务型应用先用跨平台验证需求，被卡住再按模块下沉原生，是成本更可控的路径
- 换技术栈前先分清“必须换”与“想换”；渐进改造的三个前提：接口稳定、功能冻结、能接受停更
- 延伸阅读：[APP上线后才是开始：第一年的版本迭代与机型适配](../news/app-dev-261023-r8mk.html)、[能用小程序解决的，就先别做APP](../news/e588abe680a5e79d80e5819aapp-e5beaee4bfa1e5b08fe7a8-260913-thq4.html)

## 附：把选型问题带进第一次沟通

如果你正准备立项，可以先把第六节那七个问题写下来，答案不完整的部分就是我们第一次沟通要问的内容。需要评估现成的方案，可以[看看我们的APP开发服务](../services/app-dev.html)，或直接[约一次技术沟通](../contact.html)——我们会先给判断，再谈报价。

本文由建沅网络APP开发方向的技术团队撰写，观点来自一线项目实践。如需转载请联系我们并注明出处。
