Gridder 1.0 发布,纪念贴
前言
Gridder 从 0.88 版本发布后,我对 ui 层进行了大幅度的修改。主要是把 material 换成了 forui,一方面觉得 forui 更现代化,符合我自己的审美;另一方面也是为了后续 flutter 对 ui 库的隔离做准备。
改好 ui 后也重新制作了商店图,重新发布了 google play 和 ms store。重新制作了登录页,Gridder 终于拥有了一个“正常”的登录页。
虽然功能相对 0.88 没有大的更新,但改动也不小。索性就把版本号调到了 1.0 大版本。
1.0 版本,多少有点感慨。这是我第一个产品,见证了我从打工人转变为“无业游民”的转变。所以我想在此回顾一下,Gridder 的这一路发展历程。
前身
Gridder 的前身是 gridman,前端基于 unity 使用 c# 开发。当时的目的很简单,就是想通过开发一个工具来方便的找到网格交易合适的步长。
因为我的本职工作是 unity 开发,所以自然就选择了 unity(事后证明 unity 开发软件还是有点重度了,侧重点不一样)。由于国内发布 app 很麻烦,从一开始我就以 web 为主要平台发布。不得不说我对 web 的了解很有限,这一路上踩了很多坑,但相较于开发上的坑,更麻烦的是墙内对于独立开发的“歧视”,为此我还专门记录了一系列问题:国内独开遇到的问题吐槽。
当时恰好在小红书找到了一点流量密码,又发现小红书卖东西没什么限制,就以 0.1 的价格在小红书上售卖。主打一个图一乐。
虽说第一个版本很粗糙,但是由于价格很低,还是收到了订单。
第一个订单号:P747627508323039971(图中第二个,第一个为测试订单),感谢这位“黑龙江省 哈尔滨市 松北区 松北街道”的用户。这是我在独立开发领域赚的第一个钢镚儿。
后端基于 go 开发,由于找不到免费好用的股票 api,就直接接了自己的长桥 api。用户不多的话,限额完全够用。
当时小红书还没有电子资源售卖,也没有自动发货,还需要在 app 上手动给用户发货。实际上我是以订单号作为激活码,发不发货都能激活。
进化
选型
逐渐我开始不满足于 unity 的笨重,想寻找其他实现方式。
web 能做的选择不算多,我主要对比了 blazor、js/ts 系列、flutter。
最后还会选择了 flutter,一是比较新;二是背靠 google,全家桶支持的比较好(后来发现没必要);三是支持全平台(后来发现 web 支持有些问题,移动端 app 才是主推的)。
其实 js/ts 那些框架还是最成熟最适合 web 端的,还很容易迁移到小程序。但是基于以前做 vscode 插件的痛苦回忆,没选。
至于 blazor,只是简单看了下 get start。隐约记得 ms 下一代全平台框架还不成熟,就没选 ms 家。
重构
学习 flutter 过程中我最大的担心是图表的开发。gridman 中的图表我都是手搓的,我担心 flutter 手搓图表会很麻烦。
但事实上我多虑了,第三方库已经很好的支持了股票的图表展示。整体重构的进度比预期快的多。
不得不说 flutter web 有一些坑存在,比如说字体(无法使用系统字体),首次加载很慢,seo。
重新上架后,以 0.2 元售卖。
后端
随着用户增加,长桥 api 开始不够用了,开始选择其他方案。找到了 yfinance 这个库,经过魔改,改成了 api。
yfinance 本身有频率限制,为了规避,开了几个免费 server 做轮询。效果还不错,够用。
除此之外,还做了个 worker 检查是否有新订单,如果有的话发邮件提醒发货。
迭代
基础稳定后,就开始做迭代:各种功能,展示 balabala。
目前 Gridder 的 commit 已经有 500+ 了,功能越来越完善。目前还在稳定更新中。
困境
但我并不想把无限的时间投入到开发中,对于软件来说,最大的问题还是获客。
最早在小红书售卖的时候,获客还是相对稳定的。但是最近小红书对电子资源管的严,一是取消了软件类目,二是电子资源要单独申请。我只好转了个人售卖,还在试验。
其他平台的话,只开了淘宝。别的基本都要营业执照。但是淘宝本身不像小红书那样自带流量,收入也就不稳定。
除了获客,感觉这个市场本身就很小。我也尝试过海外市场,更是难做。
当然也有我个人的问题,不擅长表达自己。写文字已经很费力了,出镜录视频完全是不情愿。
一个好消息是去年折腾了很多次的 Adsense 终于过了,这样至少多了一种可能性。
总结
不管怎么说,Gridder 都是我的第一款产品,我在上面投入了太多时间精力。很难说这是否值得,就像生活哪有什么值得不值得的。