今年的夏天真是太热了,都想去南方避暑了。好不容易终于等到了一场暴雨,整个城市降温了不少。
据说今年是百年最强厄尔尼诺,但厄尔尼诺对全球温度的影响通常在其形成的第二年展现出来,所以 2024 年会更热……🥵
周四,极简软件工作室喜迁新址,从卧室到客厅。孩子大了,需要自己单独的卧室,我就被迫从次卧里赶了出来,从此从私密办公变成了开放办公。
过去的 7 年,我的工作台一直都是在次卧里。在一个地方坐久了就调整一下次卧的布局,这么多年调整了七八次。目前桌子上唯一没换过的就是戴尔的 U2412M 显示器和第一代的 Magic Mouse(还是上电池的),这个显示器买了有 10 年了,在北京用了三年,回家后也带了回来。桌子和椅子都换了三轮了,电脑也换了三个,键盘换了十多把。
这周依然在推进 1.7.6,导入导出的功能终于优化完成了,也给其他一些细节进行了修修补补。
这其中最耗时耗力的是针对日历的优化。一开始以为是日历的卡顿是加载图片造成的,但是改为了异步加载图片还是卡,后来干脆把加载图片的功能注释掉才发现没有图片了也卡。所以卡顿瓶颈不是在 IO 这里,而是在 UI 上。期间请教了 Bee,他在自己的 app:瓦尔登中实现了可以横向无限滚动的、没有任何卡顿的列表,他不仅无私分享了他的代码给我,还详细地教我如何使用他封装好的代码。尽管如此,我的日历在他的列表中依然卡顿,而且我需要改动一些我的代码才能在他的代码中正常加载图片。好在最后我也发现了卡顿的真正原因,就是控制日历滑动的位移以及当前月份的几个 State 变量没有协作好导致的。
除了修 bug,还想着加入一个关于草稿的新功能。原来的草稿是打开编辑页时自动恢复的,但是这样有一定的强制性,万一用户不希望恢复这个草稿而是想直接新建一个日记呢。于是我想着参考即刻 App 重新设计一下整个草稿功能,也就是将未完成的草稿作为一个提示给到用户,让用户选择继续编辑还是删除这个草稿。
但是这里又遇到了纠结点:该如何设计草稿的数据模型?这时有三种选择:
Codable
协议,而且如果有多个草稿的话,这样的存取也不方便。isDraft
,好处是不用在草稿和日记做转换,但是这样日记的已保存和未保存这两种状态不能同时出现。思考了一下午,最终还是选择了最麻烦但是未来扩展性更高的第三种方案,争取下周就能写完这部分的功能。
半个月前我就产生了一个健康方面的新 App 的 idea,这段时间一直在调研实现相关的技术。
因为需要服务器存储数据和发送通知,想 w2solo 的各位群友请教了国内外这方面的服务,也顺便学习了什么是 SaaS、PaaS、BaaS、FaaS。
因为需要使用 HealthKit,向 StressWatch 的开发者之一的 Patrick 请教了许多关于读取健康数据方面的问题。
然而,就在验证了可行性的第二天,我才发现原来 iOS 的健康 App 就已经有了类似的功能🤦,背刺苹果失败😂。
不过简单体验了一下健康 App 的相关功能,感觉还是有些复杂,而且体验和我想象的差很多,感觉仍有一线可做的机会。
这周又是各种买。