一不留神,开发者群内的一个群友的产品爆了,日活 20W+,而且还在增长。于是群里其他众多群友纷纷发出了表情包:
本周开发
极简日记
本来是想修一下用户反馈的 bug ,但是发现 backlog 里一个存了很久的功能感觉优先级更高一些,就是“左右滑动切换日期”。要实现这个功能就要打破之前的很多交互,比如每一条日记左划后出现操作按钮,比如拖动底部按钮出现跳转日期的按钮。
一开始是用 GeometryReader + DragGesture 来实现的,Claude 和 ChatGPT 都没能给出完美的实现。后来改用 TabView ,交互上没什么问题,只是有一定概率会在左右滑动的时候卡在两个 Page 中间,搜了一圈问了一圈都没找到遇到类似问题的,也没找到解决方法。最后还是在 Github 上找到一个实现的不错的 package ,但是这个 package 的要求是 iOS 16.4+,而且如果 Page 里是 ScrollView 的话还不能上下滑动,只好魔改了一下,基本可用了。
但是还有几个问题,预览不出现,内存占用,页面卡顿,sheet 乱弹……再加上还没解决的用户反馈的 bug ,感觉这一个星期也做不完。
其他
极简时钟的 App 内活动结束了,综合之前的几次,这个 App 内活动对于我来说实在是没啥用处。
Heal Clock 按照 GP 要求更新了订阅页面,提交后又被拒了,说是有闪退,但是我这边测试都没能复现,只好先提交一个内部测试,看测试报告没问题了才有提交,但是提交后每几分钟又被拒了,还是订阅页面的问题。这是我被拒最多的一个 App 了,太难了。
新 App 只写了一天,还在写 CRUD ,在群友的帮助下搞定了一个 SwiftData 的 Predicate 不支持 enum 的问题,也搞定了一个困扰已久的一个数据结构。
本周学习
Play: The Secret Weapon for iOS Devs & Designers
一个叫做「 Play 」的原型设计工具的宣传视频,这个工具的目的就是统一设计师和开发者对 SwiftUI 的理解,其实更多的是让设计师去按照 SwiftUI 的设计规范和能力范围去做原型。这个工具不仅可以做出高保真的交互演示,还可以导出 SwiftUI 代码,给开发者和设计师省去了很多反复撕逼和返工的时间。
Swift Macros 101: Your Step-by-Step Guide To Crafting Your First Macro!
针对 Swift 中 Macro 的简介,并且演示了如何新建一个将十进制数字转换成二进制的例子,看起来很麻烦啊。
几个常见的关于 SwiftUI 的误解
肘子哥的文章每篇必读,准备采用文章里的建议对项目进行一些优化。
From Idea to App Store: One Week in a Coding Retreat
这个开发者记录了自己是如何在山林的静修小木屋里(荒无人烟的地方,像是自我封闭开发),在 7 天内构思、开发并上架 App Store 一款记录音频的 App 。
看这个视频,我最开心也是最感同身受的就是第三天,这个开发者当时十分沮丧,但是到了晚上等到跑通的那一刻,所有压力和苦闷都烟消云散了。
Build performance analysis for speeding up Xcode builds
这一招我才学会,通过分析可以知道项目的编译时间都花在哪了。
本周买买买
这周买了三样东西,一个可升降的边桌,一个米家的吸管杯,在多抓鱼上花 100 元买的 5 本书。
重点说一下这个边桌。我家没有茶几,每次吃饭的时候必须坐在饭桌上,电子榨菜只能靠手机或者平板来播放。我一直想给沙发买一个边桌,这样我既可以一边吃喝一边看电视,还可以坐在沙发上操作连着电视的电脑。最近天气越来越热了,我的电脑桌挨着阳面的窗台,空调还吹不到,加上两个外接显示器散发的热量,导致白天在电脑桌上写代码太痛苦了。到了晚上,因为孩子的屋子要开门通风,她还要求所有灯光和屏幕都要关闭,这时我就不能在电脑桌上办公了。所以,我需要一个可以移动的小桌子解决我以上的问题。
挑了好久,最终确定的桌子功能是可移动+可升降。一开始相中的就是宜家的一款,但是我这没有宜家,算上邮费并不合算。在寻找平替的过程中,发现了网易严选的一款,和宜家同样的价格,还多了桌面旋转的功能,而且还包邮,于是立刻下单了。没想到收到货并组装完后,发现桌面不平,就是那个旋转的组件造成的,立刻退款退货了。这个桌面旋转其实还挺有用的,比如我最近在学尤克里里,用来放曲谱就特别合适。但是保险起见,还是放弃了桌面旋转,下单了乐歌的这一款,选择这一款有两个非常重要的理由,一是纯白色,二是这一款的最低高度和宜家同样是 65cm ,更适合我家的场景,而其他品牌最低高度都在 70cm 以上。