先说结论:如果用户是顺着一条链接来到你的产品,就做网页应用程序;如果你的产品要常驻在用户的主屏幕上,就做原生应用程序。多数产品属于前者——但真正属于后者的那些,往往白白耗上好几年,假装自己是前者。下面这套方法,帮你分清自己在做哪一种。
一个问题,决定多数情况
平常的一天里,用户是怎么来到你的产品面前的?如果诚实的回答是“他们搜索、点开一条广告,或者顺着链接进来——一个月也就那么几次”,那浏览器就是你的平台:零安装门槛、一套代码、即时更新,每一条营销渠道都直接落在产品本身上。如果诚实的回答是“他们会有意识地反复打开它,已经成了习惯”,那你做的是主屏幕上的产品——原生平台到这一步才开始物有所值。
什么时候原生值回成本
- 习惯级别的使用频率。每天或接近每天打开,才撑得起一次安装;偶尔用一次,几乎撑不起。
- 离线是功能,不是退路。在 MTR 上查时刻表、在飞机上背单词卡——产品必须在没有信号时照常可用,原生的本地存储和原生的行为方式更占优势。
- 设备本身就是产品。精确定位、相机处理流程、小组件、Live Activities、HealthKit、后台任务——这些能力浏览器要么够不着,要么够不稳。
- 用户真的会接受的推送。在一个目的明确的原生应用程序里请求通知权限,转化率远高于网页上弹出的授权提示。
- App Store 本身就是渠道。商店搜索与精选推荐就是分发;可安装本身就是一种信任。在某些品类里,“到底有没有应用程序?”就是那道信誉考题。
- 界面手感就是卖点。游戏与交互密集的工具,生死全在延迟与打磨;原生买到的性能余量,任何运行时都追不上。
什么时候网页应用程序才是更聪明的做法
- 靠获客驱动的产品。如果增长来自搜索、广告或内容,这一次点击就必须落在产品上——而不是落在一个先要你承诺下载 100MB 的商店页面上。
- 偶尔才用一次的工具。预约、报价、数据看板、客户门户:没有人愿意为一年只打开六次的东西装一个应用程序。
- 迭代很快的产品。一次部署,所有用户立刻用上新版本——没有审核排队,也没有版本碎片化。
- 预算有限,却要覆盖每一个平台。一套响应式代码,上线第一天就同时照顾 iPhone、Android 与桌面端。
- 凡是必须能被链接的东西。如果分享一条网址是产品的核心动作,网页就不只是渠道——它是产品的语法本身。
中间路线——以及它们诚实的取舍
渐进式网页应用程序(PWA)补上了其中一部分差距(可安装、可离线、在多数平台上支持推送),跨平台框架则让两端共用一套代码,同时交付真正上架的商店应用程序。两者都站得住脚——合适的时候我们也这么做。诚实的取舍是:PWA 在 iOS 上始终没有真正“装上了”的感觉,而跨平台应用程序仍然意味着两个商店门面都要维护。中间路线省下的是成本,不是责任。
五个问题,做出决定
- 普通用户是靠一条链接抵达,还是靠习惯打开?
- 它必须能离线使用吗——作为一项功能,而不是一句道歉?
- 它需要浏览器够不着的硬件或系统能力吗(小组件、传感器、后台任务)?
- 在你所处的品类里,App Store 是真正的获客渠道或信誉渠道吗?
- 你的预算,诚实地说,撑得起两个平台的持续发版吗——而且要一直撑下去?
直白地算一下:答案大多偏向链接 → 先做网页,日后真的养出习惯,再包一层原生。答案大多偏向习惯 → 先做原生,另配一个能带来转化的营销网站。真的一半一半 → 网页产品,加一个面向高频核心场景的原生配套应用程序——很多最好的产品,实际结构正是如此。
落到实处是什么样子
两边我们都做,而且是主业:面向 Core Web Vitals 与转化打造的营销网站与网页应用程序,以及用 Swift 与 Kotlin 写的原生 iOS 与 Android 应用程序,其中包括我们自己已上架的应用程序——所以我们没有哪一套框架信仰要推销给你。开发一律固定范围,价格预先报出:网页开发 · 应用程序开发。