创业日记 独立开发周记 #21:Apple 预判了我的预判

vulgur · 2023年07月10日 · 676 次阅读
本帖已被管理员设置为精华贴

2023,0703-0709

今年的夏天真是太热了,都想去南方避暑了。好不容易终于等到了一场暴雨,整个城市降温了不少。

据说今年是百年最强厄尔尼诺,但厄尔尼诺对全球温度的影响通常在其形成的第二年展现出来,所以 2024 年会更热……🥵

喜迁新址

周四,极简软件工作室喜迁新址,从卧室到客厅。孩子大了,需要自己单独的卧室,我就被迫从次卧里赶了出来,从此从私密办公变成了开放办公。

过去的 7 年,我的工作台一直都是在次卧里。在一个地方坐久了就调整一下次卧的布局,这么多年调整了七八次。目前桌子上唯一没换过的就是戴尔的 U2412M 显示器和第一代的 Magic Mouse(还是上电池的),这个显示器买了有 10 年了,在北京用了三年,回家后也带了回来。桌子和椅子都换了三轮了,电脑也换了三个,键盘换了十多把。

极简日记 App Store

这周依然在推进 1.7.6,导入导出的功能终于优化完成了,也给其他一些细节进行了修修补补。

这其中最耗时耗力的是针对日历的优化。一开始以为是日历的卡顿是加载图片造成的,但是改为了异步加载图片还是卡,后来干脆把加载图片的功能注释掉才发现没有图片了也卡。所以卡顿瓶颈不是在 IO 这里,而是在 UI 上。期间请教了 Bee,他在自己的 app:瓦尔登中实现了可以横向无限滚动的、没有任何卡顿的列表,他不仅无私分享了他的代码给我,还详细地教我如何使用他封装好的代码。尽管如此,我的日历在他的列表中依然卡顿,而且我需要改动一些我的代码才能在他的代码中正常加载图片。好在最后我也发现了卡顿的真正原因,就是控制日历滑动的位移以及当前月份的几个 State 变量没有协作好导致的。

除了修 bug,还想着加入一个关于草稿的新功能。原来的草稿是打开编辑页时自动恢复的,但是这样有一定的强制性,万一用户不希望恢复这个草稿而是想直接新建一个日记呢。于是我想着参考即刻 App 重新设计一下整个草稿功能,也就是将未完成的草稿作为一个提示给到用户,让用户选择继续编辑还是删除这个草稿。

但是这里又遇到了纠结点:该如何设计草稿的数据模型?这时有三种选择:

  1. 将日记的草稿作为一个临时生成的 struct 保存到 UserDefaults 里面,但是这样需要让这个 struct 实现Codable协议,而且如果有多个草稿的话,这样的存取也不方便。
  2. 在日记的数据模型上加入一个新的字段,isDraft,好处是不用在草稿和日记做转换,但是这样日记的已保存和未保存这两种状态不能同时出现。
  3. 在 CoreData 中新建一个专门用于存储 Draft 的数据实体,在属性定义上就是日记数据实体的精简版,可以存储多个草稿,也可以相对方便地转换成日记,缺点就是需要写一堆 CRUD。

思考了一下午,最终还是选择了最麻烦但是未来扩展性更高的第三种方案,争取下周就能写完这部分的功能。

新 App 调研

半个月前我就产生了一个健康方面的新 App 的 idea,这段时间一直在调研实现相关的技术。

因为需要服务器存储数据和发送通知,想 w2solo 的各位群友请教了国内外这方面的服务,也顺便学习了什么是 SaaS、PaaS、BaaS、FaaS。

因为需要使用 HealthKit,向 StressWatch 的开发者之一的 Patrick 请教了许多关于读取健康数据方面的问题。

然而,就在验证了可行性的第二天,我才发现原来 iOS 的健康 App 就已经有了类似的功能🤦,背刺苹果失败😂。

不过简单体验了一下健康 App 的相关功能,感觉还是有些复杂,而且体验和我想象的差很多,感觉仍有一线可做的机会。

买买买

这周又是各种买。

  • 黑爵 AK832,矮轴机械键盘,茶轴没货了,就买了个青轴的。我看上这个键盘的是矮轴 +Gasket 的组合,另外也是很便宜。
  • 在「少数派的编辑们最近买了啥?」的安利下,买了个 PZOZ 的 Apple Watch 的充电宝。
  • 在抖音上买了一堆内裤、果汁饮料、浓缩果汁、挂耳咖啡、垃圾袋、金枪鱼肉、短袖 T 恤和洞洞鞋。

cmlanche 将本帖设为了精华贴。 07月11日 10:50
需要 登录 后方可回复, 如果你还没有账号请 注册新账号