开发背景
今年以来,我遇到了职业倦怠期,虽然说之前也有过,但是都不是那么强烈,今年这个感觉貌似特别严重,遇到代码就脑壳疼,想到要写的需求就焦虑,虽然这些代码、需求对于我来说已经是轻车熟路了,但是当我打开电脑面对着它们时,一种好累啊的感觉就会涌上来。
坦率地讲,整个三四月份,我脑子里都塞满了要离职的想法,想着我再也不想写代码了,累了倦了,我想做一些体力活,比如送送快递啊,当当保安啥的,我订了个小目标,如果想离职的想法达到了 15 次,那我就提离职。
为此我想着得有个东西记录一下想离职的次数,以及当时的心情以及原因,这样也能从侧面支持自己的,好给自己一个安慰作用,毕竟现在的工作也还是不错的。
一开始是用纸笔记录的,但是看着自己难看的字迹就放弃了,后来用苹果备忘录记录,也就记录了一两条之后发现,这样也不大友好,还需要自己去统计,并且有时候原因类似的,需要重复录入,最后我就在应用商店搜索是否有类似的软件,结果搜了一通,没有一个是我需要的,真的一个都没有,那我就想,要不我自己来做一个?
由于我一直是后端开发,主要是写 Java 的,最近 2 月份也在 AI 的加持下完成了物念这个小产品,这次我想尝试点不一样的,我想开发一个 iOS APP 出来,这样才方便啊,给自己用的东西,方便永远是第一位的。
这是应用地址,欢迎使用,AppStore 里面搜【加一想法】也能搜到~
最后大概总结一下,我的应用应该可以囊括以下场景:
场景一:职场决策
- 创建 " 离职想法 " 追踪项
- 设置目标次数为 15
- 每当遇到无理需求时,点击 "+1" 并记录原因
- 遇到积极体验时,点击 "-1" 并记录原因
- 达到 15 次时,应用提醒您可能是时候采取行动了
场景二:生活习惯养成
- 创建 " 开始晨跑 " 追踪项
- 设置目标为 10 次
- 每次有晨跑的念头时 +1
- 每次想到晨跑的困难时 -1
- 达到 10 次后,应用提示您正式开始晨跑计划
场景三:消费决策
- 创建 " 购买新手机 " 追踪项
- 设置目标为 20 次
- 每次觉得当前手机不好用时 +1
- 每次觉得现有手机还能用时 -1
- 达到目标后再做购买决定
申请开发者账号
苹果开发者账号,一开始我是为 物念 申请的,我想把物念由现在的 PWA 应用改为 iOS 原生应用,没想到结果却用在了新的 APP 上。
不得不说注册开发者账号还真是折腾,花了我差不多两个星期才完成,一开始我的账号用的是昵称,不是真实姓名,后来改为真实姓名也不行,在 app developer 上也没有显示审核不通过的原因,只是提醒我联系客服,电话问客服结果回复不清楚具体原因;再后来我用其他手机号又注册了个,结果因为那个手机号是流量卡,只能收短信,不能打电话,苹果那边一直无法认证通过;最后我又又又注册了个账号,还买了个新的手机号,认真提交需要的一些材料和信息,终于 3.23 日我成为了一名苹果开发者。

开始加一应用设计
开始写下第一行 swift 代码
在完成了初步的原型设计时,进入了技术选型阶段,以往我开发的东西都是前后端分离,后端有自己的服务器,数据存储在自己的服务器上,前端通过接口去请求,这样固然非常好,有很高的灵活性,很多有意思的东西可以通过后端去实现,数据接口天生跨平台;但是我也发现一个非常不便的地方,我需要自己维护服务器,用户的数据存储在自己服务器上,我需要对这些数据负责,数据的安全性,服务的可用性和可靠性,都要自己去处理,对于个人开发者来说,这个成本也偏大了。我仔细想了想,这个想法加一的应用,不需要做社区,数据不需要互联网访问,数据直接存储在用户本地或者用户的 iCloud 上面,就像是备忘录一样,这样是最好的,用户也不用担心数据安全问题,开发者也不用自己购买服务器维护用户数据,真的是太好了。
于是就使用了 CoreData + Cloudkit 的数据存储方案,开发语言就是 swift+swiftui ,于是在 3 月 31 号,创建了 oneone 加一应用的代码。

