更新:正在用 React Native 写。
这份粮食,我自己都不吃!
背景
我想开发 App 的原因其实是几个月前看到的一篇文章:我用一个跨平台 Web 应用替换了原生 iOS 应用,竟没人发现 。当时我不禁产生疑问,现在 Web 套壳应用在手机上性能表现已经好到没人发现了吗?
尝试
带着这个疑问,我也尝试了 ionicframework ,随便写了一个计时器叫做 Timer It ,它现在可以在 Google Play 中下载到,为此我还交了 25 美元的开发者帐号费用,目前也只能在 Google Play 中下载,不发布 App Store 是因为这个东西根本不值得 99 美元的年费开发者帐号。
结果表现
录制了一个 GIF 在 Android 模拟器上的表现。
性能表现还能接受。因为这只是一个计时器,首页就是一个等待开始计时的时间和一个按钮,核心功能上几乎完全不吃性能。但是通过一些插件调用原生 API 我感觉有一点延迟感,如果播放声音的话我会感觉延迟了大约几十毫秒才开始播放,或许这就是与原生通讯的过程所产生的时差吧。
设置页上有一个时间选择器,操作起来有明显的掉帧感,跟 iOS 上时钟的计时器对比就会有一种 30 帧 VS 60 帧的感觉,或许因为 Swiper.js 套 Swiper.js 的原因,又或许是渲染的 DOM 节点过多的原因,这个原因以后有时间再去研究,也正是这个原因,我才把时间选择器从首页移动到了设置页。本来的设计是,进来就是设定周期时间,点 Start 再开始计时,参考 iOS 上时钟的计时器。
上架到 Google Play 与更新
作为全新领域,从开通开发者帐号到上架商店,过程上当然会有阻难,不过好在是他们都不难解决。
第一次上架审核的过程比较长,大约 4、5 天我才收到审核通过的邮件,后续我也有个几次迭代更新,审核速度最短的一次不到 2 小时。
从上架成功的那一刻开始,这个 App 的开发也基本宣布结束了,后续的迭代更新也只是为了探索与尝试,因为自打一开始这个 App 就是为了做实验的。
想要开发的 Apps
其实我想要开发的 apps 是非常多的:
- RSS 阅读器。这类在核心功能上应该是比较好实现的,而且现在社区上对于基本 HTML 和 Markdown 样式好看的实现实在是太多了,难的多在于用户操作和阅读体验,而且各个平台上均有标杆 App 在支撑,例如 iOS 上的 Reeder 。
- 查询食物营养成分表。问题是成分数据来源,极度庞大,同样也有标杆软件:薄荷健康,薄荷营养师。
- 记账???。以前写的记账网页应用。
- 公众号编辑器。这简直是在创造需求,我不太相信会有哪位公众号编辑人员会在手机上做该在电脑上做的事情。
- 还有一些不一一列举。
以上困难其实可以用时间来堆,但是堆出来后有没有利益,有没有用户,这才是核心难题,所以「想」与「做」不成正比。
收获
- Google Play 开发者帐号
- 一个真正在商店上可下载的应用
- ionicframework/capacitor 应用
收获其实不多,但以后如果我打算开发新 App 的话,能比现在更快的创造发布新 App 的基本所需。
结语
回到开头的那个疑问,其实只是完美适配原作者的实际应用场景而已。或许在将来 Web 应用在手机上的表现会越来越好,但永远也不会媲美原生应用!