IWAY & LOVE

净虑APP上线

2023-09-14
IT技术
APP
最后更新:2024-04-09
9分钟
1606字

早上,手机上的AppStore Connect接到了消息,通知我净虑APP已经审核通过,可供销售。

这是我期待已久的结果,现在终于达成了。但我没有一如早先设想的那样会让自己欢呼雀跃。也许经历了太多困难和提交审核过程中遭遇的多次拒绝,心里已经疲累得无力兴奋。不过还好,总算是完工了,交付了。也算了却一个心愿和执念。

这个产品的研发从2020年12月份起开始构思、设计、开发、测试。先后把整个设计和开发推倒重来过两次。大致过程如下: 2020年12月份开始进行第一次设计开发,APP用SwiftUI框架,后台服务器使用Python 语言开发,基于FastAPI Web框架,数据库用PostgresQL,运行在Linux系统上。后台系统的大致原则是将主要业务逻辑都以数据库存储过程实现,Web应用主要为前端APP 提供访问接口服务,存储过程采用pgsql语言编写。基于这个设计方案,陆陆续续进行了8个月的开发。但由于2021年9月份的一个意外业务安排,就搁置了。

在搁置的过程中,也会时不时的继续构思,结合网络服务资源的成本因素,逐渐认识到,这个APP就一个小应用,没有必要租用一个内存和CPU规格很高的服务器去满足运行Python程序的资源开销,应该降低服务器成本,采取既节省资源又保证性能的方案。经过探索和尝试,决定采用Rust语言开发Web应用,替换掉用Python编写的后台。虽然曾经用了大约一个月的时间也没把这门极其复杂、理念极其另类的Rust语言学会。于是在2022年2月开始,经历20天的平生以来未曾如此烧脑的日子,总算可以用Rust语言开始写代码了。Rust语言确实太完美了,越用越感觉这门语言借鉴了很多编程语言以往的设计经验,规避了无数的坑,把程序开发中所有容易犯的错误都克服了,在编译器对变量所有权和生命周期的几乎严格到变态的检测下,程序员不停的和编译器缠斗,直到排除所有错误,编译器才放程序员一马,让程序编译成功。因此,只要程序编译通过,基本上就可以完全放心,不会发生任何内存访问越界和泄漏问题,甚至连逻辑错误都很难发生。从磕磕绊绊到轻松流畅,终于信心满满。不过,到了2022年9月份,又一个意外的项目合作,使开发工作又搁置了,此时已完成了80%的重构代码。

2023年3月,项目干完了,于是接续此前的搁置的工作,继续进行开发。很快就完成了剩下部分,然后就着手上线。最先想用国外的服务器,经过测试,网络线路速度非常慢,而且每月带宽流量限制为1T,超出限额的带宽流量价格很贵。算来算去还是决定放弃,采用国内的云服务商的VPS。经过调研测试,面临的成本和性能问题居然和用国外的服务器差不多。采用Rust开发的系统的确极大节省了服务器资源,由原来Python运行时消耗的几百兆字节,降为20兆字节以内,如此租用一个1G内存的VPS就绰绰有余了。由于这个应用是一个资源下载类的,带宽消耗是减少不了的,经过测试,如果按照一定数量的下载量来看,为了提升用户体验,保证下载速度,至少要租用20M的带宽才能达到效果,而这个级别的带宽,每年要承担1万多的网络费用,这是我始料未及的。这是我当初构思产品设计的时候缺乏对运营成本的深入分析造成的,现在能不能有其他替代方案呢?经过几天的研究分析,发现可以采用CloudKit开发,将所有资源数据放在iPhone手机用户自己的云盘上。既然如此,何必再自己租用服务器呢?!还要运营维护它呢?!而且这个APP也只是一个简单应用,没有必要非得单独建立一个服务后台。至此,终于想明白了,从节省带宽成本和服务器租用成本的目标来说,最优方案应该是这两者都可以不花钱。那么还有啥可说的?就用CloudKit开发数据存储功能吧,反正我都已经每年都要支付688元的会费,没有必要再额外投入服务器和带宽费用了。

于是,在2023年3月8号,重新架构APP,把原来的后端和数据库全部作废不用了,只用CloudKit。此时也做了产品功能调整,减掉了一些不必要的鸡肋般的功能,精简为一个专注的功能和简单的几个操作,使其成为一个功能目标范围极其有限的工具,顺便也把Apple付费加上了。又经历了6个月的陆陆续续的设计和开发,在8月31号终于提交了。至此,所有的后台服务都使用Apple的开发者后台,做到了低成本、简运营。经过前前后后两周的审核与补充,在2023年9月14号这天,终于发布成功上线了。

再次总结以上说过的几个开发方案: 1、前端 SwiftUI + Alamofire + Moya,后台服务 Python FastAPI + PostgresQL + LInux 2、前端 SwiftUI + Alamofire + Moya,后台服务 Rust actix-web + PostgresQL + LInux 3、前端 SwiftUI + CloudKit + Storekit2

虽然这个不是什么了不起的应用,但是我在这个过程中,学会了很多东西。但愿有人会喜欢这个APP。

在App Store 中,中文搜索“净虑”。Search Calmtick in English.

2023年9月14日 10:33

default

default

default

本文标题:净虑APP上线
文章作者:秉衢
文章版权:作者保留此文章的所有权利
发布时间:2023-09-14
此站内文章都是作者秉衢本人原创, 并与作者微信公众号同步更新, 敬请关注作者微信公众号: 色遇