至于为什么选择 swift + swiftui,其实我也不知道,对于苹果开发我啥也不会,AI 告诉我这是以后的趋势,我就这么做了。
开发中
对了,我最终没有离职,在四月初我进行了内部转岗,现在已经不是服务端开发人员了,现在是一名新人项目经理,好处是不用写代码了,坏处是经常出差,并且一出差就是一两个星期,并且有的项目出差是 3 周起步。除了出差,同时也需要迎接工作中的新挑战,太多不懂的地方,至于为啥啥也不懂还能转岗,因为部门岗位空缺得厉害,仅此而已。
我从 3.31 进行开发,到 5.27 应用上线到 APP Store,花了整整两个月时间。这两个月时间可真是难熬啊,我充分利用了一切业余的时间,工作日下班后晚上一两个小时、周末每天也要开发四五个小时、出差的火车途中、出差晚上的酒店里、节假日的晚上,甚至有时候在外面玩时,我都会想着我如何设计会让体验更好。
总之,在 3.31 开发到 4.27 我出差回来后,我向 APP Store 提交了第一个版本。
上架到 APP Store
当时刚出差回来,终于可以静下来好好准备上架的事情了,搞了一上午终于提交上去了,我长长舒了一口气。

殊不知,这才是漫漫长征路里的第一步,这里面太多的坑了,我可能都踩了一遍。
其中的艰辛,使得我一度想要放弃不开发了,或者想在闲鱼上花点钱找人帮忙上架,但是最后想想还是算了,一方面是我有时间(没有人要求我必须何时上线),另一方便应用也确实还有很多地方需要完善,我也可以趁着审核期间进行更新其他功能~

最终在进行了 11 次的审核之后,在 2025.5.27 这天(写稿这天)才通过审核,然而通过审核之后并没有想象中兴奋,说了句卧槽就继续忙别的了,然后得空在写这篇文章。


如果有经验的人,我估计一周左右就能完成上架,可是我实在是不会,再加上一直出差在外,能静下心来的时间很少,导致审核被拒绝的原因有时候也没有仔细看,诸多原因使得整整一个月后才完成了第一版的上架。当然第一个版本上架之后,后面更新就非常迅速了,差不多半天就能审核上架(谢天谢地)。
功能介绍
这是我最喜欢的环节了,因为它真的就像是我的孩子,通过代码一点点搭建出来的,里面的很多东西,都是我自己在使用了几百次之后一点点的优化和迭代出来的,当然受限于技术实力以及个人品味,还有些地方做得不好,不过在自己的能力范围之内,已经尽可能做得最好了。
一、创建想法
首先是创建想法。想法支持两种模式,一种是目标,也就是我最开始想要做的,记录离职想法的次数,一种是备忘录模式,因为随着功能的增多,我发现这个应用也非常适合做一些备忘录什么的,比如说记录我女儿画的画,记录我看到的优秀设计稿等等~

比如说我个人就创建了以下这些想法集合

想法编辑和想法导出。
我个人非常担心用户的数据弄丢,所以对数据的处理上,做了 iCloud 云端同步和本地存储双重备份,这样还不够,还做了完整的数据导出,可以导出 html 直接本地运行,并且支持导出的数据导入。

同时,对于数据删除,还做了防止用户误操作,需要做数学题才行。

二、新增记录
想法详情与新增记录。

含有图、文、音频、位置等内容的记录展示,以及所有想法的记录可在一处进行展示、筛选。

记录模块
除了瀑布流之外,还有日历模式 + 照片模式。

统计视图

设置界面
设置是我个人最喜欢的部分,有很多自定义的功能。

设置部分可高度自定义,我个人最喜欢全息投影风格。

好了,差不多就介绍这些,还有很多细节上的东西,等待大家自行去发现。并且肯定还存在一些 bug,这些没有出差的周末,我基本上闭门造车,现在这辆车我觉得是时候可以上路了,接受大家的检验。
终于水完了这篇文章,写推广文章真的好累~
重要提醒:本应用不存储和收集任何用户的数据,所有数据均存储在用户本地以及用户的 iCloud 云端;并且数据可随意导出、导入、导出的支持 HTML 本地查阅,你的数据永远是你的。
如果看到了这里,不妨下载下来试用一下:
感谢阅读。
