大家好,我是独立开发者 Bee

这是我在少数派的写的第一篇文章,一直以来,都希望能够有机会在少数派发布自己的作品,但说实话,我对自己的大部分作品的设计并没有信心,因此也是一拖再拖,直到现在,我觉得我可以试试,跟大家聊聊我开发 瓦尔登 的过程。

瓦尔登 是什么?

瓦尔登 是一款专注于个人管理的应用,很多人可能会更好奇为什么起 瓦尔登 的名字?大家没有猜错,和 梭罗的《瓦尔登湖》有关,因为我本人十分喜欢《瓦尔登湖》,而我觉得用自己的作品去表达自己的喜爱或致敬是一种挺特别的方式,除此之外,我也希望能够把《瓦尔登湖》的一些理念带入到自己的作品中。

熟悉我的朋友可能知道,我之前开发过一款叫 时光进度 的 App,所以,你们会发现,瓦尔登 和 时光进度 在功能上是差不多的,包含了进度管理、待办事项、闪念笔记。

瓦尔登 App Store 屏幕截图

为什么重新开发一款新应用?

在去年(2021)11 月份的时候,时光进度 不知为何就入选了本周编辑推荐,让我备受激励,两年多了,终于得到了官方的青睐,虽然只是本周编辑推荐,但也是我的 iOS 开发之路的一个重要的里程碑。

但是我内心很清楚,本周编辑推荐之后,时光进度 的下载数据肯定会回归到以往的情况,因为我自己对这款应用也不太满意, 尤其是在设计上,所以我暗想,连这样的设计都能入选,那我觉得我可以做得更好。

所以,我决定重新设计时光进度。

但是问题来了,是在原有的代码基础上进行开发吗?一想到要在这 💩 山般的代码(毕竟是我刚学 iOS 开发的作品)上进行改造,我就害怕。

另一方面,时光进度 的功能主要还是围绕进度管理进行开发的,而我自己也开发了不少其他效率类型的应用,比如清单、倒数日,我总结了一下,这些都是个人管理相关的,那为何不做一款集成这些功能的应用呢?

基于以上原因,我决定重新开发一款应用。

前期准备

前面说到,我对 时光进度 的设计并不满意,回想起当初开发的时候,都是不断地修改代码,然后调出一个基本的效果,觉得可以就算了,我相信很多开发者都是自己在脑海中进行构图的,然后就直接上代码不断地调整。

但说实话,这种方式对于一些对设计要求不高,主打工具类型的应用可能是合适的,但如果希望在界面上有所突破,这不会是一个好的开发模式。

于是我决定学习一下基本的设计,购买了一套 Figma 的基础教程,学习大概花了一周,跟着课程完成了几个页面的设计,算是把 Figma 的常用操作掌握了。

这里需要指出的是,我学习 Figma 主要只是熟悉操作,知道它能做什么。但设计远远不止这些,界面好不好看,很大程度取决于我们的审美,而审美是可以提高的,最简单的方法是我们可以平时多看看好的设计,可以把自己喜欢的收藏起来,说不定以后用得上。

我觉得很多开发者做不出好的设计,很大原因并不是因为审美不行,而是缺乏设计技能,我们都知道怎样的界面才好看,但由于没有技能,就无法把想法好好设计出来。

瓦尔登 设计稿

开发工作

在做完几个基础页面之后,我开始着手开发的工作,和 时光进度 不一样的是,我选择了 SwiftUI 而非 UIKit 作为前端的开发框架,主要的原因是,SwiftUI 有着更好的维护性和组织,并且非常便捷。唯一的缺点可能就是有些功能支持不够完善,但想着我要开发的功能都不复杂,应该是够用了。

在基本功能开发完毕之后,我发了一条即刻调侃了一下自己

调侃

我获得了什么

虽然重构的几个月让我有点身心疲惫,如果再让我来一次,我想我可能会把项目周期拉得更长一下,先做一部分功能上线,逐步完善,没有必要压榨自己,得不偿失。现在回想一下,其实早上线几天对我的影响几乎为零。

另外就是,我觉得如果有时间,每个独立开发者都应该学学设计,在现在的技术环境下,有很多工具做得非常强大且易用。

好的设计能够起到正向作用,在 瓦尔登 上线三天之后,就获得了官方的 本周编辑推荐,而时光进度 花了两年多。同时,也收到了很多用户的鼓励(大多数都是赞美 UI),这让我开发的动力更足了。

回顾当初的设计,再对比现在的,不敢说有多大的进步,但确实在往好的方向变化。

本次分享就到这里,主要是学习设计到开发的完成的一些感受,关于 瓦尔登 的设计理念,我想放在下一篇文章,感兴趣可以关注我

注:题图由 APPDO 制作