可安装的网页应用(PWA)
验证点子;内容和表单为主,不需要深度访问设备
$0 + 域名 · 低
△ 需要全平台推送、后台运行,或者一个别人能搜到的商店页面
图集 · L0–L3
手机 App 活在别人的规则里。商店决定你能不能上架,系统决定你的代码什么时候能跑,每一次更新都要在审核队列里排队。这套图纸画出 App 可能的各种形态,从一个能像 App 一样安装的网站,到带后端的原生应用,以及每一种形态什么时候值得它的代价。
设计哲学
App 是住在别人手机里的客人。它被评判的标准,是用主人的电量、注意力和信任时有多客气。
你申请的每一项权限,都是用户卸载你的一个理由。在真正需要的那一刻再申请,说明原因,被拒绝了也要能继续用。
服务器上的 bug 几分钟就能修好;App 里的 bug 要等审核、等用户更新。经常变的逻辑放在服务器上,不要写死在安装包里。
操作系统随时可以暂停、杀掉或隔离你。按“随时会被打断”来设计,而不是和规则较劲。
一个人做第一个 App?先做可安装的网页应用,或者跨平台构建。只有当你需要系统对普通应用藏起来的能力时(通话、后台运行、传感器),才走原生。
你想把这个点子握在手里,看看自己是不是真的会打开它第二次。没有商店,没有用户,没什么要保护的。
要么是一个能添加到主屏幕的网页应用,要么是一个通过开发工具跑在你自己手机上的跨平台版本。没有后端:数据留在手机里。
Δ 本级新增
对应地图上的形态: 可安装的网页应用(PWA) · 跨平台构建(一套代码)
选能最快把一个版本装到你真手机上的方案。模拟器在触摸、键盘和性能上都会骗你,你口袋里的手机不会。
其他值得了解的工具 · 本站未验证
素不相识的人正在把 App 装进你从没见过的手机里。它崩溃的时候,他们不会告诉你,只会卸载。
App 先走商店的测试渠道,再公开发布。崩溃上报从第一天就内置。如果某个系统功能是核心,这一刻就该为那个平台改成原生。
Δ 本级新增
对应地图上的形态: 跨平台构建(一套代码) · 原生应用(Kotlin / Swift)
这一级崩溃上报不是可选项,它是你看到那些不属于你的设备的唯一窗口。签名密钥一定要备份;丢了它,可能意味着这个 App 再也没法更新。
其他值得了解的工具 · 本站未验证
出现了账号、购买或同步数据。商店的支付规则开始约束你,而一次数据泄露会同时发生在成千上万台手机上。
App 变成你自己 API 的客户端。账号、购买,以及所有经常变的东西都搬到服务器上,这样修复就不用等商店审核。服务器必须接受所有仍然装着的旧版本 App 发来的请求。
Δ 本级新增
对应地图上的形态: App + 后端 API
严格遵守商店的购买规则;很多数字商品必须走商店自己的支付系统。每一笔购买都在你的服务器上验证,不能只在 App 里验证。
其他值得了解的工具 · 本站未验证
线上同时跑着好几个版本;一个糟糕的版本在你发现之前就已经到了很多人手里;设备种类多到没法靠手测。
发布按百分比逐步放量,并能自动叫停;新功能先藏在可以从服务器切换的开关后面上线;每次构建都在一批真机上跑测试。
Δ 本级新增
对应地图上的形态: App + 后端 API · 原生应用(Kotlin / Swift)
这一级的目标,是让每次发布都能不发新包就撤回。任何没法远程关掉的东西,都是一次闭眼上线的风险。
其他值得了解的工具 · 本站未验证
这件事所有可能的搭法。它们大半的意义,是让你知道哪些现在还不该碰。
验证点子;内容和表单为主,不需要深度访问设备
$0 + 域名 · 低
△ 需要全平台推送、后台运行,或者一个别人能搜到的商店页面
一个团队同时出 iOS 与 Android;大多数日常应用
$0–25/月 + 商店费用 · 低–中
△ 为了用某个系统功能而和框架较劲,或者性能限制了核心体验
需要深度系统权限:通话、后台服务、传感器(URDialer 就是这种形态)
$0–25/月 + 商店费用 · 中;两个平台都要就是两套代码
△ 出现账号、同步或支付,App 需要一个自己的服务器
账号、跨设备同步、支付、共享数据
$5–100/月 · 中–高
△ 线上同时存在很多个版本,需要功能开关和分批发布
每个概念一句人话 + 一个比喻。点击任何工具模块,也有同款科普。