查看原文
科技新闻

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

道哥vulgur 独立开发日记 2023-07-10

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恤和洞洞鞋。



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存