摘要
在我发布的第一个介绍Cent记账的视频下面,问得最多的一个问题是,在哪里可以下载呢?没办法,Cent作为一个PWA,本来是完全不需要下载的,但是如今的应用生态中,Web天生低人一等,各家手机厂商防贼一样防着浏览器,如果不出一个详细教程,初次了解的人根本学不会怎么把一个PWA安装到桌面上。因此,我决定做一个iOS原生版Cent。至于为什么是iOS,原因也很简单,几年前我就开通了Apple Develop Program,本来打算做一些小玩具练手,但因为懒,也一直没有动手,白白花了好几年的订阅费用。对比Android,iOS生态的好处显而易见,完善的全球上架流程,一致的硬件架构,不需要考虑各种适配问题,比起国内安卓市场那堪比规则怪谈的上架机制,不选iOS简直天理难容。我从一开始就决定完全通过Vibe Coding来进行开发,因为如果要让我从头开始学习一门其他语言开发,了解那些犄角旮旯里的不知名API,对于如今改个样式都恨不得让AI来做的我来说,几乎是不可能的。一旦尝过了AI的甜头,要想回归手写代码的时代,那就太难了。最难的第一步对于Vibe Coding,最难的一步不是想做什么,而是决定做哪些,怎么做。对我而言,最大的难题是如何选型。一方面,尽管我已经决定了要做iOS端,但是也不意味着完全放弃Android端。另一方面,对AI而言,代码技术也是有熟悉程度的,JS和Python对于AI是小菜一碟,但其他领域就不一定了。为此,我跟Gemini掰扯讨论了很久。一般我会先用网页版Gemini沟通自己的想法,我认为Gemini的最大优势在于搜集信息,背靠Google这个搜索引擎,找它问问题是十分自然的事情,关键是flash量大管饱,对于要求不高的任务,直接问Gemini比AI Agent省事得多,不然一言不合就开始“让我先了解项目结构”,白花花的token就这样扔给了文件系统,造孽啊。这一次找Gemini问完,它推荐了我一个此前我从未听说过的开发技术,KMP(Kotlin Multiplatform),根据介绍,它可以将核心操作逻辑复用一套Kotlin代码,通过不同的UI技术适配不同的平台,在Android上用Compose,在iOS上用Swift UI,简直是我的梦中情码,精准命中了我的所有需求。于是我当即决定用KMP进行开发。