九月末的几天正好去西安错峰旅游了,就没时间写周记了,所以最近两周的周记一起发出来。
本来我还有一丝丝幻想在旅游出发之前在 App Store 上架,但是看了下 todo list 就意识到这是绝对不可能的了。再加上我听了《吴军来信》第 253 封来信:越是重要的事越不能匆忙,无数经验教训表面,越是着急,加班紧赶慢赶做出来的东西,质量越没有保障, 我就放平了心态,放弃了赶鸭子上架的念头。
既然铁定不能正式上架了,就想着先提交一个 TestFlight 版本用来公测。我照着 todo list 加班加点干了几天,把核心玩法完善了一下,在出发的前一刻提交了 TF 。这个版本我不再是小范围的邮件邀请,而是新建了公开链接,我设置了 100 人的上限,结果过了两个星期只有 25 人通过链接,其中大部分都只是安装,App 一次打开都没有过……我还私信了两个独立开发的大佬,一个是独立游戏开发者,一个是单词类的大佬,结果都没有回复。
So, nobody fucking cares about your app!
旅游之前有用户反馈极简日记的导出有闪退,我还以为是偶发的 bug ,加上我当时一直忙于单词 App ,就答应等我旅游回来再修复。可等我回来一测,发现居然是一个必现的 bug ,而且是 AI 之前留下的祸根(反正我是不承认是我写的,但是 review 和测试不到位是我的错)。
终于在一个钛 7 车主发的短视频里看到了极简时钟预装到 BYD pad 上的样子了。虽然之前比亚迪人员给我看过工程机预装的情况,但是不让我们发布这些内部照片。看了下其他的预装 App ,我们算是合作企业中规模最小的了……虽然是预装,但是使用场景和后排车载平板不搭,也不指望有人付费了,只是多了一个(吹牛的)渠道,总之,极简时钟上车了!
九月底,终于圆了多年的西安之旅的梦想。
之前在北京回龙观住的时候,我经常去一家叫「秦味轩」的饭店,这家店是我的陕西美食启蒙,那味道一直魂牵梦绕,可惜后来再去北京这家店就不见了。
这一次去西安算是寻味之旅了。
早上到达西安站,地铁直达大雁塔。第一天的酒店就在大雁塔北广场旁边,放下行李就去吃了顿魏家凉皮,然后就去逛大雁塔和大慈恩寺。爬了大雁塔,可惜当天西安阴天+大雾,在塔顶也没有什么好景色。怕去陕历博迟到,我们是一口气爬上塔,拍完照就立刻下来,下塔后腿累得都哆嗦了。
在陕历博花了整整一下午,看了各种国宝,拍了好多照片,听了好多故事。出来后就在旁边的大城小厨吃了顿饭,遇到一个特别有意思的服务员大姐。我们一家三口点菜,点了三个菜她偷摸挤眉弄眼说两个就够了,我想点个辣子锅盔尝尝,她又偷摸挤眉弄眼说不好吃别点这个,就是几张破饼加热一下,我看到桌上写着大众点评打卡加收藏有赠菜,她又偷摸挤眉弄眼说不用搞那个我直接让服务生给你们上三份,吃完了我们都走出来了她又拉住苏老师硬塞了一把口香糖……这大姐是不是不想干了啊,还是竞争对手派来的卧底🤣
吃完后本来是想回去顺便看大雁塔喷泉和逛大唐不夜城,但是不巧下起了雨,就只好回酒店休息了。
马不停蹄的一天,醒来后就上了大巴,直到晚上大巴送回酒店,眼睛耳朵和大脑就没歇过。
上午看了兵马俑,秦岭探秘的 XR 。午饭吃了团餐,长安九碗。下午去看了复活的军团,铜车马博物馆。
晚上去看了长恨歌,无敌精彩,不愧是来到西安必看的演出,没有之一。白天一直在下雨,但是到了长恨歌马上开演了,雨就完全停了,lucky !
酒店换到了钟楼地铁站旁,周围全是吃的,解决了剩下几天的早餐和夜宵的问题,而且钟楼作为中心的中心,去哪里都方便。
从安定门上墙,一直走到永宁门,相当于走了整个西安城墙的五分之一。这天西安终于放晴了,在城墙溜达散步也十分惬意。
下午去看了驼铃传奇,不得不佩服西安的演出,太能整活了,转动的坐席,折叠的舞台布景,就连真骆驼真狼都直接上舞台了。
看完后就坐地铁去大雁塔,先是吃了顿水盆羊肉,然后去看喷泉。这个号称是亚洲最大的矩阵式音乐喷泉,说实话一般般,音乐也一般,喷泉的水流也缺少变化。我一直关注的反而是「凳子哥」,这个老哥是在大雁塔给游客租凳子的,就是最最普通的那种塑料方凳,不是用来坐,而是让游客可以站上去欣赏或者拍照。其实这样的租凳子的不止他一个,但是他最特别,一是他的位置确实是观看喷泉的最中间的位置,二是他没有左眼,黑肤短发,一脸凶相,从头至尾嘴里在不停地在推销他的凳子,也真是个卖力气的活计。而且他还不是单兵作战,喷泉表演后期他的同伙过来拍了拍他的肩膀,他就立刻把剩下没租出去的三个凳子收起来赶忙走了,原来是广场的保安过来了。过了一会他和同伙又回来了,没带凳子,清点已经租出去的凳子,一共租出去 14 个,也就是 280 元,相信他在国庆期间会赚得多得多。
接着带孩子做了个简单的妆造,走向大唐不夜城。从环境和表演上来说,大唐不夜城算得上是国内顶级步行街了,但是我们一家三口一天下来太累了,没怎么逛就走不动了。我一直想喝杯特别的饮品解解乏,最后还是走进了 KFC ,点了杯爆汁三柠茶,但店员说要等 15 分钟才能做好,就换成了大杯可乐,结果就是我花了 14 元喝了一杯百事可乐……后来又买了一个热狗,和我想象的味道相去甚远,这是在西安这几天吃喝最坑的两个经历。最后走不动的我们坐了个电三轮回到了大雁塔地铁站,大姐一路风驰电掣,真是速度与激情。
市区的景点逛的差不多了,剩下的不是太远就是没兴趣了,于是就开始逛吃逛吃了。
从酒店出来有一条小路直接到了西羊市,我们就错过了两侧的回民街,然后就直接走到了洒金桥。在洒金桥吃了顿羊肉泡馍和裤带面,然后从鼓楼走回酒店,休息一下。
下午去长安十二时辰主题街区,在里面玩了一晚上,看了好多个演出,每个演出都出乎意料地精彩,每个演出的女演员都一个赛一个漂亮,李白的演员又高又搞笑,不虚此行。
虽然这天是 10 月 1 日,但是上午的人还不多,我们一家三口这次是从鼓楼进入回民街,又是从头吃到尾。这次主要是为了查漏补缺,看看有哪些还没品尝过。
中午退了酒店,晚上临走前的最后一站选择了赛格国际购物中心。我第一次见到这么大的商场,亚洲最大的扶梯,8 层到 11 层居然是停车场。这时候终于看出来国庆节到了,又赶上了外面下雨,商场里人满为患,寸步难行,再加上商场里有个瀑布,吵得烦死。我们随便吃了一口就准备去火车站了,没想到还赶上了地铁限流,折腾半天才坐上地铁。
最近两年我们一家三口的旅行都是错峰旅游,体验不是一般的好,人少,不用排队,酒店和部分门票也比节假日时要便宜。做西安旅游攻略的时候,经常刷到各个景点的避雷贴,特别是长安十二时辰,我也能理解,人多起来确实吃不好、看不好、玩不好,但是人少的时候所有问题就都没了。
而且不得不承认,西安的各个演出实在是太惊艳了,都给我看傻了。各有各的创意,各有各的精彩。就像看兵马俑的讲解员说的那样:陕西搞经济不行,但是搞文旅绝对全国屈指可数。
所以,一定要错峰旅游!
这一次唯二的遗憾就是没吃上肉丸胡辣汤和葫芦鸡,下次一定。
自打 10 月 2 日晚上回到家,就没有一顿饭是我自主可控的。我不吃早餐,而十一假期的午餐和晚餐全是家宴、婚宴、同学宴,全是被动选择,我唯一能选择的就是喝什么口味的大窑。
说到大窑,这次和同学聚会,从晚上六点一直聊到午夜零点,别人喝酒,我就喝了一晚上大窑。我一直认为大窑是很 low 的饮料,之前我只喝过一次荔枝味的,非常难喝,这几天喝了两次橙子味的,还可以,就跟其他所有橙子味汽水一样。而且没想到去年国内碳酸饮料的市场份额里大窑居然占到了第三( 2.5%),第一名是可口可乐( 60%),第二名是百事可乐( 30%),更没想到的时候大窑今年 6 月被美国公司收购了,马上就要国际化了!
]]>周一晚上受小舅子蛊惑,研究了一晚上摩托车和驾驶证考试。周二下午就去驾校报名了,结果体检没过,单眼视力不合格,不能报考 D 证,谁能想到 D 证对于视力的标准比 C 证还要严格。
当我沮丧地走出驾校大门时,应景的是,两辆十分拉风帅气的巡航摩托从我面前飞驰而过。摩托梦碎,而且我连电摩也不能骑了,送外卖这条路也给我堵死了!
周二上午提交了单词 App 的 TF build 5 ,又收集了好多反馈,感谢帮忙测试的各位!
本想着在下周旅游前把单词 App 提交上架,这周疯狂开发,进度飞速推进。但是又犯了老毛病,新想法不断冒出来,原本的开发计划还没完成就去做新功能……现在来看在出发之前做完这个 App 是不可能了。我本来是想把这个 App 作为今年的 Shipaton 的参赛作品,但是截止日是 9 月 31 日,又不能完赛了。
7 月 12 日新建项目,到现在过去了两个多月了。因为这个 App ,今年又没有第一时间去给老 App 适配 iOS26 的新特性,而这不是第一次了,去年也是因为参加 Shipaton 而整个夏天都在开发 Nut Goals ,错过了新系统的适配,还放弃了暑期的旅游。所以从明年 WWDC 到 iOS 新系统发布这半年里,我要把第一优先级放在新系统的适配和开发上,而不是头脑一热的新 App ,立贴为证!
决定要进军鸿蒙应用市场,经过一番调查,技术选型定为 Flutter 。不断收到用户想要鸿蒙版的反馈,而且目前极简时钟在国内安卓市场新增用户里,将近一半都是华为的手机,一开始我还十分抗拒开发鸿蒙版,但是现在向市场妥协了。
我也不会一上来就做极简时钟的鸿蒙版,考虑以后跨平台开发的问题,我决定先用 Flutter 翻写 Nut Goals ,先把这个 App 上架安卓市场和鸿蒙市场试试水,踩踩坑。
周二晚上开始搭建 Flutter 的开发环境,就一个 demo 难住我一晚上,一直是可以运行到 iOS 上,但是死活无法运行到安卓上,错误信息也不明确,问了 AI 也搞不定,最后才发现是 gradle 版本的问题,淦!
周末查看国内安卓市场数据的时候,发现友盟的数据和各个安卓市场的后台数据对不上。
在友盟里,极简时钟 vivo 渠道的新增数量几乎没有了,我还以为下架了,但是在 vivo 后台看到明明每天还是有 80 左右的新增下载。
极简日记的数据其他三家倒也正常,有出入但不太大,但是华为后台显示最近几天新增有 400 多,而友盟里还是不到 20……这个应该是华为后台出了问题,各种数据都暴增,但是收入上没有看到相应的提升。
虽然经过两个月的 18+6 轻断食之前减了七八斤,但是最近体重一直没有下降,反而有所回升,再加上下周出去旅游必将胡吃海塞,减肥成果必将遭受重大打击,道心快破了……
收到了若饭的中秋礼盒,很漂亮,感谢伯恩的投喂。
这周也吃了好几顿大餐,有一年一度的豪门盛宴,有家附近新开的一家创意寿司,也有百吃不厌的烧烤。
本想着玩一下《刺客信条:影》 的 DLC ,打开好久没有开机的 PS5 ,先是更新游戏,下载了将近 20G ,进入游戏后又要下载 DLC ,又下载了 8G 多,终于开玩了,结果找了半天也没找到进入 DLC 的入口,都过了半夜了,关机,睡觉!
更新游戏的时候,顺手把《羊蹄山之魂》的数字豪华版买了, 可惜 10 月 2 日还在旅途中,无法在首发日就开玩了。
]]>iPhone 17 系列发布了,但是最感兴趣的是 AirPods Pro 3 ,后来再一对比,发现新功能对我来说都没啥用,这样 AirPods Pro 2 的性价比就很高了。加入购物车即将下单时,发现其价格与我心心念念的汉王 Clear7 Turbo+ 相近。后者对我来说是更迫切的需求。就在准备支付时,转念一想:何不等到双十一再入手呢?
这周我第一次用光 Windsurf 的 Credits 。
这周一开始就只剩不到 100 个 Credits 了,Claude Sonnet 4 和 GPT-5 ( hight reasoning )在 Windsurf 里每次消耗都是 2x ,消耗到还是最后十几个的时候,我就改成了 Kimi K2 ( 0.5x ),意外的速度和效果还不错。
另外,很多简单的修改我就直接自己上手了,好在 Tab 联想是不消耗 Credits 的。我在自己写代码的过程中也发现了 AI 生成的代码里有很多问题,最严重的就是因为重构不到位而导致存留了很多重复和无用的代码。
我一直以为这个 App 的 TF 版没人在用,没想到这周意外收到了两个反馈。第一个公开 TF 版本非常粗糙,经过这么多天的迭代,目前手里版本的变化已经翻天覆地了。本来想周末提交一个新的 TF 版本,但是赶上了 AI 停工,有一个重要功能没能完善,所以就搁置了。
周记 128 里提到的那个大单终于可以公开了,那就是极简时钟成为了 BYD Pad 的首批预装 App 。听起来好像很不错,但其实只是多了一个分发渠道而已,至于这个渠道的流量有多大,且听我慢慢说整个过程。
一个半月前的某一天的下午六点多,我接到了一个北京陌生手机号码打来的电话,绝大多数情况下这种陌生号码我会直接挂掉,但是那天不知怎么的我就接了。对方是比亚迪的业务人员,说是发现极简时钟这个 App 在安卓市场下载量和评分都不错,希望我能授权给比亚迪作为新车型上的预装 App 。经过几天的交流,我就签署了授权书,合作正式开始。
我查了一下,比亚迪今年 7 月和 8 月每个月的销量有 30 多万辆(属实惊到我了),如果按照 1% 的付费率计算的话,那我也是发达了啊。这要是靠比亚迪财务自由了,高低得买辆比亚迪作为感谢啊。
因为对方一直不透露新车型和运行 App 的设备规格,我一直以为是 App 是运行在车机的中控大屏上的。对方也不给我们测试机,我们只能提交 apk 由他们自己进行测试,好在是没有出现任何问题,不过即使出现了问题需要我们适配或者修复,我们也不好弄。
9 月 10 日,对方通知我 App 随着新发布的方程豹钛 7 预装在了比亚迪自研的 BYD Pad 上。这我才知道 App 不是预装在车机大屏上,而是后座使用的一个 Pad 上。但其实也不怪对方,对方全程的交流里提到的都是 Pad ,我的固有思维就一直认为是中控的那块屏幕,我哪能想到后排也能用平板啊。
于是我在网上把所有关于这个车型和 BYD Pad 的视频基本都看了一遍,没有看到极简时钟的出镜。一是许多评测视频是博主在 8 月底拍摄的,当时极简时钟尚未预装。二是关于 BYD Pad 的评测本身稀少,且内容多聚焦于车辆智能化功能。
为了看到极简时钟实际运行效果,我去了 4S 店打算实地拍摄。到店后才发现,店里没有这个 Pad ,而且从销售那里得知,全国缺货。还有一点,这个 Pad 不是随车到手的,而是需要在购车后在比亚迪的商城里进行兑换,后期单独邮寄到车主手里。销售说这个新车的预期是上市后前几个月每月一万辆,还有一个很重要的问题,只有高配的四驱版才附带 Pad ,其他两驱车型都是选配的,需要额外付 3599 才能加一块,综合这些因素,那么极简时钟能在这个 Pad 上被统计到的数据就少之又少了。
事实也确实如此,极简时钟在钛 7 发布后,在 BYD Pad 上的新增用户虽然是连续两天翻一番,但是实际情况是:
一夜暴富的幻想就此破灭……
这周买了很多东西,但是最喜欢的是在拼多多上买的一些小东西,几块钱,但是很快乐。
最近总想着更换音频设备,看 Hifi 播放器,看耳机,看音箱。考虑大部分时间都是我一个人在家,先从音箱下手吧。本来是想用 MR4 替换 R1080BT ,但是最后入手了 R1700BT+。我还想着这对音箱如果体积太大就放在电视柜上给电视用,结果发现难堪大用,还是放在了桌面上。
AE86 的钥匙挂钩,8 块多,自己还做了个很带感的视频( GIF 图的话就听不到引擎的声音了)。
Apple Watch 仿 Macintosh 的充电底座,9 块多,正好把闲置的 SE 1 代放上去,变成了一个价值千元的桌面小摆件。
程序员 meme 贴纸,4 块多,50 张不重复,准备四处贴贴贴了,不过之前买的 Rick and Morty 的几十张还没贴完。
一个订阅数有十多万的 YouTuber 通过邮件问我是否有兴趣给极简时钟做个植入视频,我看他的视频都是围绕各种平板(特别是三星)做各种生产力工具教学的,最高的一个视频播放量有 35 万,主题和流量我自然是十分感兴趣的,但是他的报价是 500 美元……抱歉,你打扰到我了😜。
这周写了好多代码,感觉要第一次用光 Windsurf 的每月额度了。可能我的工作强度太低了, 不知道很多人一两天就用光额度是如何做到的,那得写多少代码啊?这周主要用的是 Claude Sonnet 4 ,准确性和 GPT-5 差不多,但是速度比 GPT-5 快无数倍。
周一上午就去领了新的营业执照。去之前我还特意打个电话问了在哪领取,告诉我是二楼,但到了才发现二楼都是办理税务的,税务人员让我去三楼问问,结果三楼的人又让我去一楼大厅……原来营业执照是领取时现场打印的,我还以为是提前打印好才通知审核通过呢,所以其实上周五我看见审核通过的时候就可以去领取了。上一次领取营业执照就是工作室刚注册下来的时候,极简软件工作室成立马上就五年了啊。
这周看完了阿加莎的《罗杰疑案》,也是在小红书上看到很多人推荐这一本,评价是最后的结局很震撼。但是我看完的感觉是,如果你之前没读过这样的叙述技巧的推理悬疑小说的话,大概率会感到很震撼,但可惜我之前读过类似的作品了,比如上一本《绝叫》的叙述比这本更上一层楼。不管怎样,这本小说是 1926 年初版的,距今马上就要 100 年了,阿加莎作为推理悬疑的先驱,这本书还是开创了叙诡手法,意义非凡。
之前在多抓鱼买的悬疑推理小说都读完了,就准备返给多抓鱼,顺便回收一下家里其他的书。有好几本明明是在多抓鱼买的书,但是这次多抓鱼不收录了,淦。最后一共邮过去 21 本书,有两本书因为污渍过重没有通过,最后通过 19 本,扣除运费,到手 111.10 元。
电影《 Heads of State 》,主角的三个演员我都很喜欢,剧情就很简单,甚至漏洞很多,但是几场打斗戏拍得异常精彩,豆瓣评分只有 6.6 ,我觉得低了,个人打分四颗星。
韩剧《 S-line 》,漫改作品,设定新奇,一共才 6 集,周日腰疼一天,躺着一口气看完了。豆瓣评分才 5.6 ,主要是最后一集被喷了,前五集也还不错,个人打分三颗星。值得一提的是,片尾曲《 Between The Lines 》超级超级好听,一耳朵就喜欢上了。
滴酒不沾的我,在超市发现一个包装很漂亮的荔枝味米酒,就买回家尝尝。 之前在朝鲜风味饭店里喝过几次米酒,感觉很好喝,我也没有什么不良反应,本以为这次会是一次更好的体验,结果并不是。这个就喝起来就像是粘稠的米汤,不知道是心理作用还是酒精作用,三杯下肚,后脑勺就开始不舒服了。
注:这个酒的度数是 >0.5% vol……
自打上次手机坏了,我就一直没重装基金 App ,就让三个智能定投自行操作。听说最近 A 股行情不错,我就下载打开看了一下,没想到三个月过去了,收益都超过一万了。记得三个月前刚刚收益才刚刚回正,不装了,摊牌了,巴菲特朝阳分特,正是在下!
饿了么的外卖派送员叫做「骑士」,在订单里会加上姓氏,比如王骑士、张骑士。我买了两杯柠檬水,给我配送的是「龙骑士」…… 还是个女骑士。
2025 的夏天结束了,脱口秀的夏天也结束了,何广智实至名归,总决赛最后的蹦迪环节让我感到十分惊喜,快乐可以用任何方式来表达。
周一到周四还在推进这个单词 App ,主要是修一些一直以来都存在的小 bug 。另外加入了一个全新玩法:根据英英释义来猜单词,可能乍听起来并不是什么新奇的玩法,但是在我这个 App 里算是一个史诗级加强的功能,因为这个既连通了道具系统,又大大降低了拼单词的难度。
这个功能需要重建整个词典系统,原来所有的单词都只是一个个单独的字符串,现在需要加入每个单词的英英释义。通过整理词典的文件,我才知道原来 JSON 文件格式还有一个变种:JSONL ,这种文件更适合逐行读取。
极简日记一直有一个 bug ,就是每天第一次打开 App ,顶部的日期显示的是今天,但是下面的日记内容有可能还是昨天的。这个 bug 我一直都懒得修,直到这周收到了一个用户的反馈邮件,提到了这个 bug ,不得不修了。AI 一下子就修好了,我也懒得看代码是如何修复的了,it just works 。
紧接着发现了另外一个 bug ,就是 onboarding 后弹出的 paywall 会一闪而过,这可是大大影响收入的一个问题,必须立刻解决。 一开始我以为是之前的改动导致出现了这个 bug ,但是后来才发现这个问题已经存在至少两个版本了……我和 AI 花了一天多才终于找到原因,这期间各种模型都用上了,花费了好多 token 。
安卓小哥两个月前就提出把「每年今日」的入口放在日记列表里,但是我一直没找到合适的实现方式。这次突发奇想,可以把这个入口做成一个日记条目,放在每天的日记列表的结尾,这样既简洁又不显得突兀。
前面的周记提到过我有一个和我名字相同的域名:shudao.wang,一直续费但是已经两年多没更新了。除了作为 blog 我也实在没有什么更好的想法了,但是上周的知乎收益让我意识到,blog 不就是内容型的网站吗,我多发一份就多了一个这样的网站,知乎、V2EX 、公众号都是如此。于是我花了三天通过 Gemini CLI 把最近 70 多篇周记都迁移上去了。心想着如果 PV 上去了就加入 Google Adsense ,这不又多了一个收入渠道嘛,结果三天过去了,还是 0 访问……
独立开发者群里的老陈提醒有公司的要进行「受益所有人备案」,我就登上政务服务网去看一下,结果是不需要……后来才知道个体户和个人独资企业无需这个备案。
因为我之前的经营范围里有一个「动漫游戏开发 」,每次给 App 备案的时候,腾讯云都因为这个要卡我一下,要我电话咨询新闻出版局是否需要前置审批,就很烦。所以我早就想把这个从经营范围里删掉了,之前问过我的代账公司,他们可以代办,收费 300 多……这次登上政务服务网里发现里面有一个「变更登记」的服务,我就自己把经营范围更新了,又省下一笔钱!另外我也把注册资本从 10 万改成了 1 万,我本来是想改成 1 元的,但是输入框的默认单位是「万元」,虽然我没尝试,但是我觉得输入 0.0001 也不太好。但其实这也是多此一举,之前《公司法》说的五年内的实缴这个政策也是不包括个人独资企业的。
吐槽一下在线变更登记的过程,经营范围不能在原有的选项里进行单个删除,只能是一个个重新添加,最后的提交居然还同时需要支付宝和微信,支付宝用来验证个人身份,微信用来验证企业电子营业执照。好在仅过了半个小时,审核就通过了。
读完了《做对产品》,整本书就是在教如何验证产品的创意,在原型之前先做「预型」,减少产品失败的概率。
书里的观点是:绝大多数的产品都会失败,但是通过一系列流程可以摆脱失败野兽的吞噬。整本书的精华就是下面这张图,通过一整套验证的流程来去验证产品的创意,核心就是建立 XYZ 假说、预性实验和收集 YODA 。
这本书的最后也上了价值,也正中我一直以来的开发理念:不赚快钱,不做垃圾。
我的小米平板 5 被孩子爷爷征用了,给了我 3000 块让我再买一个新的。平板主要是为了给孩子看网课,另外给老婆看视频追剧,所以屏幕越大越好,一番对比下来,入手了荣耀 MagicPad 3 。尽管知道这个平板的屏幕很大,但是开箱后还是震惊到了,居然和我的 MBP 屏幕几乎一样大了。
大屏除了看视频很爽,看电子书也不错,另外极简时钟在上面的运行效果十分亮眼。
一年一度老友聚会,吃喝玩乐后,之前好不容易减掉的体重又回升了。
单词 App 进行了第二次外部测试。这次我想扩大一下测试面,就通过小程序的问卷向感兴趣的人搜集邮箱,我好加入到 TestFlight 测试组里。然后呢,提交的邮件有 40 个,最终只有 9 人下载安装了 App ,其中还有 3 个人至今都没打开 App……so, nobody fucking cares about your app!
这个结果也是意料之中的,没有任何玩法说明,也没有任何新手引导,很多人都不知道这个 App 是干什么的。但是第一轮参与测试的两个朋友还是给了不少修改意见,这周只写了不到三天的代码,只把 App 的回合流程又优化了一下,新手引导还是没写。看了下 todo list ,整个 App 距离第一个可以提交的版本感觉只写了十分之一。
这周在知乎赚到钱了,提现了 130 多! 这些钱是历时八个月才攒出来的,是通过知乎的致知计划产生的创作收益,内容就是我的周记。不过知乎的提现居然不是实时的,还有个审核的过程,审核了一天多才到账。
我的 32 寸显示器竖起来一直以来有三个问题:
所以我就想买个 16:10 或者 3:2 的显示器,搜了一大圈不是贵就是不合适。突然想起来我这个三星显示器有分屏功能( PIP ,也可以画中画),可以把显示器平均分成两块 9:8 的屏幕,这下就解决了前两个问题,又省钱了!
周二中午刚准备吃午饭的时候,右手拇指突然疼起来,两个关节稍微动一下就很疼。也不知道是腱鞘炎还是肌腱炎,也不知道是刷手机导致的还是玩手柄导致的。先抹了扶他林,然后下单了拇指护具。
带上这个护具后操作鼠标就不方便了,只好把 trackpad 1 代掏出来用了几天。刷手机改用左手,手柄基本也不碰了,每天抹一次药,几天就好了 90% 了。
因参加 Machine Learning for Healthcare 学术会议 出差三天。在返程机场想起女儿曾托付带吃的,但因不擅长选食物,改为为孩子们挑选小挂件作为礼物:儿子得到蘑菇挂件,女儿得到冰棒挂件。
与此同时,孩子们在家也为父母准备了礼物:女儿亲手制作字母手链,儿子则送上捡到的木头小屋。
最后,还带回酒店小巧的果酱瓶,算是满足了女儿“要吃的”心愿。
反思了“礼物是否需要有用”。见全文: https://conge.livingwithfcs.org/2025/08/21/NewDaddy-gifts/
践行了两个星期 18+6 饮食法(比 16+8 稍微严格一些),瘦了将近 5 斤。早上不吃早饭,中午十二点才开饭,下午六点前就吃完晚饭。这两个星期几乎没怎么出门,也就没什么大体力消耗,所以每天也没有什么饥饿感。
这周所有的工作都是在继续开发单词 App 。
和 GPT-5 结对编程,这一周推进的速度很快。和上一个 TF 版本对比,几乎把所有的布局和术语都重新设计了,还加入了更多类型的道具,整个核心游戏循环验证已经完成了。
Todo list 还有很长很长,但是接下来的最重要的任务就是加入 Boss 战模式,丰富更多道具,以及新手引导。
TF build 4 已经发布了,如果你对这种肉鸽类的单词游戏感兴趣的话,请告诉我你的邮箱,我把你加入到测试组里。
毫无来由地,下单了一个全自动咖啡机。上午看的时候还是 2900 多,犹豫了一下,先加入到购物车里,然后就发现涨了 200 元……等到晚上又降价到 2800 多,立刻下单了,同时也下单了两包新豆子和两个新杯子。
这些钱,我完全可以买一直心心念念的电纸书,或者加钱买个 XDS 公路车,不知道为什么就鬼迷心窍买了咖啡机。
第二天咖啡机到了,但是豆子还没到,只好用之前买的豆子测试一下,没想到前年买的豆子喝起来也还不错,可能是我真的喝不出来什么区别吧。
大数据是真厉害,我刚买了这款咖啡机,小红书上就全是这款咖啡机的笔记了,各种使用说明、清理技巧和豆子推荐。
至此,家用的咖啡制作器具除了虹吸壶和聪明杯基本都全了。手冲杯、法压壶、手压式、摩卡壶、冷萃壶,半自动、胶囊机、全自动。果然是越喝越懒,目前来看还是咖啡胶囊最方便。
和朋友偶然去了一家泰式餐厅,一进去把我吓得差点退出来,整个餐厅都是小姑娘,只有我们两个老爷们,显得格格不入。原来这是一个网红打卡店,几乎每桌都点了特别出片的那两个菜品,不过有一说一,味道还不错。
上周说了,那一套 SA 键帽中看不中用,这周新买的 MDA 键帽到了,这下完美了。这一套键帽敲起来就完全没有任何问题了,再配合上哒哒哒的麻将音,太享受了。
暑假已经过了一个多月了,盘点一下,孩子们已经参加过四个夏令营了。最近的木工夏令营做了点儿好玩儿的东西,仔细看看,能看出两个孩子的不同个性。
在博文里做了些简单的分析 https://conge.livingwithfcs.org/2025/08/11/NewDaddy-woodworks/
女儿的作品
儿子的作品
大家的孩子,暑假都干啥了呢?
]]>这周我才知道,不同的 Mac/iPad 放在一起,可以通过一套键鼠无缝切换控制,而这个「通用控制」的功能在 2022 年 3 月就加入了……这对我来说可太重要了,我前些天还差点就想给 MacBook 配一个无线鼠标,现在我的 Mac mini 和 MBP 可以共用一套键鼠了!
这周提交了极简时钟安卓版 3.4.0 ,加入了浮雕时钟主题。安卓小哥不知道用了什么加速器,仅用了两天就写出来了,又花了一天进行细节调整,我测试了一天,周五提交到各个市场。
在跟安卓小哥对设计的时候,我发现 iOS 版本居然存在一个严重的 bug:各个主题本应该是不同的秒钟音效播放出来居然是同一个。用 Gemini Pro 2.5 搞了一晚上也没修复,最后靠 Claude Sonnet 4 才找到了真正原因。
周末里安卓小哥又花了一天把旋转时钟主题也做好了……我提交 App 的速度都赶不上他写代码的速度了。
这周单词 App 在功能上没什么进展,都是小修小补,但是在术语设计上做了很多工作。
术语设计,是我这个外行为这个工作起的名字,工作内容包括重新设定道具的名字和 UI 文本,使其符合玩法机制。在网上一搜,没想到还真有个东西叫做「 Terminology Harmonization 」,不过和我这个所谓的「术语」不太一样,我这个其实更应该叫做「世界观设定」。
这个 App 是我从一开始就用 AI 来写的,之前一直用的是 Windsurf 搭配 Gemini Pro 2.5 。前些日子 Windsurf 被收购了,终于可以使用 Claude Sonnet 4 了,但是我的体验并不是很好。Claude Sonnet 4 分析和执行效果不错,但是在 Windsurf 里经常出现响应错误,有时候新建对话都不行。还有一次不知道抽什么风,给我直接生成了一万个乱七八糟的文件……
GPT-5 发布了,在 Windsurf 里我用了几天,出乎意料的好。我给了 GPT-5 一个重构工作,全局替换一个类型的名字(就是上面提到的术语),并且根据额外的文档添加新的属性,尽管最终修改了 20 多个文件,但居然一次就通过了编译,要是 Gemini Pro 2.5 是肯定做不到的,不是忘记修改这里就是忘记修改那里。目前使用 GPT-5 ,几乎没有编译失败的修改,这是我用这么久 AI 从来没有过的体验。
一把宁芝静电容键盘,挂在闲鱼上两个月也没卖掉,我就给下架了。我本来一直的原则是卖掉一把旧的,再买一把新的,但是这次破例了。Feker 不知道什么时候出了新的 Alice 75 配列的键盘,而且还是铝坨坨,我挑了个花寻轴,据说是麻将音。
这是我第一次用铝坨坨键盘,从快递驿站拿到货就又有些惊讶,这也太沉了。这个键盘重到单手没法拿起来,按键声音也非常好听,唯二的缺点是配套的手托质感太差,以及自带的键帽太 low 。到手后就换了一套之前就买的键帽,绝美。但是说实话,这套球帽中看不中用,之前就在其他键盘试过,因为 FJ 不好定位导致经常打错字,已经下单了新的键帽
这周操作公户的网银时,显示证书即将过期,提示我去「展期」。极简软件工作室成立快五年了,没想到这个证书的期限就是五年。我还是第一次见到「展期」这个词,原来就是续期的意思,可能是银行系统的专业术语吧。一开始我还以为展期需要去线下柜台去办理,心生厌恶,幸好发现网页端就可以。
但是在线展期也废了一番功夫,在网页里始终无法识别我的 U-Key ,无论我重新插拔重新登录都不行。后来我想到我在操作「网银」,这时两个大写字母从我的脑中闪现出来,那就是「 IE 」!之前用的一直是 Edge 浏览器操作网银,幸好微软还提供了 IE 兼容模式,果然在这个兼容模式下就可以识别 U-Key 并展期了。
展期后,网页端显示「展期成功」,到期时间也更新到了 2030 年。但是我发起转账后,通过 U-Key 确认的时候又弹出来「证书未安装」……遇事不决就重启,重新插拔 U-Key 并重新登录网银后终于可以转账了。
谁能想到,都已经 2025 年了,邮储的网银还这么落后。
《占星术杀人魔法》,在网上被无数人推荐,这周花了三天读完了。案件确实诡异,探案过程确实复杂,揭秘也确实出人意料。
这本书是岛田庄司的出道作,第一本小说就写成这样我是很佩服了,而且岛田还是绫辻行人的导师,馆系列的主人公「岛田洁」就是从「岛田庄司」和「御手洗洁」组合而来。
这周在北京奔波了三夜三日,北京就是一个桑拿房,又热又潮。
周一提交了第一版的 TestFlight ,没想到被拒了,这还是我第一次 TestFlight 审核不通过。Apple 的审核是在 iPad 上进行测试的,拒绝的原因就是:在 iPad 上一启动就闪退。这确实是我的疏忽了,我一直在 iPhone 的模拟器和真机上测试,真就一次都没用 iPad 测试过。
崩溃的原因是 SwiftData 的 container 启动异常,直接进入了 fatal
语句。但是,这部分代码是 Xcode 的模板自动生成的,我都没修改过,而且目前 App 里还没有用到 Swift Data ,这就奇了怪了。Windsurf 试了好几种解决方案都失败了,最后还是靠 ChatGPT 解决了,原来是 SwiftData 的 model 属性不符合 CloudKit 的要求。
审核通过后,我就立即把 TestFlight 发给了两个开发者朋友,一个是 App 开发者,一个是专业的独立游戏开发者,两人都从不同的角度给出了很多的建议和反馈。针对这些建议和反馈,我又重构了整个 UI 布局,修复了小 bug ,还在 AI 的帮助下,加入了标题的动画。
在高铁上发现极简日记 iOS 有一个严重的 bug ,就是分享图里没有显示日记包含的照片。又是我自己发现了问题,再一次说明这 app 没多少人在用……
周六晚上回到家立即开始修复,用 AI 搞到半夜也没修复。一觉醒来继续搞,Claude 4 和 Gemini 2.5 Pro 轮着用,一步步定位问题。AI 一开始认为问题出在把数据转成图片这一步,也就是渲染的问题,结果发现在渲染之前图片就没有加载出来。后来发现图片没有加载的原因是在 Core Data 里没有找到对应的资源,原来是 View Context 没有统一。解决了这个问题后又发现图片是异步加载的,还是无法渲染,即使加上一个延时处理也不行。原来的是在点击保存分享图到相册里之后再渲染整个图片,索性直接改成进入分享页就直接渲染成图片。周日就这样反反复复和 AI 结对 debug 一天,几近崩溃,终于搞定了。
心得(值得划线):遇到复杂的 bug ,先让 AI 在产生 bug 的前后环节写上事无巨细的调试语句,这样就好定位问题了。
周六参加了 Vibe Friends Meetup 。
活动地点在五道口的东升大厦,去的路上十多年前的一幕幕回忆逐渐浮现。那时候在英特尔实习,早上坐地铁在五道口站下车,然后在枣糕王门口的公交站乘公交到保福寺桥北下车,再走一公里到融科资讯中心。那时还没有共享单车,夏天的时候到公司基本全身就已经湿透了。我最怀念的是保福寺桥北有一对夫妻摆摊卖鸡蛋灌饼,那是我吃过的第一家鸡蛋灌饼,也是我认为最好吃的鸡蛋灌饼,但是他俩出摊不稳定,一周里能吃到两次就很幸运了。
如今,五道口地铁站仍然是个蒸笼,枣糕王门口依然排着长队。
这次活动一开始的报名上限是 150 人,等到活动当天我才发现提高到了 200 人。组织者建立了个群,在群里竟然没有发现一个认识的 ID 。
活动的主题“我的前 100 个付费用户”,做主题分享的有四个嘉宾,真是一上来就讲干货啊,也不介绍自己和产品(可能是只有我不太了解),直接讲各种拆解操作和心得体会。中间也有现场回答听众提问的圆桌环节,可惜我要赶高铁提前离场了,可惜后面还有几个分享就没听到。
有意思的事情有两个:
这周在北京各种吃,庆丰包子铺,门框卤煮,紫光园,海底捞,江边城外烤鱼,最后上高铁还吃了一盒寿司。
这次北京之行没有带电脑,为了打发车上和晚上的时间,在小红书的推荐下,准备了《方舟》这本书。从出发开始读,在酒店睡前读,终于在回程的高铁上读完了。
小说的前 99% 都很沉闷,凶杀案也没造成多少恐怖的情绪和氛围,但是最后几页,惊天大反转!
读后看豆瓣的评价,没想到这个小说居然还得到了小岛秀夫的晒单推荐。
这周意外谈了个大单(但其实并不赚钱,只是多了个渠道),签了个协议。但一切还都在初级阶段,等有更多进展再公布吧。
先来一张照片,喝新品咖啡,吃煎饼果子,然后心满意足去写代码。
这周所有的工作还都是在新的单词 App 上,进展神速,看了下 git log ,让 AI 总结了一下,发现居然写了这么多。周日晚上提交了第一版 TestFlight ,打算找几个人来试用一下,收集一些反馈。
为了看起来像个 demo ,我用 Figma 一气呵成做了个 App icon 。这个 icon 在脑中有一段时间了,我不在家的时候用无边际简单画了个草图,感觉一般,但是没想到成品让我非常满意。
这周捡起了吃灰的 Switch ,本来是想继续玩《逆转裁判》的,但是看到有氧拳击,就玩了两次,大汗淋漓。
这周去电影院看了两个电影。
《长安的荔枝》,比期望中差一些,《年会不能停》三人组并没有制造出多少笑料,而且很多脱口秀演员和喜剧人的客串完全是多余的。
《神奇四侠:初露锋芒》,我个人感觉是继《银河护卫队 3 》之后最好的一个漫威宇宙系列电影了(不算《死侍与金刚狼》的话),比《雷霆特攻队*》要好。IMDB 上的评分也和我的感受是一致的,但是不知道为什么国内豆瓣对这个电影评分越来越低。
周末两天吃了两顿大餐,一顿是外面吃烧烤,一顿是在家吃海鲜烤鸭大餐。
周三晚上,和老婆孩子骑着电动车去商场逛了一圈。之前一直没喝过霸王茶姬,本来还想尝一杯,店员说打烊了(刚过 5 分钟)。老婆又一直想吃 KFC 的夜宵,之前都赶不上夜宵的售卖时间,这次一家三口不仅吃了冰激凌,还吃了烤串和鸡架。
看似平常的生活,但其实是我们的第一次。我记得我小时候放学后做完作业经常和父母出去溜达,但是不知道为什么,现在的孩子放学后不是各种课外班就是一直写作业到睡觉。
我买了上周说在 Steam 上发现的那个和我的想法很相似的游戏,简单地玩了一下午,得到了很多启发。无独有偶,这周又在 Steam 上发现一个玩法相同,而且细节和我的想法更接近的一个游戏,又买下来体验了一下,这几乎就是完全把我脑子里的想法都实现了啊……但是我也发现了这两个游戏共同的问题,而且因为都是单机游戏,没有 AI 功能,这些都是我可以改进的地方。
这周都在继续写这个 App ,最大的进展就是设计定型了。起初还想着搞些圆角和阴影什么的拟物设计,但是一想到自己不会设计就完全放弃了这些设计,于是就采用了最原始最简单的纯扁平的设计。
我有一个和我名字一模一样的域名,这周又收到提示快要到期了,于是就又续费了一年。这个域名之前绑定的网站是我的英文 blog ,也就是周记的英文版,我一共上传了 31 篇周记,后来实在是懒得弄了,就搁置了。所以这个网站已经将近两年没有任何更新了,去年续费的时候我就一直在想这个域名还能有什么用途,今年续费的时候还是没想出来。
主线通关是 60 小时,又花了几乎一倍的时间才达成白金奖杯,一共 110 小时。 白金奖杯就是一场欲罢不能的修行,虽然要做很多重复甚至无聊的任务,但是就是为了最后奖杯弹出的那一瞬间,对其他所有的事情都提不起兴趣,就是要做大货司机,就是要追求一次次的送达后多巴胺的分泌。
Admob 的广告已经停了两个星期了,但是每天还是有广告收入,好奇怪啊。
周四的时候,国内安卓收入又突破了 1K ,但是紧接着就恢复到了正常。
提交了一个极简日记 iOS 的修复版本,修复了横版的实况照片的显示问题。之前开发的时候一直是拿竖版照片来测试的,没想到横版的出了问题。让 AI 来修复,结果越改越乱,还把视频部分的代码给改坏了。想让实况照片的视频在播放时和图片保持统一的宽高比和尺寸,AI 死活搞不定,结果还是我灵机一动,一个 overlay 就解决了。
周六和 DeepSeek 讨论睡眠 App 的功能设计,之前一直想不明白的一些功能动机终于更清晰了一些。通过这次讨论,我发现只有一个 AI 的话,它要么只会顺着我的观点来说,要么自己肆意发散,我需要一个可以「圆桌讨论」的多个 AI ,AI 之间可以互相质疑、互相补充、互相纠正,就像辩论那样。
尝试了一下 Gemini CLI 给睡眠 App 改 bug ,但这种只能通过对话修改代码的方式我还真不习惯。
周日又思考了一下之前搁置的单词 App ,如果加入 AI 功能的话发挥空间很大。又和 DeepSeek 讨论了一下,基本确定了核心功能,消除了之前的困惑。趁着今年的 Shipaton ,打算用这个 App 作为参赛作品了,于是新建了文件夹。开始写 demo ,自己写了字母卡片,用 AI 写了简单的动画。这时又犯了老毛病:深入细节,明明基本流程还没跑通就开始抠动画和 UI 细节了,马上停止!
周日晚上在 Steam 上发现了一个和我的单词 App 玩法一模一样的游戏,意料之中,因为这个玩法很普遍。这个游戏是 6 月 24 日才上线的,发布不到一个月。可惜不支持 Mac ,我没法体验,不过看视频和截图,就是我想要实现的那种,这下有参考目标了(嘿嘿)。
这两个 App 都有游戏模块,以后要做游戏开发者了?
为了给初号机找个伴,入手了二号机。
这一周无论是游戏里还是手机和电脑上,都在单曲循环 Raindrops Keep Fallin' on My Head 这首歌,听了估计又上千次了。同时也在练习用尤克里里弹唱这首歌,在简化了和弦后,终于能弹下来了。
]]>这周有一个新尝试,连续七天冲冷水澡。都说冲冷水澡好处多多,但是这一周下来在我的身上并没有发现有什么改变。
之前说过我没法卖课,一是写不了那么系统性的教程,二是自我水平不足怕写出来的东西错误百出。不过这周我突发奇想,我卖不了课,但是我可以卖大纲,就是纯大纲,大纲的内容就让读者自己去找资料和实践去填充。
第二届 Shipaton 要开始了,去年为了参赛逼着自己写了个 App 出来,今年要不要再写一个?
Google Play 发通知要强制更新目标 API 级别,要求 App 必须以 Android 15 ( API 级别 35 ) 或更高级别为目标平台,截止日期是 8 月 31 日。于是就趁着这次把 GP 上三个 App 都更新了一版。
极简日记 iOS 这周终于更新上架了,这个版本的开发历时 22 天,70 个 commit ,于是我就直接更新了一个大版本号,极简日记 iOS 2.0.0 。
这个版本主要更新有两个:
与这两个功能相关的改动还有:
前面几篇周记提到过一些技术难点,其他非常耗时的就是各种交互的细节调整:
因为新加入的功能涉及到很多页面,牵一发而动全身,所以只好等全部做完才提交审核,现在终于有时间去搞其他 App 了。
《死亡搁浅 2 》 60 小时通关了,神作!虽然有些演出还是很抽象,但是结尾比起上一部来说好太多了,而且看起来还要有第三部。接下来就是慢慢地村通网、搞基建、送快递,直至白金。Raindrops Keep Fallin' on My Head 单曲循环中,尤克里里弹唱谱也下好了,下一首弹唱就是它了。
和老婆在家看完了《长安的荔枝》电视剧,一集没落下,两人在沙发上一起看完,都想不起上次两人一起追剧是什么时候了。
另外和老婆又在家看了《人生开门红》,看之前我就知道是烂片,但是豆瓣评分居然还有 6.5 ,看下来果然还是烂片,易小星还是不适合拍长电影,笑点也很落后和低级。
卓总送给我一本书,是在哲学的角度讨论旅行的一本杂志。趁着早上天还没热,凉风阵阵,读了一半。
最近恢复了尤克里里的练习,就当作写代码和玩游戏之间对眼睛的休息和放松。自学尤克里里刚好一年,扫弦还是节奏不稳,稍微有点难度的和弦还是按不好,指弹还是没入门,给老婆弹了卡农的前两个小节,她愣是没有听出来。
提交了极简便签 1.0.5 ,HMV 都很顺利,这次出幺蛾子的是 OPPO 。
OPPO 开放平台的网站用 Chrome 经常登不上去,登上去了各种页面打不开,控制台报错是 js 加载错误。耽搁了半天,所以这次最后提交的平台就是 OPPO 。结果 OPPO 还以“没有注销功能”给拒了,懒得理了,先这样吧。
这里不得不吐槽一下 OPPO 的垃圾网站。登录的时候输入完用户名和密码,结果还要邮箱验证码,登录成功后还要手机验证码,所有的应用商店里就只有 OPPO 这么频繁依赖验证码,验证你妈啊。
这周的主要工作还是在做极简日记的照片展示和选择器。花了一天时间终于实现了图片、实况照片和视频的保存,其中实况照片的保存花费了大量时间去研究如何实现。关于实况照片的资料非常非常少,找了好久终于在 StackOverflow 上面找到了一个线索,然后又在 Github 上面找到了一个 repo ,最后搞定了保存。
接着是在编辑器里面对照片选择的交互进行优化,加入了渐变和进度显示,但是这里又需要大改之前的数据结构,又是调试了两天。加入新功能必然会导致 bug 的出现,现在实况照片又无法加入了,而且视频的缩略图清晰度又出现了问题,还得改……
现在还缺少针对新加入的实况照片和视频的导入导出,这一部分搞定的话就可以发新版本了。这一大块功能前后做了一个月了,总是做着做着又想着加功能,做着做着又想着再优化一下,拖的时间太长了,下周无论如何也要发布了。
周五下午去电影院看了 F1 。这一场电影真是速度与激情,中间趁尿点剧情时我出去上了个厕所,回来发现在我正后方的一对情侣正在进行口腔菌群交换,女的躺在男的怀里,两个人的口器就像粘在一起一样,牢不可分。
我本来不是 F1 的车迷,对这项赛事不是很了解,只知道 F1 的车世界上最快的车,仅此而已。看完电影又听了三个播客,对这项赛事又有了更多的了解。正好周日晚上有一场 F1 奥地利大奖赛,这是我第一次从头到尾完整看了一场 F1 赛事。不知道是巧合还是片方的安排,比赛一开始就完全还原了电影里的情节。之后又发生了一些变故,只能说电影还是太保守了。
我买的是《死亡搁浅 2 》数字豪华版,比普通版的玩家提前两天开始进行基建,先富带动后富了。
这周玩了 30 小时(更没有心情写代码了),主线应该完成了将近一半。相比前作,这一代的改进和彩蛋的惊喜实在太多了。一下子又回到了玩第一代时候的那种心情和节奏,一个订单接着一个订单根本停不下来,完全沉浸于任务驱动的正反馈循环中。
看了下周记,正好是一年前我在玩第一代,那时候也尝试努力达成白金,但是有的成就实在太耗时了,最后还是放弃了,希望这一次可以拿到白金成就。
6 月 24 日我就加入了一个这个游戏的玩家群,群里讨论一直很热烈,可是开玩 5 天后大家才发现,群主因为买的是光盘版还没玩上,而且连一代也没玩过……
这周因为仓鼠导致两天睡眠不足。
上周搭建完笼子和管道系统,我还向其他仓友炫耀我的这套系统有多精妙、多科学、多复杂,没想到这周仓鼠连着越狱了两次。第一次是后半夜三点半,仓鼠趁我没有把外接浴池的卡扣锁住就跑出来了,越狱后跑到了床头下面,一直在那里咬啊嗑啊,吵得我和老婆不到四点钟就行了。第二次是早上五点多的时候,这次是它自己努力的成果,它把挖掘屋的屋顶给咬出一个洞,从那里钻了出来。不过这次没等它跑到床底下就被老婆发现了,于是我立刻把它抓了回去,但从那以后也睡不着了。
极简软件工作室喜建分部。
上上周说过,我把电脑桌搬进了卧室,但是我又搬回阳台了。一来是卧室几乎没有任何空间了,二来晚上我和老婆互相影响。不过我又找到了完美的解决办法,那就是 Mac 的屏幕共享。我在卧室里可以在 MacBook 上通过屏幕共享控制外面的 Mac mini ,躺在床上就可以写代码了。而且真机调试的问题也解决了,Mac mini 上通过屏幕镜像访问测试机,在 MacBook 上除了切换输入法有些麻烦,其余的操作和在 Mac mini 上没有任何区别。
这周还是在给极简日记加入新功能和重构代码。
上周没有解决的“鬼影”动画又花了三天终于解决了,最后的原因也让我哭笑不得。我自己照着示例代码敲了两遍,每行代码都仔细对比,最后才发现原因有两个:
第一点是我的疏忽,但是对于第二点我实在想不出为什么会产生“鬼影”动画,不管怎样总算是解决了。
这周没怎么看 WWDC25 的视频,反而是把 WWDC20 至 WWDC22 的几个关于相册和PhotosPicker
的视频看了一遍。PhotosPicker
是 iOS 16 就加入的 API ,当年我就想使用来着,但是 PHPickerViewController
用着也没什么问题,一直就没改动这部分代码。现在极简日记 iOS 支持的最低系统版本是 iOS 17 ,所以就想着趁着重构的机会尽可能多的采用新 API 。
写了个小 demo 试验了一下,完全可以取代之前的 PHPickerViewController 了,于是就顺便把读取视频功能也实现了。现在极简日记的一条日记里,可以添加图片、实况照片和视频,这是微信到现在也没有的功能(我也不理解为什么图片和视频不能混合加入在一条朋友圈里,可能是性能吧,这确实是一个棘手的问题)。
这次的功能是第一次在极简日记里使用 iOS 17 的 Observation ,之前虽然是在 Nut Goals 里面大量使用,但当时囫囵吞枣,并没有深入了解,这次因为遇到了严重的性能问题,所以就深入地学习了一下,又重读了两遍肘子哥的 blog:深度解读 Observation —— SwiftUI 性能提升的新途径。
另外,测试性能优化一定要在旧机型上,不然根本看不出效果。我的测试机是 iPhone 11 ,我的目的就是让极简日记在这个手机上尽量不卡顿。
极简日记是我边学 SwiftUI 边写成的 App ,里面充满了不合理和丑陋的实现方式,所以接下来我要一点点铲清这个屎山。
最近一直喝的是瑞幸的咖啡胶囊(主要是便宜,还赠杯子),这次趁着优惠买了 100 颗雀巢的胶囊,啊,真好喝。
我家这本来也有一家“天下丼屋”, 之前经常去吃,但是这家店莫名其妙就黄了,遗憾至今。周日去北京,在悠唐发现居然有一家,就进去吃了一顿,也终于是吃上了久违的味道。
最近两周几乎每天都在改造仓鼠的笼子,加管道,加外接浴室,加挖掘屋,终于定型了,不折腾了。
管道搭建真是又累人又气人,前前后后买了三套管道,妈蛋互相的接口都不统一,卡不住,重要关节就只能靠透明胶带了。而且整个管道的结构必须要有几个强有力的支点才能撑起来,不然就是各种垮塌。每次管道垮塌都会连带着鼠粮和尿沙撒一地,气到崩溃。
之前用坚果罐做过两版挖掘屋,但是罐子太小了,鼠子挖得不尽兴。偶然间发现装小米的盒子非常适合,深度足够,而且盖子上的圆孔可以和管道搭配使用,可以有效防止鼠子越狱。现在鼠子每天大部分时间都是在挖掘屋里,四脚朝天地惬意躺着。
我的 iPhone 终于修回来了,历时 11 天。上周二送到了 App Store ,周六才到达维修部,修了两天,又花了三天邮寄回来。
看维修单,更换了主板、电池、屏幕,基本相当于换了一台新机,不是新机的证据就是磨损的边框并没有更换。有这拆机更换部件的功夫,还不如直接换一台新的算了。
邮寄回来的物流是嘉里大通,第一次听说这个物流,查了一下,原来是顺丰旗下的。
周一安卓市场更新了极简时钟 v3.3.0 ,计时器的操作方式和 iOS 版一致了,另外纯黑主题回归。
周四和周五,花了整整两天,终于在极简日记 iOS 里加入了对 Live Photo 的支持。本来以为这个功能对于 AI 来说应该是轻轻松松就能搞定的,毕竟不是最近两年才出现的新东西,没想到一直无法获取到视频数据,到了最后还是我找了个示例代码交给 AI ,这才最终实现了存储、读取和显示 Live Photo 。
既然加入了 Live Photo ,就想着优化一下图片查看器。想模仿微信朋友圈那样的交互方式,但是看起来简单,周六和周日写了两天还是没搞定。一开始交给 AI ,但是 AI 自己瞎写一大堆。我又找到了一个交互类似的教程,每一行代码都照着敲的,但是运行效果就是不对,始终有一个「鬼影」动画。跟 AI 讨论了两天也没解决,沮丧。
Windsurf 推出了一个 Plan 模式,就是将需求解析成一个 note list 和 todo list ,然后 AI 所有的更改都会在 Plan 里记录和跟踪。乍听感觉很不错,但是几天实际用下来,感觉更难控制了。经常是给我库库一顿写,基本把所有的 view 都改写了,终于可以通过 build 了,运行一看,闪退!而且 AI 在 Plan 模式下会根据文档内容自动写,中间根本没有机会提交一次 git (我的习惯是成功 build & run 才能提交 git ),支持 Live Photo 这个功能我就重新写了三次才成功。
这期的小哥身份斜杠有点多,独立开发者、播客主播、旅游博主、摄影师,他目前最新的身份是产品经理。虽然小哥目前不搞开发了,和他交流了很多产品方面的内容,真是收获颇丰,下面是一些我的记录和启发:
这次闲聊是小哥主动邀约的,整个过程信息量太大了,一个话题接着一个话题,我有好几个本来准备好的问题都忘了请教了,比如 AI prompt 的优化、自驾游的心得和手机摄影技巧等等。
小哥以前也经常写关于产品的文章,其洞察的角度和思想的深度是我远不能及的。另外小哥之前也在自己的播客和社交媒体里推荐书籍,所以我猜他一定拥有大量的阅读和思考。果不其然,最后他推荐了两个产品,一个是 Headway,一个将畅销书的核心观点提炼成音频或文字摘要的服务,另一个是「参考答案阅览室」,也是一个分享深度阅读内容的社区。
熬不动看直播了,第二天起来看的重播。
今年推出了很多可以做新 App 的 API ,特别是端侧大模型,这个我本以为两年前苹果就该推出了,我正愁如何给 App 里加入 AI 功能,这下就好解决了。
每年 WWDC 后的一周时间是最忙的,要看好多 session ,要写好多关于新 API 的示例代码。但是这周因为上面所提到的给极简日记加入新功能占用了大量时间,只看了几个 session ,也没功夫体验新系统的测试版。
王力宏北京演唱会,在大麦抢票,六战六败,看来今年是无缘了。就看明年了,我不惑,他知天命,有没有机会去看他的演唱会了。
这周下了两次馆子,都是之前非常喜欢的饭店,但是吃得都不太开心,果然美食还需要好心情搭配才可以。
在天猫上买了一件优衣库的短袖,35 元,上身非常舒服,立马又下单了两件。
]]>极简软件工作室乔迁新址。
天气太热了,我的电脑桌就挨着阳台南面的窗户,即使拉着窗帘也很热,而且还地处空调死角。两个 4K 显示器发热量也很大,烤脸,有时候为了减少热量我都关闭一个显示器。Mac mini 的表面七八十度,还没锟斤拷,但是烫烫烫了。
综合考量,以及在老婆的批准下,把电脑桌搬进了大卧室。这样白天可以在卧室里开空调了,甚至不开空调,光靠两个卧室的过堂风就足够凉快了。
极简时钟 iOS 更新了一个小版本,优化了计时开始后隐藏标题和状态的逻辑。
另外,趁着这次提交,也更新了一下所有语言的 App 简介和关键字。因为之前尝试过一个月的 Apple Ads ,所以对于转化率比较高的关键字和搜索词有了一些统计,这次就重点将这些放到 App 的简介和关键字里面,另外也参考了一些竞品的关键字。
这次大幅更新 App 元数据,也是受了硬地骇客这期播客的启发,我听了两遍,有一些优化手段也是直接按照里面的建议来操作的。
目前还看不出这次 ASO 有什么效果,过两周再验证一下。
周一临近午夜,我的 iPhone 15 Pro Max 在毫无征兆下突然间屏幕就不亮了,但不是死机,因为通过 Action Button 也能正常触发,用 Mac 也能连接镜像和操作。一开始我还以为是小问题,还通过在 Mac 上的镜像调试了一下极简时钟。后来尝试了强制重启,屏幕还是不亮,必须送修了。因为有 AC+,所以首选是官方授权维修店,但是在网上查了才发现,我家这个官方授权维修店居然没有了……我之前还在这家修过两次,给 iPhone 11 换过电池和屏幕。
麻烦这就出现了,离我家最近的一个官方授权维修店在锦州,要使用 AC+的话我就要去到那里才可以。而离我最近的一个 Apple Store 在沈阳,比起锦州更是远了,两害相权取其轻,我预约了周二上午的维修,买了第二天早上去往锦州的高铁票。而此时我还不知道接下来的一天,我的经历将堪比一部公路片。
第二天早上送完孩子上学,我就回家简单收拾了一下要带的东西。手里还能用的手机只有两个,一个是红米 8 ,一个是 iPhone 11 ,都是我的测试机。本来是想用红米 8 作为备用机的,因为当测试机还算流畅,但是直到安装上微信,巨卡无比!只好又换成了 iPhone 11 作为备用机,也来不及重新匹配蓝牙耳机了,掏出一个陈年的闪电接口的 EarPods 就出发了。
打车去高铁站,高铁 25 分钟到了锦州北站,再打车 20 分钟到授权维修店。店员看了一眼就说需要返厂维修,两周时间左右。他说他那里只能修一些小问题的,屏幕这种出问题的都必须返厂。正当我犹豫的时候,店员说我提前打电话就好了,我这个不如直接去沈阳了,沈阳的 Apple Store 当场就能修好。他这么一说,我看了下最近的车次,有票,计算了一下到沈阳的时间,如果一切顺利的话,我就能带着修好的手机回家了。于是立刻买了去沈阳的高铁票,又打车去锦州南站。从我下出租车,再到上出租车,整个在授权维修店里的时间不到 10 分钟。
在出租车上预约了下午 2:15 万象城 Apple Store 的天才吧服务,又坐了一个多小时高铁到沈阳站。在高铁上就对比了一下,下了高铁坐地铁和打出租的时间是差不多的,而且坐地铁更稳妥一些,于是在手机上提前开通了沈阳的乘车码。我也没功夫去拍「沈阳站站」,直接坐地铁去工业展览馆。
到了 Apple Store ,歇了一会,终于一个男性天才开始接受处理我的维修。简单的情况介绍后,天才男也说需要返厂维修,因为这种屏幕不亮或者无法开机的问题是他们也无能为力的,必须返修……看到我面露失望,他说可以先检测一下,看看结果如何,于是开始用 iPad 检测,中间还因为无法读取序列号换了个接口转接器。可惜最后结果还是检测不通过,只能返厂,合着我从锦州大老远过来,结果还是一样的。天才男也从我的描述里知道手机是可以正常通过镜像连接到 Mac 的,说这可以是最后一种尝试,用 Mac 在打开 iPhone 镜像的情况下跑一边测试,但是我没有带我的 Mac 过来,另外这个镜像必须首先要在 iPhone 上解锁一次屏幕才可以连接,所以这条路也彻底堵死了。
所以最终的维修方案就是返厂,唯一欣慰的是修好后可以快递到我家,不用我再跑一次沈阳。不过天才男也说了,如果维修那边检测出来是人为损坏导致的(比如进水和严重磕碰),会原封不动邮回去……我就说如果出现这种情况我可以掏钱付费维修,天才男说因为维修部门不负责报价,所以不行。天才男说如果有这种顾虑的话有两种解决办法:
我实在是不想再跑一次了,而且我的手机也没有过人为损坏(天才男言语里暗示应该没有大问题),我就选择了免费维修后直接寄回家。事后我看苹果发送的维修确认邮件里,这次维修的报价是 5043 元,因为有 AC+,所以是免费维修。
我也咨询了天才男,为什么苹果没有用户邮寄维修的服务,他说用户邮寄过程不受他们控制,怕出现磕碰等纠纷问题。我又问了,像我这种本地和居住地附近都没有官方授权维修店的用户,该如何进行售后维修,天才男说就只能去最近的官方授权维修店或者 Apple Store……
从 Apple Store 出来,已经是下午三点了,肚子饿得不行,但是也不想吃一顿再回家了,立刻买了最近的车次,从沈阳北站坐高铁回朝阳。下了高铁,因为也不急了,就花 2 元坐了整整一个小时公交回到家。
从早上九点,到下午五点,我这一天,为了修个手机,跑了三个城市,五个高铁站,出租、地铁、公交,地上跑的交通工具都坐了个遍。
PS:在锦州的授权维修店遇到了两个来自葫芦岛的女用户,这两人也是因为葫芦岛的授权维修店关闭才到锦州来的,一个是抱怨手机发烫严重,一个是抱怨手机晚上横过来充电时屏幕上都是红色的字,感到很害怕(她不知道那是 Standby 模式)。
PPS:早上出发的时候,在高铁站碰到了之前打球认识的一个大学生小哥,他在沈阳上学,正好是端午假期后返校,我俩还聊了一会。如果我一开始就买的是去沈阳的车票,这一路就不会这么无聊了。
PPPS:打车去锦州南站的路上,和出租车司机聊到了东北最近的经济和就业情况。
司机:东北这工作也不好找,经济也不行了,留不住人。
我:是,但是我看沈阳和大连不那么严重。
司机:年轻的都去南方了,营口流失太严重了。
我:(我还以为司机是营口人)老城区可能差一些,鲅鱼圈(营口市的一个区)好一些吧,您是营口人?
司机:(有点懵)我不是,我就是锦州人。吉林和黑龙江都比辽宁强,辽宁营口流失太严重了。
我:(为什么总提营口?)是吗?我还以为吉林和黑龙江更留不住人呢。
司机:你就说,现在营口有 14 亿人?!我觉得 13 亿都没有!
我:……(我才意识到,司机一直说的是“人口”)
]]>本周没有独立开发者闲聊,原因就是我没去主动邀约。
说是闲聊,但我其实想从其他独立开发者身上学到更多,所以对方一定是在某个方面比我做得更好。另外为了减少尴尬,对方都是之前或多或少和我有过一些交流和了解的,或者有一些共同的交集。这两条就是我选择闲聊对象的标准。
之前的一个月里每期周记下面都有人留言希望和我聊一下,但是我对这些人一无所知,所以很抱歉。
为了开发健康类 App ,在京东各种优惠和国补的叠加下,买了个 Apple Watch S10 ,应该是历史最低价。
在买到手的第二天,新手表就立大功了。第二天醒来后,我就发现睡眠数据里没有了“卧床时间”这一项。在网上搜了一下,好像是苹果在 watchOS 11 后就不再采集这一项数据了,而我之前的 watchOS 10 的 SE 一代就一直有这项数据,我也是根据这个数据来计算睡眠效率和起床时间的。第二天晚上我又换回 SE 一代睡了一觉,果然“卧床时间”又出现了。
像这种问题,只有真机测试才能发现啊。
另外有一天我的睡眠时长居然有 13 个小时,而且各个睡眠阶段的时长也是超出正常值。经过一番研究我也是才知道“数据源”这个东西,原因是前一天我为了研究睡眠类 App 下载了一个得到编辑推荐的 App ,这个 App 作为“数据源”写入了一些睡眠数据,而我的代码里是不区分数据源的,也就是读取所有的睡眠数据,这也就导致了一夜里出现了两份睡眠数据。
拍电影,我只服阿汤哥,真是不要命。拍这部电影的时候已经年过花甲,不给他一座小金人实在说不过去了。全片 2 小时 50 分钟,尽管之前特意做了膀胱管理,但是还是憋了两个小时。尽管剧情上有多处漏洞,但这本就不是碟中谍系列的优势所在,看碟中谍不就是看阿汤哥在最后一秒钟拯救世界吗。
第一季是神剧,第二季全面拉胯。剧情基本忠于游戏,部分更改的情节甚至更好,游戏制作人也是剧集的制作人,按理说质量不应该下滑得如此严重,那么原因就只有一个了:主演。而游戏里 Part 2 的主演有两个,一个是 Ellie ,一个 Abby ,而 Abby 在第二季里戏份很少,所以答案就很简单了,问题的根源出在 Ellie 的演员身上。小熊女(当时 18 岁)在第一季演的还是 14 岁的 Ellie ,倒还可以胜任,但是到了第二季,小熊女( 21 岁)演 19 岁的 Ellie 就完全是灾难级的了。
又白金了一个游戏。 玩之前对这个游戏一无所知,只是看到评分还不错就下载了。刚玩起来的时候还以为是个最近出的小游戏,后来才知道是 2019 年的大厂大作。玩到中后期一边玩一边听机核关于这个游戏的播客,才知道这游戏神神叨叨的风格大有来头。
这个游戏有三大特点:没头没尾,莫名其妙,故弄玄虚。其中有几场演出还是不错的,特别是烟灰缸迷宫,太有范了!
周三上午调试安卓 App 的时候,测试机死活连不上电脑,换了四根线都不行,于是就想着买个新的,小米商城下单的话又送双肩包又送耳机,但是国补的优惠死活无法使用,各种更换绑定手机和银行卡都不行。搞了一上午还是不行,心力交瘁,最后还是在京东用国补下单了。到了晚上才发现,原来不是测试机的问题,是 Mac mini 的 USB-C 接口出了问题,FML !
安卓小哥回归,安卓端的 App 可以继续迭代了。
这周提交了 1.3.8 ,更新内容主要有:
其他市场都顺利更新上架,这次华为又出幺蛾子了。
应用审核意见: 您的应用内会员付费弹窗页面存在无关闭按钮的问题,影响用户体验。
修改建议:请提供可直接关闭应用内付费弹窗页面的功能,且关闭按钮需清晰可见。
可这个页面是个弹出的 sheet ,下拉就可以关闭的。这个版本就这样了,懒得跟审核员 battle 了,下周还会提交一个版本,在此期间只好让其他安卓用户遥遥领先一下了。
另外,1.3.6 有一个重复显示日记的 bug ,GP 上有个用户因为这个 bug 给了个四星评论。但是我在 1.3.7 修复后忘了通知这个用户,直到 1.3.8 上线后我才回复。惊喜的是,就在我刚回复完两三分钟,这个用户就更改了评论,并且把四星变成了五星。好久都没有和用户这么愉快的交流体验了。
上周说了要减少让 AI 生成的代码量,这周从两方面进行实践和优化。
我让 Windsurf 给我生成一个设计系统,包括各种字体、字重、填充色、背景色、阴影、圆角和间距,都放到一个文件里。所有的 UI 组件都基于这里的规范来进行设计和组装。
然后我在 Dribbble 上搜集了十多个睡眠 App 的设计稿,找出最符合我心中的几个,直接喂给 Windsurf ,让 AI 把图里的组件,按照之前的设计系统里的规范,一个个实现出来。组件包括但不限于卡片、标签、按钮、文字组合等。不要让 AI 把各种组件都写在同一个文件里,这样非常容易产生一个 1000 多行的文件,AI 以后搜索和修改都不方便,要每一个组件都用一个单独的文件来写。一开始写出来的组件都是硬编码的,后期需要根据实际业务调整参数和细节。
对于 HealthKit 数据的读取和显示虽然都跑通了,但是很多细节需要优化,特别是卡顿问题。为了把数据读取和存储这部分的「核心技术」实现「全部自研」,我决定对整个 App 进行彻底地重构和重写。
我的 rules 里有一条是:给所有 AI 生成的代码加上注释,所以代码里有着非常详细的注释,每个方法、每个赋值语句、甚至每个变量的声明都有对应的注释,另外 AI 针对修改历史也留下了注释。这就让我的重构工作轻松很多,我的工作就是尽量把相同功能的代码段抽离出来,实现可复用化。而 AI 在这方面就不太擅长,即使是功能非常接近、甚至只是参数个数不一样就会分别从头实现整个方法,导致项目里出现一大堆非常类似的代码。
另外 AI 对于 iOS 17 以后的新 API 都不太会,这些都需要我手动去修改。我还要一边搜集资料一边学,然后再把资料喂给 AI ,让它也跟着学。
这次聊天的小哥可不得了,我本来以为是多年开发经验的老手,没想到是个刚毕业不久的 20 出头的小伙,而且要马上入职大厂了,这你受得了吗?
小哥虽然年纪轻轻,但是拥有多个产品,最成功的一个产品,曾经一个月的收入超过 3W 美元,这你受得了吗?
小哥设计能力也远超于普通程序员,特别是最新的一个 App ,我本以为是出自设计师之手,没想到全部是小哥自己做的。特别是 App 的 logo ,不敢相信是一个程序员的作品,而且还适配了 iOS 18 的深色模式,无论在哪个模式下看都十分精美。小哥说自己之前做过很长时间的视频剪辑,又非常喜欢摄影,因此积累了审美和设计水平。
聊到技术栈,小哥目前只开发 iOS 的 App ,而且只用 SwiftUI ,谈到如何入门 SwiftUI 的时候,小哥说是学习了 Paul Hudson 的 100 Days of SwiftUI。我入门 SwiftUI 是靠 Meng To 的 Design+Code 和 RayWenderlich (现在改名成 Kodeco ) 的 SwiftUI by Tutorials和其他同系列的电子书。
聊到获取流量,我俩虽然都没有太多经验,但是都一致肯定了大 V 的影响力。他那个日入 3W 美金的 App ,就是被一个国外的知名博主推荐后才名扬海外的。但是我觉得这种情况发生的前提还是 App 首先必须要非常优秀,大 V 为了自己的名誉也不会恰烂饭,何况是这种自发的推荐,肯定是要推荐优秀产品的。而小哥这个 App 正是因为把设计和交互做到了极致,才会被海外用户推荐和认可的。
聊到是否要全职独立开发,我给小哥的建议就是「千万别」。我没有大厂的经验,所以我十分羡慕即将入职大厂的小哥,我建议他先积累经验和眼界。既然现在收入不是个问题,那就把独立开发作为副业,试着不以盈利为目标去做产品。等到做出一个生命周期相对较长的 App ,并且收入也比较稳定,而且实在是不愿意上班了的时候,再去考虑全职独立开发也不迟。
最后小哥推荐了一本书,《像素工厂》,副标题是:游戏开发背后的成功与混乱。小哥推荐的理由是:这本书讲了几个不同的游戏工作室的故事和心态,其实跟我们做 App 还挺像的,即使在各种限制和问题下寻找平衡,感觉很有共鸣和启发。
为了抢王力宏北京演唱会的门票,连筋膜枪都用上了, 结果两次抢票的机会都没成功。这次的抢票也确实惨烈,我所在的一个 100 多人的群里,最终只有 2 人抢到了票。
钱没有花在演唱会上,但是也并不会省下来。618 来了,想买剃须刀,想买新的测试机,想买新键盘,想买 Apple Watch S10 。
去年跑路的健身房被新老板接手了,为了照顾我们这些之前「被坑」的老会员,给我们特价 999 元一年。这是离我家最近的健身房了,骑电动车三分钟就能到。而且这个健身房有泳池,我去健身房主要就是为了游泳,力量训练倒是次要。新老板就是原来健身房的烧热水的大爷,老两口都是本地人,说是跟房东签了五年合同,我要不要再赌一次?
]]>库迪和京东最近搞活动,一块六毛八,咖啡送到家。还遇到两次在京东点的外卖,送来的居然是美团骑手。
这周的 AI 好像集体降智了,无论是 Cursor 还是 Windsurf ,无论哪个模型,都有点帮倒忙。
AI 堆砌的文件太长了, 超过 900 行了,我就想着让 AI 拆分重构一下,结果搞了一下午还是失败了。AI 在读取长文件还是不行,尽管我已经写好了 rule:超过 600 行就拆分,但是它不是丢失代码就是写重复的代码。还有就是将一个组件抽象成单独的视图,自己动手写可能就一分钟的事,但是好久都没亲自写代码的我犯懒,就想命令 AI 来完成这个工作,结果也是做不好。
看别人用 AI 各种风生水起,很是羡慕。于是为了更高效地使用 AI 辅助编程,我看了几个经验分享视频,特别是主打零基础编程的教学视频,我想学习从这些人的视角如何使用 AI 。一开始我还以为这些是把你靠标题骗进来卖课的,但是你还真别说,还真不是,有的视频是真的有干货,我也是学到了几招。
另外,Cursor 的设计总监也分享了 12 条使用技巧,网上有很多人发布了解读这 12 个技巧的视频,感兴趣的可以去搜一下。
另外再次声明,我用的是 Windsurf ,不过很多技巧和 Cursor 是通用的。
我也看到很多开发者在抱怨 AI 编程越来越不好用,有些人是因为代码不可控,有些人是因为 AI 总是瞎改代码,有些人是因为失去了自己动手敲代码的快乐。我也有同感,所以我准备以后减少全自动生成的代码量,业务的设计部分可以和 AI 交流,实现的部分多用 Tab 补全。
这次聊天的小哥(本来以为是老哥,没想到比我还小一岁)是个万金油选手,入行十多年,开发、运营、投放方方面面都做过,经验十分丰富,一个半小时我几乎没怎么说话(也确实插不上),都是他在滔滔不绝传授经验。
这个开发者虽然也是做 App 的,但是和我是完全不同的路线,他的收益全是广告收入。他自己也直说他的 App 不为自己服务,也不为自己创造情绪价值,就是为赚钱。但是他的 App 不是那种粗制滥造骗点击的,都是有真正使用价值、能解决某个需求痛点的产品。之前还以为他是老板,雇佣其他开发者做产品,没想到他十多个 App ,只有他自己一个人在打理。
以下是和他交流后我的感悟,也有他自己爆出来的金句:
最后的推荐环节,小哥推荐了范冰的《增长黑客》,他在 10 年前读了这本书,里面有些东西最近才领悟到。
为什么这篇周记晚发了一天,因为周日去了哈尔滨,周一才回家,所以周记的日期标题是截止到 0519 (不知道有人是否发现了)。
上一次去黑龙江还是 22 年前,而这也是我第一次去哈尔滨。此次出行的目的是演唱会,这是我人生第二次去看演唱会,还是周华健。5 月 17 日的忘记抢了,幸好又加场了 5 月 18 日的,顺利抢到。
这次的主题是少年到奇幻之旅 3.0 ,上一轮演唱会的主题是侠客少年,歌单大部分是相同的,不过是演唱顺序的变化而已。一开始我左边的秃顶大哥连着跟唱好几首,我寻思这大哥可以啊,应该是铁杆歌迷。但是大哥不会跟唱《难念的经》,粤语歌,我理解。通过我的观察,大哥和周围其他的人对于华建 2000 年以后的歌都不会唱,像《雨人》、《花旦》、《少年》只有我一个人在跟唱。之所以不远 750km 去哈尔滨看演唱会,有相当一部分原因是我知道这次的歌单里有《花旦》这首歌。
不过这次的演唱会比较失望,不是在周华健身上,而是在整个演唱会编排和场馆环境。相较于去年的在北京五棵松看的那次,这一次完全是大大缩水,没有嘉宾,没有点歌环节。哈尔滨的这个体育馆比起五棵松小太多了,导致背景屏幕的尺寸大大缩水,《飞飞飞飞飞》这首歌的动画都显示不全,屏幕清晰度也不够。而且最最严重的是,因为体育馆高度不足,导致线阵音响挂得很低,把直拍周华健的副屏幕都给遮住了!本来我还想着接下来的沈阳站也去看,但是在网上一搜,辽宁体育馆和哈尔滨的体育馆差不多,就打消了再去沈阳站的念头。
本来订的酒店就在体育馆对面,仅一条马路之隔,想着看完演唱会就不想折腾了,就近休息了,但是这个酒店又贵又破,唯一的优点就是离体育馆非常近。老婆提议换一个远一点的好一点的酒店,反正可以坐地铁去,于是我就换成了中央大街地铁站旁边的一个酒店,从出站口出来只需要走 100 多米,这个酒店不仅规格和服务要好很多,加上优惠券只需要 106 ,比之前的便宜很多。幸运的是,还给我免费升级了房型。本来周一的计划就是逛一下中央大街,这样睡了一宿好觉,出酒店下楼直接逛了。
周一起床后就去了索菲亚大教堂,但是不巧赶上了大逆光,没能拍到好照片。然后简单逛了下中央大街,溜达到松花江边。在附近居民区里吃了一顿 98 元俄罗斯套餐,最后买了一堆红肠和巧克力糖果就回家了。
在回家的高铁上,终于把其他开发者推荐的《幕后产品》这本书看完了。整本书读起来行文太正式了,太官方了,而且还有很大篇幅是关于整个团队的管理和沟通,还有来自于高层的业务架构,这些是我没有经历的,自然没法产生共鸣。但还是学到很多,特别是洞察用户心理和如何吸引用户付费,下面是我觉得对我特别有帮助的要点:
去年有一个记录是:连续五个月没点一次外卖。但是自打京东外卖入局后,最近狂点外卖。前段时间看了《逆行人生》,我就开始搞不清楚,从骑手的角度出发,这个外卖究竟是要多点一些还是少点一些才好。
这周还是在用 Windsurf 写新 App ,渐入佳境,心情好很多。
经过不断的调试和测试,终于把睡眠统计的基础功能做出来了,和苹果官方的健康应用以及其他几个带有睡眠统计功能的 App 的结果统一了。这些功能难度不高,但就是测试周期比较长,必须睡一晚才能出结果……而且为了测试各种情况, 还需要刻意打乱自己的睡眠节律。
另外,有很多细节真的是必须读官方文档才知道,就算是把文档喂给 AI 它都有时候不能领会你的意图。AI 还有时候会把不该合并的合并,不该过滤的过滤,review code 也着实累人。
通过调研其他健康类 App ,我发现获取并分析数据可能不是最麻烦的,麻烦的是引导用户结合 Apple Watch 来使用 App ,还有就是向用户解释各种指标的意义和范围。
在 Apple Ads 投放将近一个月,最终以失败告终,至少我认为是失败了。
整个投放分为三个阶段,第一阶段是国内外一起投放,第二阶段只投放国内,第三阶段只投放美国。 第二阶段的结论是国内的单次点击价格比国外高,但是下载量也是最大的。第三阶段的结论是美国的转化率最高,高到 DeepSeek 说数据不正常。
我设置的是每天消费上限是 100 元,所以一共是 2000 多,现在看来是完全打水漂了,下载和付费并没有这些投放有任何起色。这些钱我可以买几个游戏,买个新显示器,买两个新键盘,或者给我的仓鼠买几套豪华笼子的,但是这就是学费,我学到的就是:以后不投放了。
半个月前,我在小红书上发现了一个 App ,简直是极简日记 1:1 复刻的,于是我就在 App Store 后台提交了申诉。苹果官方很快就立案了,但是对方直到昨天才回复,真令我大受震撼。
抄袭证据确凿无疑,大家可以自行比对,我只挑出来几个页面:
但是对方始终无视文案、功能和 UI 的像素级复制这一事实,一直通过偷换概念式狡辩,居然说是苹果官方控件元素,还说是通用布局和功能……
对方的第一次回复:
My app fully complies with Apple's App Store requirements.
My app's code is entirely written by me. From the source code to the program structure, all elements including buttons, colors, fonts, and icons are native to the iOS system, without any third-party components.
Regarding the alleged page similarity issue, if this argument stands, does it mean that no one else can write similar text or descriptions? Following this logic, since all messaging apps in the market have similar chat page layouts and social feed layouts, does this mean others cannot use similar layouts?
Regarding the "mdd" file format, in my case it stands for "mydaydiary" (my day diary), which has a completely different meaning from their "mdd".
I will continue to update new versions.
对方的第二次回复:
1.我方将于今日重新提交上架申请
2.关于对方说的持续剽窃我对方原创内容获利,我方并没有剽窃对方任何原创内容,从元素 图标 按钮 字体 颜色 我都是用的苹果官方自带的元素组件
3.后续不再回复
对方的第三次回复:
1.我方暂时下架是因为对方有组织的对我方 APP 进行差评行为,我方后台有记录,且我方有申诉恶评并且成功的记录。
2.我方今日将提交新版本覆盖更多功能。
3.对方一直说我方抄袭,工具栏,文案,弹出菜单,可是这些都是常用的基本控件和文字,更是作为日记类别通用的功能,市场上的很多 APP 都是类似的功能。
4.后续不再回复。
看完这些邮件回复,我都气笑了:
我在和对方邮件 battle 的同时发现他们还搞了个骚操作,自己主动下架了 App 半天,说是避免差评。你也不看看你一共才 5 个评分,置顶的好评还是自己刷的,就这评分才 1.8 ,还说是我们引导了差评,笑死。然后他有上架更新了两个版本,把之前的评分都重置了,自己又刷了一个五星好评上去,但是过了一天评分又掉到了 3.0 ,置顶的评论还是个一星差评。虽然又更新了两个版本,但是上面图里的抄袭细节仍然没有更改,不断在无视和挑战苹果审核指南。
也有人说这在「法律上」这不是抄袭,但这样做,便是对吗?
之所以第二期就选择这个小哥,是因为我在他最近的动态里也发现了和我差不多的心境,我就主动约他一起聊一下。
这位小哥本人拥有异于绝大部分程序员的艺术家气质,兴趣广泛,作品也是精美和有趣。独立开发并不是他的主要收入来源,而且他在独立开发之前有了一笔存款,就像古代欧洲的艺术作品大多出自于富足阶层一样,我猜这就是他的作品与众不同的主要原因。
所以啊,千万不要一冲动就辞职去干独立开发!
以下是和他交流后我的感悟:
从这期开始,我会让对方推荐一个东西,可以是一本书、一个生产力工具、或者一个生活好物。这次小哥推荐的是一本书,尤里·莱文的《做难而正确的事》。
如果一天 24 小时都有监控计时器的话,那我最近花费时间最多的不是在代码上,而是在仓鼠上。每天都在清理笼子,规划笼子内的布局,自制挖掘屋和管道,买各种玩具、零食和垫料,我甚至想买一个自带计数器的跑轮了。这小东西养得都胖成球了,每天都看不够。
20 美元 !就差 20 美元!只要收入再下降 20 美元,我这个月就不会被 RevenueCat 扣款了,然而我还是被扣款了 25 美元!亏大了啊!
没有更新现有的 App ,还是在调研和写 demo 。
看了好多 HealthKit 的文档和 blog ,最后发现还得是自己搞清楚 API 才能更好地指挥 AI 去干活。
终于给新 App 新建文件夹了。先是写了个 README ,写明了整体需求、数据模型、所需要的库,尝试让 AI 一口气生成一个框架,结果酿成了一场灾难。生成代码倒是很痛快,一会就按照 README 把整个 App 的架构都弄好了,但是根本没法 build 。我花了两天,各种 battle ,最终也没能跑起来,只好放弃了,删掉后重新写。
至此,我真心佩服那些「零编程基础」就能做出 App 并上架的人,他们虽然不懂开发,但是他们更懂如何驾驭 AI 。
重新建立文件夹后,我放弃了让 AI 一口气写出一个 App 甚至一个页面的幻想,我让它一步步来写,我确认没问题后再写下一步。
上周的周记里我说要每周找一个独立开发者来聊天,没想到周记刚发出去就立刻有一个独立开发者私聊报名,于是就约好了第二天聊一下。由于这是第一次闲聊,事先也没做任何准备,聊起来也是肆意放飞,结果一小时根本聊不够。
这位小哥做的是垂直领域的作品,我对这个领域是一无所知。虽然需求很小众,但是收入颇丰。小哥夫妇二人全职在做独立开发,有意思的是两人并没有在家工作,而是在外面租了一间办公室,每天两人就像上班一样。这样生活和工作完全隔离的做法我也想过,最简单的就是很多开发者喜欢的:去咖啡店办公,但是家里太舒服了,设备也齐全,我就懒得动弹了。
通过这次闲聊,我发现了他成功的几个因素:
正好我最近做新 App 的时候脑子里总是有些混乱,有些关键环节想不通,不知道该如何解决,在他的推荐下,我下单了几本产品经理方面的书,有电子版的我就直接加入书架。悬疑推理小说先放一放,得先学习一下如何做产品了。
看了三个电影:
我在家基本上就是一直喝咖啡和气泡水。之前一段时间喝的是元气森林的维 C 橙味苏打气泡水,而且好久都没生病了,我就给自己一个理由是:维 C 补充得很足。最近补货的时候,发现元气森林新出了一个:茉莉青柠味的苏打气泡水,就下单了一箱尝尝。味道还不错,不甜,果味很轻很淡,非常接近无味的苏打水。
这周一句代码都没写,一方面现有 App 没有任何更新,另一方面对于新 App 的调研也都是靠 AI 在写 demo 。
这周三针对上周出现的那个 1:1 复刻极简日记的 App ,我在 App Store 提交了一份投诉。第二天,苹果回复了邮件,算是立案了吧,我又回复了这封邮件,补充了一些图片对比和细节说明。但是过了三天了苹果和对方都没有下一步的回复,而那个 App 居然还更新了一个版本。
因为是几乎每个页面都是镜像复制的,我就不一一列举了,就挑三个比较离谱的例子。
查了一下这个 App 的公司,是一个专门做外包的,苹果开发者账号下面的 App 之前也大都是服务于企业的 App 。为什么抄袭极简日记,我大概也能猜到,可能就是前些日子我晒了一下极简日记安卓版的收入,但是对方的 App 目前似乎还没有上架国内安卓市场。截止到这篇周记,对方的 App 评分是 2.0 ,我在七麦上看到有个开发者朋友还评论:99%抄袭别人的也能上架么,行业毒瘤!可惜这句话在 App Store 里看不到。
关于我在周记里分享数据这个事情,上次独立开发者线下聚会的时候我也和其他人聊过,之前我是觉得我这点数据应该没人看得上,即使看得上做一个同类产品来竞争也没问题,但是镜像复制就太过分了。
这周在 AI 的帮助下,学习了一下 MapKit 和 HealthKit ,整个过程是 AI-WWDC-AI 。 我一开始上来就让 AI 帮我实现我想要的 demo ,但是只能实现基本效果,复杂一点的就不行了。然后我就去看 WWDC 的视频,发现 AI 写的代码都是 iOS 17 之前的,也就是说 iOS 17 之后关于 SwiftUI 的新 API 它都不知道或者不会使用。我把一些 blog 和官方文档喂给 AI 后再让它按照最新 API 来实现,写出来的 demo 就好了一些。
再就是我才知道 MapKit 在国内使用的话有很多阉割和限制,我也被迫大幅缩减功能范围,先把最简单的功能做出来再说吧。HealthKit 倒还好,一两句话就让 AI 生成了一个还不错的页面。
在调研睡眠 App 的时候,我发现国外的 App 是真敢干啊,最有名的两个 App 不付费就不给用,paywall 连个关闭按钮都没有。
投放了两周了,第二周我去掉了中国大陆,就只投放第一周里展示量和下载量比较高的几个其他国家,但是现在来看无论是下载量还是单次点击付费都不如国内的数据,所以准备下周只投大陆再试试。
对于各种指标我是一无所知,所以我导出了几个报告,都交给了 DeepSeek 和豆包帮我解读( DeepSeek 一开始拒绝解读,不知道为什么)。按照 AI 的建议,我停掉了几个国家和关键字的投放。
113 个小时,终于肝完了《刺客信条:影》的白金。我最近的精力完全被这个游戏支配了,后期就是为了完成各个任务而玩,基本没有什么乐趣了。玩完了刺客信条,玩了一下《人中之龙 7 外传》的开头,对我刺激太小了。正好赶上《地平线 5 》在 PS5 上发售,犹豫了一晚上,第二天还是激情下单了。之前就是为了这个游戏而买了 XSS ,但是 XGP 里的版本只有游戏本体,没有风火轮和拉力赛,这次为了更好的体验就在 PS5 直接买了终极版。
最近没有什么感兴趣的新键盘,就买了一盒 box 白 v2 ,换换手感,咔哒咔哒的声音敲起来很不错。不过也只能白天用,晚上孩子睡了后就只能换成其他静音键盘了。
上一篇周记对于独立开发者线下活动只是简单地记录了一下,这周本来是想详细地写一下这个活动的细节,但是思量再三,还是放弃了。
上次的活动让我看见了自己和其他优秀独立开发者之间的差距,再加上自己的 App 处于下降周期,这让我的焦虑又复发了。于是我靠游戏来逃避,靠垃圾外卖来排解,靠刷手机来寻求多巴胺的刺激。
在拿到《刺客信条:影》的白金的那个晚上,我向 DeepSeek 求助,我把最近的想法、情绪和情况都向它倾诉,但是它的答案并没有什么让我意外的,翻来覆去无非就是打破认知和延迟满足这一套。
我在小红书和抖音上也看到过很多分享独立开发经验的开发者,要么是站在一块白板上写写画画,要么是正襟危坐侃侃而谈,我一般见到这样的视频会直接划走。但细想一下,我和他们又有什么不同呢?好像也没有,可能唯一的不同就是我不卖课。我没有大厂的经验,没有出众的技术,没有营销的天赋,没有运营的耐心,独立开发能走到今天大部分还都是运气。无论从哪个角度来看,我都没有卖课的资格。
朋友也曾多次说过,我的周记有点过度分享了,这才导致了竞争对手和抄袭对手的出现,我也承认,所以可能以后周记的内容会有所调整。
这周我突然冒出一个想法:我打算每周和一个独立开发者进行视频聊天。通过上次的活动我发现微信里的文字聊天是没法和面对面交流相提并论的,社恐的我本来是连任何电话都不愿意接听和拨打的,但是我想是时候突破一下舒适圈了。当然,聊天不白聊,我想法很简单,就是唠一小时,发个 200 元红包。我知道这 200 元可能不及一些开发者的时薪或者咨询定价,能聊就聊,交个朋友。我也不是纯咨询,可以聊生活聊爱好,对于我自己来说来说总比无效的广告投放要好多了吧。
]]>挺充实的一周,本来以为会没啥事干,但是做来做去也做了不少工作。
另外,我在小红书上发现了极简日记 iOS 被 1:1 复刻了,这周还没功夫处理这个事,只是发了个笔记吐槽了一下。下周打算在 App Store 提一个申诉,然后在下一篇周记里写一下这个事的细节。
更新了 v3.2.2 ,主要改动有三点:
在 Windsurf 的帮助下,加入了 Onboarding 。本来是想实现和 iOS 版一样的实时动态更新时间,但是怕自己搞不定,就选择了最简单的方案:把商店截图显示一遍。最开始的做法非常简单和原始,把商店里的截图图片通过 ViewPager 一张张地展示,后来发现这样做有几个问题:
所以就只好把图片里的各个部分抽出来,通过代码来进行不同布局,这样每张图片标题的本地化也解决了。和 SwiftUI 类似,Claude 对 Jetpack Compose 的使用并不熟练,有些布局问题我还是自己看了下文档后,手动修复了才搞定。
加入 Onboarding 后,不小心把国内安卓版第一次启动的隐私政策弹窗给屏蔽了,提交到 HMOV 后,小米和 Oppo 居然也都通过了,但是华为和 vivo 都没通过,好在修复后再提交就过了。
另外针对极简时钟在 Google Play 上一直下滑的问题,我导出了各种数据都交给了 DeepSeek ,让它帮我分析一下原因,给出的结论之一就是广告导致用户体验很差。所以我就做了两个改动,一是新用户三天内不出现开屏广告,二是取消了对激励广告的引导弹窗。本来我是想停掉所有广告的,其实目前 Admob 的收益可以说是可有可无了,但是我觉得先别太极端,逐步观察一下再说。
这是 w2solo 社区举办的第三次线下活动,但我却是第一次参加。本来应该是上周举办,但是因为天气原因拖延一周,还好这周六的天气非常好,春游+聚餐的体验非常棒。这次终于和多年来一直在线聊天的各个独立开发者见面了,还结识了很多新朋友。
先是在奥森走了一圈,上一次奥森还是十年前。记得那时候在找工作,四处面试不顺,坐地铁就在奥森下车了,进去随便走了一会散散心。晚上的聚餐是在一个生态园里面,很有意思的一个地方,和开发者们话题不断,聊得根本停不下来。
这周读完了《消失的 13 级台阶》,前五天读了一半,周末在高铁上又读了一半,最后结尾在家里的阳台上读完。
之前读的都是本格派推理,所以想换一下口味,于是就选择了社会派推理中好多人都推荐的这一本,还是江户川乱步奖的获奖作品。整本书的重点的确不是在解密和破案,而是一直在探讨死刑和司法制度。
这本书还被拍成过电影,但是年代太远了,是 2003 年,我就没找资源去看。
刺客信条主线通了,100 小时,但是还有很多奖杯没解锁,估计还得需要 20 小时左右才能达成全成就,太肝了。
]]>本来这周六是北京的开发者群友聚会,但是因为 12 级大风预警而取消了,顺延到了下一周。
上一篇周记在公众号的阅读量是 13K ,一个星期下来涨了 500 多关注,完全出乎意料。之前的月度数据总结阅读量都很平平,就连年终总结才只有 2K 的阅读量,就很奇怪。
这周更新了三个 App ,除了极简日记其他都是很简单的小修小改。这周的感觉很奇怪,明明做了不少工作,但就是感觉没花多少时间在代码上。
给 Paywall 里面加入了 App Store 里的用户评价,希望能提高一下转化率。
这些用户评价都是 App Store 里的,但不是动态读取的,都是硬编码在 App 里的(当然选的都是五星评价啦)。一开始我还想每个支持的语言版本里都挑出五个来滚动展示,但是最终发现除了简体中文和英文,其他语言根本没有那么多评价,更别提适合满足的五星评价了,所以最终就只加入了简体中文和英文这两种。
诶?要不我把安卓那边的评价也给加进来?那边各个语言的评论也不少啊。
应用户的要求,加入了统计和图表。
Swift Charts 推出快三年了,我终于有机会用上了。本来是只想用几个卡片简单地展示数据,但是整个页面太空了,就加入了柱状图。经过我的实验,Claude 对于 Swift Charts 的了解还停留在刚 iOS 16 ,iOS 17 之后的新 API 就都不知道了。
先做了最简单的一个版本,看看用户反馈如何,然后再丰富这里的功能。
通过这个版本,我学会了 Swift Charts 的基本用法,以后就可以应用到极简时钟和 Nut Goals 的统计功能里了。
看完了《黑猫馆》。这本书读起来还比较有成就感,就是我发觉到了叙述中的不对劲,而且关键人物的身份也猜对了,最后一口气大揭秘还是不错的。
《谍网追凶》,这个电影放出预告片后我就十分期待,程序员复仇记简直太对我胃口了。演员阵容也十分吸引我,男主角拉米之前就因为《黑客军团》出名,这次再演程序员应该驾轻就熟。
我也是买了上映后的第一场,离我家最近的电影院,骑电动车三分钟就到了。而且又是包场看电影,周五上午整个影院只有我和一个工作人员。
但是,这片子也太烂了!!!不敢相信这是 2025 年的电影,真的是要啥没啥,没有悬疑,没有爽点,没有反转,没有逻辑!好多年我都没在电影院里看过这么烂的电影了,现在豆瓣评分 6.2 我都感觉给太高了。
这周的大部分时间还都花在了刺客信条:影,目前已经 60+ 小时了,但是主线剧情还没打完一半……这周更新了一个版本,跑图更简单了,但还是有很多 bug 。
每天早中晚打开三次,熟悉的罐头味越来越浓,剧情什么的已经不重要了,就是为了收集装备和看风景。
这一作的地图范围也太小了,只涵盖了日本的近畿地方,以后出 DLC 的话,怎么着也得把富士山给做进来吧。
这个游戏挤占了我很多影视剧的时间,就连我最喜欢《黑镜》第七季都只看了前两集,而下周《最后生还者》第二季又开播了……
独立开发不易,但道哥飞蛾投烛。
感谢各位支持,助道哥飞黄腾达。
欢迎赏脸阅读我的独立开发周记,如果你觉得这一篇写得还不错的话,以下回应会令我无比开心,开了又开:
也欢迎大家能与我交流关于独立开发的一切,更欢迎大家下载使用我的 App😄。
最近有两个 App idea ,和 DeepSeek R1 交流了很多,但效果不佳。虽然核心用途和流程已经确定了,但是 AI 给出的整体框架和交互方式都没有令我满意,反而越聊越复杂,很多功能我根本无法实现。DeepSeek 丝毫不听我的劝阻和限定,一直在发散,感觉应该换一个 AI 再试试了。
本周基本没有工作。
提交了一个 Nut Goals 的版本,本来是为了修复通知的 bug ,但是又引出了另一个 bug 。
极简日记 iOS 继续推进 demo 数据,增加一些场景的展示。
Windsurf 这个周期月还剩 8 天就重置了,但我还剩 360 多个 Credits ,得抓紧用了。
这个月极简日记异军突起,必须单列出来。
得益于那一波泼天的流量,极简日记这个月的下载量暴涨。别看 GP 下载量的增长也有将近 80%,其实总下载量还不到 200……极简日记在海外地区几乎没有什么下载量。
这个月的收入增长也都来自于极简日记,国内安卓市场的收入里,极简日记的从 2 月的 32.8% 一下子就升到了 82%!多亏了这一波泼天富贵,给安卓小哥的分成首次突破 1 万元。
除了 app ,这个月也有了三个额外收入,是三个 100 。
作为自由职业者,很多大佬都建议收入要多样化,开源节流。这个月新渠道的收入虽然不多,但是意外探索到增加收入多样化的可能性。
家里新养了一只仓鼠,有三个星期了,这段时间里对于仓鼠的丰容投资已经超过仓鼠身价的十倍😂。升级笼子、鼠粮、浴沙、尿砂、各种垫料,我的小红书信息流大部分都是仓鼠了。每天照顾这个小家伙,自己一个人在家也稍微有趣了一些,虽然这小家伙白天基本都在睡觉。
这周看完了东野圭吾的《假面山庄》,感觉一般般,一开始是被小红书上的推荐种草而下单的,读完有些失望。而且我发现,国内针对于这些悬疑推理小说,都把书名给和谐了,比如绫辻行人的馆系列,国内都是《 XX 馆事件》,但其实原著名字都是《 XX 馆的杀人》,这本《假面山庄》其实原名是《假面山庄杀人事件》。
独立开发不易,但道哥飞蛾投烛。
感谢各位支持,助道哥飞黄腾达。
欢迎赏脸阅读我的独立开发周记,如果你觉得这一篇写得还不错的话,以下回应会令我无比开心,开了又开:
也欢迎大家能与我交流关于独立开发的一切,更欢迎大家下载使用我的 App😄。
先说一个期待已久的事情,花了将近一年时间,YouTube 的广告费终于攒够了 100 美金,就等着打款了。
本来这篇应该是 3 月的数据总结,但是还有 3 月还有一天才结束,而收入和下载量的结算还需要额外一天,数据总结就延到下周了。另外这个月的收入多了两个来源,虽然不多,但也算是开源了。
这周花了一天,在 AI 的帮助下,提交了一个版本:
第一个功能交给 AI 很快就写好了,主要是本地化的工作花了一天的时间。针对国内安卓市场的支付页面之前只有中文,各个字符串都是在代码里写死的,这次索性就趁着加入繁体中文就把所有的文案都改成读取字符串资源文件了。另外为了模拟微信登录也花了好多 Credit 和时间,不知道安卓小哥用了什么黑科技,模拟登录后就是死活无法再进入支付页面,最后只好自己修改状态代码来模拟了。
这个版本是我第一次提交 64 位的 apk ,提交之前问了一下 DeepSeek 是否还有必要提交 32 位 apk ,回答是完全没有必要了。但是提交后,所有的渠道信息又都失效了,下个版本再改吧。
周日闲来无事,就从 backlog 里挑出来一个:加入一个每个时钟主题及其设计师展示的页面。这个想法的最开始是想在切换时钟主题时,在每个主题的预览下面加入设计师的名字,但是感觉那样会有点乱,就统一放到一个页面里了。希望这个页面的内容会越来越丰富。
更新极简日记的时候在 GP 上看了一下极简时钟,下载量惨不忍睹。自从去年 9 月开始就进入了一个小的下降周期,而从去年 1 月开始就是一个大的下降周期,从日下载 3K+ 到 300+,我到底做错了什么?果然是不经常更新就会这样吗?
GP 上是我唯一一个每周都回复用户评论的平台,但是看来也没有任何效果。极简时钟在 GP 上的日下载量对于我来说底线是 1K ,但是最近却一直跌破我的底线😭。
iOS 19 都快出了,我这周才第一次接触了 iOS 15 就推出的 Canvas 。我发现因为一直在维护手里这几个 app ,很多 iOS 今年来推出的新特性我都没去了解,所以就给自己安排了几个每周 todo 。
其实这些任务很有可能完成了一个就顺便完成了其他,比如这周我看的是 SuCodee 的这个视频,# SwiftUI Orb Animation,一开始是模仿视频写了个气泡效果,后来是在 AI 的辅导下通过 Canvas 写了液体流动的动画。至于 WWDC ,看了 WWDC21 和 WWDC22 里的关于 Screen Time API 的两个视频。
周日上午,突然收到了一个美元的扣款短信,仔细一看是 RevenueCat 。这是第一次被 RC 扣款,去后台看了一下,上个月还没达到扣款条件,就这一个月连续的增长,一下子就突破了免费额度。
但是,我感觉增长已经触顶了,因为 MRR 有两天多没有增长了,而 Revenue 甚至还有所下降。
接下来的每个月,又怕他扣得多,又怕他扣得少,更怕他不扣钱。
这周看完了《钟表馆事件》,可能后面读得有点快,而且总是断断续续地读,我感觉这部公认的馆系列最佳之作并没有那么好,比起《水车馆》和《人偶馆》肯定是要好,但是我感觉不如《迷宫馆》。人都杀光了,嫌疑人范围太小了,我甚至都想会不会是最不可能的那个人了,结果也没有超出我的预期。
这周开始玩《刺客信条:影》,买的是实体盘,比数字豪华版还便宜 200 多,以后卖掉还能回回血。刺客信条系列我只玩过《起源》和《奥德赛》。特别是《起源》,让我对古埃及的历史文化产出了无比浓厚的兴趣,看了很多这方面的文章、纪录片,也听了几个这方面的播客。而《奥德赛》则是陪我度过了疫情那段岁月,每天最舒服的时间就是一边听播客一边做任务。神话三部曲的最后一个《英灵殿》,我只玩了一个开头就放弃了,《幻景》更是没去了解过。这个《影》我期待已久了,当初玩《对马岛之魂》的时候我就感觉这游戏就是日本背景下的刺客信条,导致现在操纵小江的时候总有一种对马岛的既视感。
独立开发不易,但道哥飞蛾投烛。
感谢各位支持,助道哥飞黄腾达。
欢迎赏脸阅读我的独立开发周记,如果你觉得这一篇写得还不错的话,以下回应会令我无比开心,开了又开:
也欢迎大家能与我交流关于独立开发的一切,更欢迎大家下载使用我的 App😄。
我以后再也不晒收入了,特别是在独立开发者群里,纯纯是小丑行为。
前些天群内大佬纷纷报出了自己的收入,有日入一千美元的,有日入五位数人民币的,还有月入 50 万的,还有一个项目就 300 万的……
提交了两个小版本的极简日记 iOS ,终于是加上了 Mixpanel 的事件统计,另外还有:
还花了两天在构造 demo 数据上。因为我要给极简日记弄一套新的商店截图,但是日记类 App 在数据展示上比较麻烦,我既不想用自己的数据去演示,还想要尽可能体现这个 App 的特点,所以就需要自己构造一些专门用来展示的数据。展示数据不仅仅是一天的数据,还要包含各种标签、表情、图片,还要涵盖各种生活场景,以及多年里的同一天(每年今日),一个月里的日历展示,还有多语言的本地化。
极简日记 iOS 在七麦上的状态显示是已经处于被清榜状态已持续 340 多天。我给苹果发了封邮件问了下这种情况,20 分钟就收到了回复,但是内容也很官方,就说是不对第三方的数据提供支持,另外说这个 App 的搜索结果处于正常状态。我又回复了一封,说明了我这个清榜状态开始于一次价格调整,我想知道是否更改价格会对 App 的搜索结果产生影响,再次得到的答复也是否定的。
App Store 搜索结果不与更改 App 价格相关,是基于由我们的搜索算法所确定的多重因素。对于搜索而言,权重最高的方面为 App 的名称、关键词和公司名称。
前面刚说完不再晒收入,但是这个还是有必要说一下。
2024 年的年终总结里写到(年终总结链接),当时的 MRR 是 500 美元,所以就想花一年的时间达到 600 美元。2024 年绝大部分的 Flag 都没达成,所以在收入上就没敢立一个大目标。但是没想到,还不到四月这个目标就达成了,果然还是保守了。
这周读完了《罗宾计划》,像洋葱一样层层剥开的一个故事。虽然买的是二手书,但是读完了才发现居然是 2025 年 1 月出版的。
搜书评的时候,发现这本书在 2008 年被改编成一个同名日剧 SP ,时长 2 小时,其实也就是个电影了。因为年代久远,我找了半天才找到资源,而且还是不到 720P 的 rmvb 。刚看到开头的三亿日元事件,我就立刻想起来,这片子我当年在大学里看过!但是早都忘了,只有开头这一段黑白镜头的模糊记忆。可能是考虑到时长,电影里删掉了一个重要的女性角色,一些配角的戏份也都有缩减和更改,不过整体上还是还原了原著。在看之前,我就特别期待书里的秋间幸子在电影里的样子,果然符合我的预期,很是满意。
周五的时候看天气预报,北京周末的天气还不错,就决定一家三口去春游,逛两天公园。
在北海公园的时候四处都是穿着格格服装的女生(也有个别嬷嬷),但是我们在颐和园逛了半天也没发现一个。后来才发现原因,我们在北海公园的时候已经是下午了,而我们到颐和园的时候还是上午,格格们都还在做妆造呢。
记忆里这应该是我第一次去景山公园,而上一次去北海公园和颐和园也是十多年前和苏老师一起去的。真是不服老不行啊,只是半个北海公园就累得不行了,两天下来脚丫子感觉都快碎了。
独立开发不易,但道哥飞蛾投烛。
感谢各位支持,助道哥飞黄腾达。
欢迎赏脸阅读我的独立开发周记,如果你觉得这一篇写得还不错的话,以下回应会令我无比开心,开了又开:
也欢迎大家能与我交流关于独立开发的一切,更欢迎大家下载使用我的 App😄。
周五晚上突然产生了一个 App idea ,搜了一圈 App Store ,没有类似的,满心期待。
周六花了一天调研,晚上用 AI 写了个 demo 。躺在床上,兴奋到睡不着,满脑子都是各种酷炫的交互和功能。
周日继续完善 demo ,但是遇到了很多困难,花了很多时间也没能解决最核心的交互问题。失望至极,再加上看到其他开发者上架了精美的新 app ,心里更是难受。
用户反馈 iCloud 无法同步,一开始我没当回事,以为又是 iCloud 抽风了。但是获取到仔细的反馈细节后,发现事实可能与我的想法不一样。旧手机上有所有的数据,新手机上第一次同步后有很多近期的数据无法同步,而且两个手机新建的数据都不能互相同步。
我在本地也重现了这个问题,就很奇怪,为什么只有近期的数据不能同步,但是之前的都可以?在我问了几轮 DeepSeek 后终于发现了问题原因,这一次 DeepSeek 立了大功。
前些日子我在 CoreData 里新加入了一个 Entity ,AssetCache ,用来存储图片的缩略图,当做缓存来用。这次这个不能同步的重要线索就是,数据就是从加入这个 AssetCache 之后才不能同步的。而我当时也确实在 CloudKit Database 里将这个新的 Schema 部署到生产环境了,CoreData 和 CloudKit 的代码在 App 里很久都没有动过了,按理说不应该出现这个问题。但是经过 DeepSeek 的分析,原因还应该是在 CloudKit Database 的设置这里。
在我无计可施、马上就要向肘子哥请教的时候,我又仔细检查了一下,终于发现了罪魁祸首,在 Development 的环境里,AssetCache 居然有一个字段( Field )没有被部署到生产环境!可我当时明明记得是把所有的选项都勾上了然后部署的,不知道为什么又会冒出来这个新的字段,而就是这个问题导致了同步失败。事后回想起来,之前准备部署 Schema 的时候,新创建的 AssetEntity 就没有刷新出来,直至我 App 都审核上架了才出现在 CloudKit Database 里(没错,我又一次在 App 更新后才想起来没有部署新的 Schema )。那一次就感觉不太对劲,没想到时隔一个半月才通过用户发现了这个问题。
除此之外,还更新了一个版本 v1.8.15 ,主要是优化了一下会员功能页面,修复了两个 bug ,其中一个 AI 死活找不到问题所在,还是我最后一行代码解决了。
还写了好多重构代码,花了一整天的时间,好久都没有这么累了。为了接入 Mixpanel 和埋点,重构了好多页面结构,吭哧吭哧写了好久,提交后才发现埋点忘写了……下个版本再说吧。
更新了 v4.9.1 ,加入了一个用户反馈的需求:整点报时增加免打扰时段。这个功能交给 AI ,瞬间就写好了。
另外也是花了好多时间在重构设置页面上。这个页面是我自己实现的导航结构,我就不明白为什么不用系统原生的 NavigationView ,我只是依稀记得当初做的时候有个不能用系统原生的理由,但是我在就忘了那个理由是什么。
我就像电影里的失忆病人一样,反复去做一件事,做完就忘。这次我就用 NavigationView 重写了整个页面,也没发现有什么问题啊,页面结构更符合逻辑,而且切换动画也比我自己写的要好得多,真是搞不懂为什么我当初就没这么写呢……
就在我要一键提交的时候,我才发现了原因:这个页面在浅色模式下是一切正常的,但是在深色模式下就面目全非了,原来这个页面只有浅色这一种设计,包括里面的所有文字和自定义控件,如果要适配深色模式的话,不仅需要改写大量的代码,还要进行大量的测试,特别是对于导航栏的魔改,这就不是一两天的工作量了……索性我就先把这部分强制使用浅色模式,先提交再说,以后慢慢改。
提交了 v1.3.4:
国内安卓市场全部顺利更新上架,但是 Google Play 拒绝了一次,还是订阅信息不符合要求,改了一版后最终也过审上架了。最近总能看到 Google Play 的开发者账号被封掉的消息,搞得人心惶惶,我现在都害怕收到 GP 的官方邮件了。
提交了 v1.0.4 ,修复了编辑器的一个 bug 。
我还用 AI 给极简便签加入了分渠道打包,但是提交到市场后发现失败了,新版本的渠道名都是 others……
这一次 Oppo 让我见识到了,一个 App 可以存在「被驳回」和「已上线」两种叠加状态。Oppo 给我发了审核驳回的邮件,但是等我登录后台一看,居然是已上线,我也不管了,爱咋咋地吧,国内安卓市场就是爱加戏。
上周的泼天富贵之后,给我产生了好多新纪录。
上一篇周记,我以为阅读量最多也就 2K 多,不会超过 3K ,没想到已经超过了 3W ,新增关注 1300 多人……估计很难再会有阅读量这么高的一篇了,除非再来一波更泼天的富贵😜。
小红书上也产生了阅读量超过 1W 的笔记,而且还是三篇,新增关注将近 500 人,看来「泼天富贵」是一个吸引流量的有效关键字啊。我发现小红书和公众号的留言有很大的区别,公众号的大部分留言都是「恭喜」和「加油」,而小红书的大部分留言就是三个字:「怎么做」……
一周过去了,日收入快速下降。至于推荐视频的长尾效应,我也不确定,但是目前来看还是有一点点的的,比起之前每天两百左右还是要高一些,还需要再观察一段时间才能确认这个长尾效应是否存在。
不过有一件事现在就能确认,3 月虽然刚刚过半,收入相较于 2 月已经翻倍了,给安卓小哥的分成终于能够超过 1W 了。
这周连续读完了绫辻行人的三本书,每一本都是在 24 小时内读完的。为了窝在沙发和躺在床上看书,我还特意买了个蓝牙的翻页器。
我是按照「馆」系列的出版顺序读的,上周读完了第一本,这周是第二三四,偏偏赶上了评价最低的《水车馆》和《人偶馆》,如果没有补全整个系列的这个想法的话,我就不建议读了。
《迷宫馆》,神作!结尾三次出人意料,让我大呼卧槽三次!
独立开发不易,但道哥飞蛾投烛。
感谢各位支持,助道哥飞黄腾达。
欢迎赏脸阅读我的独立开发周记,如果你觉得这一篇写得还不错的话,以下回应会令我无比开心,开了又开:
也欢迎大家能与我交流关于独立开发的一切,更欢迎大家下载使用我的 App😄。
周三,正常节奏的一天:
上周制定的三项工作轻松完成,提交后果断关闭 IDE 。
「每年今日」是我早就想做的一个功能,在开发极简日记之前,我是在印象笔记里写日记,而且是把每年同一天的日记写在一起,这样就可以一眼看到过去几年里这一天都发生了什么事。
我知道有专门这样的日记本叫做「五年日记」或者「十年日记」,上周我就开始构思这个功能怎么实现。一开始以为怎么着也得写个三四天吧,没想到把我的需求告诉 AI 后,直接给出了一个比较满意的设计方案,然后只花了不到半天就写好了核心逻辑。整个页面是过去十年(如果有数据的话)同一天的内容聚合,每天只显示前三条日记和图片,点击可以进入那一天的详细页面查看。后期还需要优化一下文字数量和图片大小。
做本地化的时候,我先是问了豆包怎么言简意赅地翻译「每年今日」,但是给出的答案都太长了,又说我提出的「 Past Todays 」不合适。我又问了 ChatGPT ,一下子就给出了满意的答案:On This Day (说是国外社交类产品类似的功能就用这个)。
做独立开发者快十年了,但是直到今天我才发现有效提升收入的最佳实践:设计一个炫酷的 Onboarding ,然后弹出 Paywall 。自打这么做了以后,三个星期里我的 RC 里的 Revenue 涨了 900 美元,而且我还是有所收敛的,只针对新用户,不影响老用户。
所以,都加上吧,立刻,马上,right now !
如题,终于轮到我了。
平日里,国内安卓市场一天的收入也就是 200 左右,好一点的话能四五百,最高记录是八百,正好通过「每年今日」翻到了三年前的一个记录。
然而,这周五六日却连续三天出现异常。事后回顾,其实周四晚上就开始了,周四的收入是 600 多,因为之前最高记录是 800 多,600 多虽然跟平日比起来高出不少,但是也没破纪录。但是周五晚上再看,居然 1400 多了,从那时候开始我就时不时刷一下,最终周五的日收入是 2038 元!
这是哪儿来的泼天富贵啊!!!绝大部分付费的订单都是极简日记的终身会员,搜了一圈社交媒体,没发现有谁推荐了极简日记。看了下后台,付费的大多数都是华为的用户,但是在华为应用市场也没发现极简日记被推荐。群友说可能是某个私域内部推荐了这个 app ,比如 QQ 群,我猜大概就是这样吧。查了下下载量和渠道,和平日相比,下载量涨了 10 倍,渠道并没有一家独大,各个市场都涨了。
周五晚上我在小红书上发了个日收入超过 2000 的笔记,周六早上醒来发现一个留言说是流量可能来自于一个 100 多万粉丝的博主的视频笔记。我去看了一下,果真如此,那个笔记是在周四晚上发布的,我看到的时候已经破了千赞。她没在标题里提到「极简日记」,所以之前我就没搜到。整个视频六分多钟,全是极简日记的深度体验分享,包括一些小技巧,完全体现了这个 App 的设计理念。我是一边看,一边心里在说:你懂我😭。
后来其他群友发过来这个博主的商单报价,保守 6W 起……我这是立省 6W 啊!
而且这富贵并没有停止,周六总收入更是突破了 3K ,周日总收入虽然下滑了一些,但也超过了 2K !!!简直不敢相信我的眼睛,三天的收入就顶了之前一个月的收入,兴奋,狂喜,如梦如幻! iOS 版的下载和付费也跟着提高了一些,但是跟安卓端一比还是差了很多。
原来,并不是「安卓不值得」,是我之前太菜了。
这周读完了《 13·67 》,接着开始读日本的推理小说,第一本选的是《罗宾计划》,微信读书里没有这本书,就只好下了个 epub 在 Kindle 里看,但是错字漏字太多了,根本没法读,就在多抓鱼上下单了纸质书,顺便买了几本其他小说。
等待快递过程中,又在 Kindle 上打开了绫辻行人的《迷宫馆事件》,但是书里重要的图片显示不清楚,自此我就决定不在 Kindle 上看盗版书了。读了开头发现这是绫辻行人“馆”系列的第三本,凡是系列作品以我的性格是必须要从头看起的(游戏也是如此),所以在微信读书上开始读系列第一本《十角馆事件》。
微信读书只能免费读第一章,我还正犹豫要不要开微信读书会员的时候(微信读书会员很奇怪啊,每周一的年卡最便宜,是 168 元,其余日子都是 228 元,而当天不是周一),发现京东读书就有这本书,而且全系列都有,我又是京东 PLUS 会员可以直接领取京东读书一年的会员,开心!
接下来花了不到一天的时间读完了这本书,在豆瓣搜书评的时候,发现这本书居然就在去年拍了个 5 集日剧,于是又花了半天快进看完了。我很好奇书中最重要的叙诡在电视剧是如何处理的,意外地用了最朴素的方法,没看过原著的人或许真的会被瞒住吧。电视剧基本完全按照书拍的,没什么大改,而且还加入了时间标记,我在看书的时候都没注意到这些关键信息。
紧接着,又发现这本书又被画成了漫画,我只简单地看了下结尾,发现这个漫画有几处魔改:
好吧,一个作品用三种形式看了一遍。
这周看了两个电影。
《电驭叛客 2077 》打通了二周目,白金了。
一周目的时候玩的是女 V 黑客流,只推了主线,只获得了 20 多个奖杯。这次二周目把所有的任务和委托都做了,玩的是男 V 潜行流,小 V 飞刀,四处扎脑袋,biubiubiu 。
攻略了帕南,克里桑就算了,我不是那样的人。
二周目有很多发现:
独立开发不易,但道哥飞蛾投烛。
感谢各位支持,助道哥飞黄腾达。
欢迎赏脸阅读我的独立开发周记,如果你觉得这一篇写得还不错的话,以下回应会令我无比开心,开了又开:
也欢迎大家能与我交流关于独立开发的一切,更欢迎大家下载使用我的 App😄。
本周的工作进展就是更新了 Nut Goals ,加入了三个提醒通知,分别是每日记账提醒、每月对账提醒和逾期存款提醒。
孩子开学了,我也可以恢复正常的工作节奏了。周日晚上简单地规划了一下下周要做的功能,希望五天内能做完并提交。
Windsurf 里的 Claude 3.7 简直是 Credits 刺客啊,一句简单的需求就能消耗 20 个 Credits ,直接把一天的额度消耗光了,只好转用 Trae 来顶一顶。
看了下往年 App Store 的数据,每年 2 月份下载量都会跌一些,但是今年跌得比较多,可能是寒假的缘故吧。
但是 GP 自从去年就一直在下降,而且是暴跌,最近的日新增下载已经快跌破 500 了,月下载总量不及去年同期的零头。
上周加入的 onboarding+paywall 效果显著,这一周里 RevenueCat 的 Revenue 指标提高了将近 500 美元,但是 MRR 几乎没变。
国内安卓市场的收入不降反升,居然达到了近两年的最高值,而且三个 App 都有大幅增长,是有史以来月收入排行榜里的第三。
上周提到的「长虹玻璃特效」这周又有点进展,但是不多,最后还是卡住了。
发现一个在线制作这种特效的网站,只需要上传图片,然后调整 blur 、distortion 、steps 三个参数即可实时生成。
这个网站的开发者说是使用了 WebGL Shader 来实现的,我把整个网页抓下来,把上面三个参数作为关键字搜索了一下,有两个相关的 js 文件。然后我又通过 Claude 分析这两个 js 文件,试图将其中的 Shader 改写成 Swift 的 Metal Shader ,但是生成的代码没有任何效果,改了好几轮还是这样。
于是我有用这个特效的英文名字搜了一下,Fractal Glass Effect 或者 Fluted Glass Effect ,分别在 Github 和 CodePen 发现了两个用 Three.js 实现的开源代码,接着用 Claude (甚至动用了最新的 3.7 和 3.7 Thinking )进行改写,但还是失败。
本以为发现了解决方案,但是最后都是徒劳,不仅消耗了好多 Credit ,还耽误了这周的开发计划,很是沮丧。
后来自我安慰一下:即使实现了这个 Shader ,但是只能应用在 iOS 17+,而极简时钟是支持到 iOS 14 的,这样很多低版本系统的用户还是无法使用到这个主题,那就先搁置吧。
另外,还是要从头学习一下这个 Shader ,看看能不能自己写出来这个效果。
好久没看书了,正好东野圭吾最近出了新书,评价还挺高,于是就想着顺便买一些悬疑推理的书。打开多抓鱼后,把基本评价不错的书加入购物车,准备下单时一个评论让我悬崖勒马:祝你别买到划线版,不然第一页就告诉你凶手是谁……
如果不买二手书的话,买新书的花费还不如开通微信读书会员了,一个月读一本书也就超值了啊。但是我又不想在手机上看书,就又花了两天调研目前的电纸书市场,都好贵啊,最后还是掏出了吃灰许久的 Kindle 。
微信会员先不急着买,即使买了也只能用 iPad mini 来看书。先看看这次能不能在 Kindle 上静下心来读两本书,希望能用读书去代替玩游戏和刷手机,去冲刷短暂的多巴胺。
《 13·67 》这本书是在小红书上看到的推荐,据说已经被王家卫买下了电影版权,其中几个故事确实适合拍成上世纪那种风格的港片,希望能尽快看到吧(但是王家卫也不是玩悬疑推理风格的啊)。
独立开发不易,但道哥飞蛾投烛。
感谢各位支持,助道哥飞黄腾达。
欢迎赏脸阅读我的独立开发周记,如果你觉得这一篇写得还不错的话,以下回应会令我无比开心,开了又开:
也欢迎大家能与我交流关于独立开发的一切,更欢迎大家下载使用我的 App😄。
上周说过我现在是面向 Credit 编程,这周量化了一下:500 个 Credit ,如果每天都写代码的话,平均每天消耗 16.67 个,如果一个月休息 5 天+工作 25 天的话,那么每天最多消耗 20 个 Credit 。
20 个 Credit 用光,那么今天的工作就结束了,绝不透支和超前消费。
其实 20 个 Credit 能做的事情很多,所以有时候还需要按照时间和功能来限制每天的工作量。比如下面的提到的极简时钟新页面,我就要求自己每天只做一个,做完就收手,这样不至于每天很累。将余下的工作当做明天的目标,这样还可以减少焦虑。
这周提交了两个小版本,虽然是小版本,但是代码量并不少,不是那种一行代码就修复的小问题。 但是这两个版本的内容,对于老用户来说都是不可见的……
因为最近收入一直在下降,突然想起来有人分享过增加收入的一个技巧:onboarding 后弹出 paywall ,于是就从上周开始写 onboarding 页面。本来我是很抗拒给极简时钟加入 onboarding 的,因为我的理念就是开箱即用,现在也是为了提高转化率进行一些之前没有过的尝试。
整个 onboarding 一共就三个页面,分别展示各个主题的表盘、倒计时功能和各种小组件。
一开始还花了大量时间在横屏的适配上,还要另做一套布局,后来索性就都砍了,手机上强制竖屏展示 onboarding ,平板上就凑合看吧。
这三个页面都是大量复用了已有的资源,第一个页面是复用了 App 内的主题预览,第二个和第三个页面里的图片都是复用了之前的一个 A/B Test 失败的设计稿里的素材。
有了 onboarding ,我就想统计一下,有多少用户是 onboarding 后就直接付费的,于是就在成功支付的事件里加入了这个参数,但是这个举动也导致了下个版本的产生。
这个版本上线后,收入确实提高了(也有可能是正常的波动),统计到了有 26 个付费是通过 onboarding 产生的。
App 里原来每次成功支付都会上报一次事件,但是加入了 onboarding 后发现出了一个小问题,就是会额外上报一次。于是不得不再发一个版本解决这个问题,本来是一句代码的事,但是做了两天多。
除了付费类型、打开 paywall 的入口等基本信息,我还想知道用户是在使用多久 App 后才决定付费的,于是就加入了 App 安装时间这个参数。既然有了时间统计,那索性就顺便加入时钟、番茄钟和正计时的时长统计吧,于是就让 AI 写了个统计页面。具体统计的规则上,因为时钟、正计时和番茄钟的规则是完全不一样的,所以花了很多去测试和调整。
为什么要花大功夫做这个统计功能,因为被很多用户催了很多年了……但是这个统计页面目前是只给我自己调试用的,等完善一下再开放给用户。
在小红书上看到一个设计效果:长虹玻璃,非常喜欢,于是就技痒想用 SwiftUI 来实现一下。花了一晚上和一上午,只实现了分割和模糊效果,但是扭曲形变的效果估计需要 Metal 才能实现。问了 DeepSeek ,给出的答案居然和我的实现如出一辙。
后来才发现,我家娃的衣柜的柜门就是这种玻璃。
在 AI 的帮助下,终于把 fastlane 调教好了,可以一键上传到 App Store 了。敲入fastlane release
,然后就可以起身去冲杯咖啡、上个厕所、刷会手机,回来一看,上传并且提交审核了,这感觉简直棒极了。
但是并不是每次提交都会如此顺利,确认备案这一个步骤有可能会导致流程中断,最后只能去 Connect 里手动提交审核。比如极简时钟 v4.8.3 就是这样,但是 v4.8.4 就成功了,我猜测原因就是短时间内再次提交新版本,就无需再次确认备案信息。
总想给其他 App 加功能,但是极简时钟总冒出新点子,就把其他 App 搁置了。
比如这周,本来是想给极简日记优化图片显示,但是突然冒出个点子:自动爬取影视剧的封面图片,正打算做的时候,又又冒出了一个点子:给极简时钟的计时器加入隐藏按钮的功能……于是计划之外还有计划之外,就随心开发了。
这周把三个极简系列的安卓 App 都更新了一轮,相较于更新 iOS App ,更新安卓 App 真是太折磨人了。
这次更新的主要原因是 MIUI 不支持 market 链接,所以就都换成了「统一链接」。这个「统一链接」是 HMOV 前段时间刚刚一起推出的推广服务,通过这个链接可以直接跳转到各家的安卓应用市场,包括 App Store 。但是这个统一链接,在一些小米/红米的老机型上会出现无法识别的情况,我也不清楚一个 URL 为什么还会跟机型有关联。另外,华为的应用市场后台里我死活找不到这个统一链接的设置入口,幸好是在其他三家的后台配置好后,就会统一生效。
这轮更新在除了华为之外的应用市场都是一帆风顺的,华为因为两个莫须有的问题审核没有通过,再次提交后,还在审核中。
这周的代码工作都花在了极简时钟 iOS 上,本以为一周做不完,特别是周末几乎没有时间工作,不过还是在周日下午 5 点提交了 4.8.0 ,晚上 8 点就通过上架了。
这次更新的主要内容就是重构了正计时和番茄钟的操作交互:
总的来说,极简时钟的正计时和番茄钟更加极简了。其实,极简时钟的古早版本里,为了维持极简的特性,正计时和番茄钟是没有按钮,就是靠单击和双击来操作。但是这样的交互导致很多用户反馈不知道如何使用计时器,所以在 2.0 全新改版后给极简时钟的计时器都加入了可见的操作按钮,还加入了标题和状态,以此让用户对计时器的运行状态有着直观的感受。
可是,有些主题下,计时器的状态和按钮一直都显示的话我感觉整体页面有些杂乱,所以就想着加入一个选项,可以让用户自行选择和控制这些元素的显示和隐藏。于是这周的工作就是重构这方面的代码,但其实代码方面的工作并不是最麻烦的,最麻烦的是我要添加一个新的按钮,而极简时钟有多个主题的按钮都是切图出来的,我也不好麻烦之前合作过的各个设计师,只好自己一个个主题亲自上手作图。
有的主题留下了完整的素材,只需要改个 icon 就可以了;有的主题只留下了切图,就只好做好相同风格的 icon 覆盖上去;有的设计稿在 Figma ,有的设计稿在 MasterGo ,来回倒腾。不过好在是我都搞定了,叉腰吐口气,我可真厉害。
娃上一次的发烧刚好了四天就又复发了,而且这次总说头疼和肚子疼,自己在家用药几天也不见好。周六晚上发现耳朵和脸部有红肿,以为是过敏症状,立刻去医院看了急诊,彩超+血常规,医生说不是过敏,但是淋巴肿大,怀疑是腮腺炎,让我们去市里的传染病医院去检查一下。
第二天一大早我们就去了传染病医院,距离我家有 12 公里,对于大城市里来说这点距离不算什么,但是对于我这里来说就是郊区的郊区了,从南到北穿越了整个城市才到。
因为是传染病医院,我们一家严阵以待,进入医院前都戴上了久违的 N95 口罩。没想到进入医生的诊室后,医生不仅没戴口罩,而且还居然在抽烟……
这可是当年新冠肺炎的医疗救治定点医院啊!
好在结果不是腮腺炎,但又学到了一个新的病毒知识:EB 病毒。
独立开发不易,但道哥飞蛾投烛。
感谢各位支持,助道哥飞黄腾达。
欢迎赏脸阅读我的独立开发周记,如果你觉得这一篇写得还不错的话,以下回应会令我无比开心,开了又开:
也欢迎大家能与我交流关于独立开发的一切,更欢迎大家下载使用我的 App😄。
终于来到第一百期周记了,但是却没什么内容可写。为了有点东西可以写,加速了 app 新版本的提交流程,但是还差点犯错,真是欲速则不达。不过总算是有点产出的一周,并没有毫无推进,日拱一卒,功不唐捐。
上周的周记第一次公开了我的收入情况,很多人都不敢相信,但这就是我自己的真实情况。
这不,刚收到 RevenueCat 的周报,收入又下降了。
最近发现个有趣的现象,一个很喜欢的人和一个你讨厌的人居然能聊得很开心,两个你都很喜欢的人却水火不容针锋相对,是该爱屋及乌还是恨屋及乌?
周六提交了 4.7.0 ,加入了新主题:浮雕时钟。通过做这个主题,又学到一个英语单词:relievo 。
这个设计是我在小红书上看到的,本来是个国外的动手达人利用各种电机、芯片和 3D 打印等技术,通过控制每个数字的组件上下升降来显示出不同的数字,以此来达到时间显示的效果。
我一眼就看上了这个设计,极简风格十足,就想着通过代码实现出来。控制数字组件这个还不是最难的,最难的是实现升降的视觉效果。最开始的想法就是通过加入阴影来模拟升起来的效果,但是发现不能把所有组件都放在同一层里,因为会产生违反物理的遮挡现象。后来又加入了简单的高光,根据不同情况,一共有四种高光。
周六晚上提交,周日上午就通过了。不过这次的提交暴露出了很多问题,因为心急,出了很多纰漏。第一次提交后发现 app 内的更新日志没有加入新内容,这个更新日志是对我的转化率很重要,但是忘了。第二次提交后发现新主题忘了加入声效,于是又找了半天素材,剪辑+修复。第三次提交后,我以为万事俱备了,就直接提交审核了。没想到还是忘了一项工作:应用内活动。
考虑到周末审核速度会很慢,就不撤销审核了,准备单独提交应用内活动。这次的应用内活动制作得也很简单,但是文案我自己很满意:时间如人生,有升有降,有起有伏。其实之前的圆环时钟和时钟墙的文案我也很喜欢,分别是:「时间轮转,环环相扣」和「时间流转,光影随动」。但是这个应用内活动对我的 app 来说,基本没有什么作用,展示量和下载量都很少。
最近几次更新和促销,我都申请了新加入的「提名」功能。这个功能建议在发布日期前至少 3 周申申请提名,但我都是就是在提交 app 前后一天才申请……,所以自然一次也没有申请成功过。
孩子期末考试后就突然发高烧,烧到了 39 度,还嗓子疼,一直恶心。怀疑是中招甲流,第一时间买了奥司他韦。晚上又在京东下单了甲流乙流肺炎三合一的检测试剂(还赠了一个额外的甲流检测试剂),第二天给孩子一测,都是阴性。而且孩子之前打了流感疫苗,那估计就是普通的感冒了,果然第二天晚上就不烧了。
但是,老婆在孩子发烧的第二天晚上也开始上吐下泻和发烧,到了第三天一直在发烧+呕吐。用赠品测了一下,也不是甲流。但是她没有孩子那么能抗,吃了一天多的药也不见好,到了晚上还是不得不去打了点滴,退烧+止吐+消炎,第四天天也基本好了。
而我,目前一切良好,还没有这个假流的迹象,不知道是不是和最近一直在喝含有维 C 的饮料有关。
独立开发不易,但道哥飞蛾投烛。
感谢各位支持,助道哥飞黄腾达。
欢迎赏脸阅读我的独立开发周记,如果你觉得这一篇写得还不错的话,以下回应会令我无比开心,开了又开:
也欢迎大家能与我交流关于独立开发的一切,更欢迎大家下载使用我的 App😄。
这周五,一个四年前定下的提醒事项弹了出来,是极简时钟最早的一个域名到期了。
这个域名绑定的就是极简时钟的静态 landing page ,自打上线后我好像就没动过,导致我都忘了这个页面是 host 在哪里,通过反查 DNS 才知道是一个 GitHub page……
2020 年正是极简时钟的快速上升期,那时候也有样学样地买了个域名,在网上找了个模板就把这个 landing page 完成了。至于这四年有多少访问量,就无从得知了。
更新了 v1.7.22 ,修复了导出图片中背景色的问题。要不是用户反馈我都没发现,在给日记中加入 material 背景后,导致导出的图片中半透明的效果全都变成了十分丑陋的灰色。
发现 RevenueCat 的 dashboard 中有很多 0 元续费的订阅,每天都有好几笔,一开始我还以为 app 里有 bug 导致用户可以零元购了呢,这下损失了好多啊。
但是点进去一看,才知道原来是用户遇到了支付错误。在 RevenueCat 里筛选了一下,遇到支付问题的用户还不少,尤其是土耳其和东南亚居多。也不知道这个问题出在谁,是 Google Play 还是 RevenueCat ?
一直想把国内安卓版的旧版支付 API 转发到新 API 上,这周终于有所行动了。
先是在服务器代码上针对旧版 API 的参数做了兼容处理,然后在 nginx 添加了一条测试用的转发路径,最后部署新代码到服务器。
本以为一都会很顺利,没想到还是出了问题,我发现正式环境里有两条付款记录没有生成对应的会员记录。经过一番排查,才发现是我画蛇添足,新建会员记录的 SQL 里添加了一个不存在的 field ,导致插入数据失败。这个插入操作是只有在收到微信支付的回调后才会执行的,而偏偏这一点我没测试到。保险起见,我就回滚代码了,那两个会员记录我也只好手动录入了。
还好,只有两个。
然而,第二天上午,我发现了数据库里又多了两笔 1 分钱的支付记录。我一开始还以为是安卓小哥在做测试,但是他说并没有……最终发现原来是我回滚代码的时候把价格的配置文件也给回滚了,所有的价格都恢复成了测试的价格,都是 1 分钱……偏巧有两个用户以 1 分钱解锁了原价 24 元的终身会员。
还好,只有两个。
这周两次健身+游泳。周二游泳 1000 米游进了 40 分钟,周四的 1000 米又快了 2 分钟,38 分钟。单次连续游的距离也越来越长,最长可以连续游 300 米了。
最近明显感觉所有裤子都肥了,都挂不住腰了。在南京旅游的时候还发现,上衣的尺码比之前小了一号。我还以为身体维度真的减小了,但是周日晚上用尺子一测,和之前的数据没有任何区别啊。
体脂秤上的数据和 325 天之前对比,竟然一斤都没减掉,这令我很震惊。不过由于最近的运动,确实减掉了 9 斤脂肪,又增长了 9 斤肌肉,体脂率下降很多。
这周读完了《认知觉醒》,收获颇多。说实话,这本书提到的诸多概念和行动指南,在其他书里也都有涉及,这本书本身也多次提到其他相关的书籍,比如《微习惯》《思考快与慢》《刻意练习》《心流》《暗时间》等等。但是,同样的道理,用这本书的作者周岭的话讲出来,不知道为什么,就令我感觉更好理解和接受,也解答了很多我关于拖延、焦虑、和自我提升上的困惑。
还有一个,剑星,周四完成了一周目,周日完成了二周目和白金,一共花了 54 个小时。这是我买过最贵的一个游戏了,之前玩过 demo 版之后就果断下单了数位豪华版,也是我第一个玩了二周目的动作剧情类游戏。
伊芙?衣服!在我看来,黑珍珠真的没意思,枉费大量时间和精力去舔图,还不如星球空降服原型。
周三的时候苹果发邮件通知大陆地区 4 月的收入报告出了,打开一看,比上个月又下降了 30% 多,是最近两年最低的一次了,瞬间心情就低到谷底了。不过有人提醒说美国的报告还没出,所以收入数字是不完整的。过了一天,苹果又发了邮件通知美国的报告也放出了,打开后果然整体收入增加了很多,比上个月还多。说实话搞了么这么多年 iOS 开发,我才知道 App Store 的收入需要等全球所有地区都出报告了才能看到最终完整的结果。
最近一年确实过于享受生活和佛系躺平了,结果就是收入一直在下降。那个不完整的数字足足让我叹气了一整晚,虽然是虚惊一场,但是痛定思痛,决定让自己忙碌起来。
这周大动作没有,全是小动作。
本来每周末都花一个上午集中回复一下 App Store 和 Google Play 里面极简时钟的评论,上周因为在旅游,就多积累了一周的评论。
App Store 目前整体评分 4.7 ,评分数即将突破 3W 。我发现 App Store 上最近来自国外用户的评论多了一些,而且非五星评价很多,有几个二星和三星都是问如何使用 App……这样的用户太多了,App 简介里的使用说明也不看,第一次启动时的引导也不仔细看,发现自己不会用后就给打差评……看来还是要加强一下操作引导。
Google Play 目前整体评分 4.45 ,评分数是 10799 。最近 GP 上的五星评论占绝大部分,其中西班牙语和英语的用户多了起来,土耳其用户依然既不付费又不给好评……
看到山姆推出了一个 Hulkbuster 的拼装模型,性价比极高,就果断在淘宝上代购了一个。 我对 Hulkbuster 的喜爱程度是超过钢铁侠的,去迪士尼专门去漫威总部给这个大家伙拍照,就连我家的 NAS 我都用 Hulkbuster 来命名了。之前买过 K 盒子出品的积木,拼到手残。山姆的这个虽然细节问题很多,但是整体素质和镇宅效果都非常令我满意。下面的图片是模型和迪士尼版的对比图,非常相似了。
为了给苏老师做保镖,周六周日又一次 24 小时内往返北京。苏老师去看苏有朋的演唱会,本来是要她自己一个人去的,我实在不放心,就陪着她一起去北京走了一趟。
我们俩之前都没去过任何一场演唱会,这次是她的第一次,也是我最接近演唱会现场的一次。我被其他粉丝的热情程度惊到了,有的人是连续参加五场的,有的人是大老远从各地飞过来的,有的人是应援会组团来的,各个准备充分装备齐全,苏老师跟人家一比,简直就是伪粉。
送她进去后,我就回酒店休息了。等我去接她的时候,发现门口全是等着自家老娘们的老爷们😂。散场的时候我才发现,居然还有人带着小孩子来看的,还有大爷大妈。
第二天上午逛了会朝阳公园,这是我第一次去朝阳公园,之前在北京那么久居然都没去过一次。阳光明媚,风轻云淡,很多人都在露营。所有的球场都有小孩在上课,居然还有橄榄球和棒球。
从朝阳公园出来,打车去北京朝阳站,然后坐高铁回辽宁朝阳。
从一个朝阳走向另一个朝阳。
]]>错峰出游 8 天,这一篇是关于开发的,下一篇是关于旅游的。
如题,4 月份是全面下降的一个月,下降幅度还不是一点半点。
GP 的下载量从 2 月份开始就一直在下降,虽然在 4 月中旬触底反弹了,但是整个 4 月的下载量只有 47345 ,只有 1 月份的三分之一,是最近 8 个月里最低的一个月了。
国内安卓市场也是连续下降了 4 个月,4 月份的下载量不及最高记录的一半。国内安卓市场的版本一直是落后于 GP 的,接下来的首要任务就是在国内安卓市场上架全新改版的新版本,届时也会进行价格调整。
App Store 依然是稳定下降,又是好久都没更新版本了。之前在 Boss 直聘和即刻上招设计师都不顺利,接下来准备在小红书上试试看,我看上面有很多接单的设计师。
安卓市场的收入下降也在预期内,毕竟下载量在那摆着呢。国内安卓市场里每天就靠极简日记的几个订单在支撑着收入,计算了下 4 月份的付费率,居然有 4%。而寄予厚望的极简便签,上架两个月了,付费率只有 1.5%。
App Store 的收入并没有像下载量下降得那么多,主要原因就是极简日记的永久会员进行了优惠活动,还有一个不太确定的因素是调整了极简时钟国外的定价。
在 RevenueCat 上看,总体收入和最高值相比已经下降了 60% 了……
提交了版本 1.7.19 ,主要更新内容有:
图片拖动和添加后的顺序是存在很久的 bug 了,这次终于集中修复掉了。虽然是优化了一些图片的加载性能,但是图片比较多的情况下滑动日记列表还是会有卡顿出现,暂时还没找到更好的方法,如果哪位知道这方面的解决方案,还请告知,感激不尽。
即将提交审核的时候,突然想到之前说过要取消买断制,小红书上也放过话了,于是就把终身会员的购买按钮去掉了,重新提交。这也是一次大胆的尝试,我从没有过纯订阅制的 App ,反正下载和收益都很少,就任性折腾了。
提交审核的时候同样遇到了和备案名称不符的问题,按照其他开发者提供的空格大法成功解决,这一次审核速度也很快,不到一小时就过审上架了。
这两周自然是没看多少学习资料,不过聊胜于无。
看了Don't write this code! (use the new formatting API instead 😌),才知道原来 Swift 的系统 API 就提供了各种数字和日期时间的格式化,之前自己写的各种格式化代码都可以重写一下了。
因为要修复拖动排序的 bug ,找了两篇关于 SwiftUI 中拖动排序的 blog:
最后发现之前的 bug 造成的原因是:拖动时跟随的是索引而不是拖动的对象,导致索引更新出现问题。
]]>快四个月了,终于叫了一次外卖,只为 EVA 而破例。
提前预告一下,下周我要出去旅游一周,所以周记 63 延后一周,周记和游记一起放出。
极简时钟在 GP 上最近一个月一直在下降,日下载量几乎要跌破 1K 了。于是发布了一个更新 sdk 的版本,效果立竿见影,下载量立刻拉升回来。
极简日记在 GP 上几乎没人下载,每天下载量就是个位数。不过最近才发现下载量剧增,最高的一天达到了 169 ,增长率 1000%+,哈哈哈!看了一下国家,没想到居然是菲律宾。
这一周的所有开发工作都花在了极简日记上,而且是按下葫芦起了瓢。
从上周开始就一直在修复极简日记的 bug ,但是刚修好一个,就立刻引出了另一个,每天都在这种反复中,心情很是崩溃。
归根结底,还是基础知识太差,于是向其他开发者虚心请教,看 blog 和视频。
好在是在周日把这个版本需要解决的 bug 都清掉了,虽然解决的方式非常不优雅,但是可以安心出去旅游了。
上周看完了 RevenueCat 关于 App 内购定价的总结和分析,我就想着更改一下极简时钟的内购价格。
然而,我又犯了之前同样的错误,把终身买断价格改成了 App 价格……价格是晚上改的,而我又是第二天早上才发现,居然还有 5 个购买……唉,这下导致全球的排行榜又被清空了。上次的这个操作,导致极简日记还在持续清榜中,已经 23 天了……
体重终于突破了 190 ,达到了新低 188 ,主要靠的是有两天没吃晚饭。
周日的时候终于看了《热辣滚烫》。这一次减肥的目标是在元旦定下来的,不过在这部电影上映时确实也受了很大激励,但是一直没有空去电影院看。当时我就预估今年一定会掀起一波健身热潮,不知道这一波热潮过了没有。我的健身房倒是一直冷冷清清的,不过我的观察可能也是幸存者偏差,因为我是专门挑人少的时候去。
我的左小臂外侧的肌肉一直疼,看肌肉图应该是叫尺侧腕屈肌。疼了大半年,我一直以为是玩游戏手柄造成的。周一在健身房搬杠铃的时候,这块肌肉突然咯嘣一下,我还以为拉伤了,过了两天居然一点也不疼了……神奇!
游泳有两个突破。一是第一次达到 1000 米,之前每次最多游 30 分钟,为了达成 1000 米的目标,延长到了 44 分钟。另一个是连续游泳距离第一次尝试 100 米,之前都是每游 50 米就歇一会。
周二的时候,天气难得的好,于是出去沿着河边溜达了一大圈,一路边走边拍。来回差不多有 10km ,但是 Apple Watch 在 5km 的时候就没电了,后面的数据就都没记录上……
定期整理一下工作环境,一人公司就是一张桌子。
周四这天,像每天的日常一样,登录 App Store Connect ,查看过去 24 小时的收入,居然有 330 万美元,合人名币 2000 多万!财务自由来得太快,我还来不及准备。
紧接着我就打开了我的愿望清单,开始逐项清点:
即使清空了愿望清单,我发现在我们这买个大别墅还绰绰有余!麦当劳自由的日子就这么到来了!
然而这一切不过是黄粱一梦,其实是 Connect 的统计出了 bug ,这一天无数的苹果开发者都成为了千万富翁,甚至还有亿万富翁😂。
RevenueCat 发布了一个 120 页的 PDF ,是过去一年的订阅制 App 的分析和总结。 里面发现了一些有意思的数据和观点:
这周体重不降反增,还涨了一斤,不过其中 0.8 斤是肌肉,所以全身体脂率略有下降。 这周天气不好,只有周日为了测一下有氧适能才进行了一次户外步行,结果是有氧适能下降了…… 三次健身+游泳。游泳速度有所提升。健身尝试了「练就」这个新 App ,是开发者朋友 Patrick 的新作品,向大家推荐一下。 这周发现每次力量训练后明显恢复得比想象要快,本以为第二天肯定疼得无法动弹,结果并没有。 我觉得活动量是足够的,但是体重下降太慢,看来还是要少吃。
为了缓解焦虑并提高专注,删除了即刻和抖音。 但是小红书的代偿作用开始了……
这周做了三件小事。
这周我把 Xcode 升级到了 15.3 ,遇到了一系列的问题。
首先是无法编译 firebase 的 package ,无论我如何清除缓存文件( Build + DerivedData + SPM )都无济于事,无奈只好退回了 15.2 。
但是 15.2 又遇到了一个问题,所有的 package 都无法下载,提示是:
Package.resolved file is corrupted or malformed; fix or delete the file to continue: unknown ‘PinsStorage’ version ‘3’
原因是 Xcode 15.2 不兼容 Xcode 15.3 生成的 Package.resolved ,解决办法就是删掉这个文件,让 Xcode 重新生成就 ok 了。 这篇文章(Package.resolved file is corrupted or malformed; fix or delete the file)里也提到了这个问题,不过据作者的实验,将 version 改成 2 也是可以解决问题的。
这周看了一个视频,Swift has more formatters than you know! 🤯,才知道原来 Swift 还有这么多 formatter 。
另外读了 5 篇 Swift With Majid 的 blog:
之前我一直都是用 Notion 写周记的,但是 Notion 这种在线服务一旦出问题,轻则耽误工作,重则丢失资料。我的需求就是最基本的写写东西,用不上其他高级的功能,所以从上周开始,我改用 Obsidian 了。还有一个选择是 Logseq ,但是无论从名字还是图标上来看,还是 Obsidian 更胜一筹。
之前一直听说这种双链的笔记可以构建自己的知识库,但是一直没有尝试过。通过一个 Chrome 插件可以一键将网页保存到 Obsidian 中,我就把上面提到的几篇 blog 都存了进去,加上了关联链接,看起来还不错。
Obsidian 还有上千种第三方插件,对我来说,这种惊喜简直就像小学生发现了新文具一样。
周五早上体重再创新低,但是晚上吃了碗热干面,第二天就涨称 3 斤。
终于知道了 iOS 健康 App 中的有氧适能为什么时不时才有数据,有时即使有运动也不会数据,原因是只有进行步行、徒步、跑步这三种运动时,Apple Watch 才会进行有氧适能的测量。经过验证,确实这周的三个数据对应着我三次的户外步行。
这周做力量训练时开始使用 App 进行记录。对比了 One More 和训记这两个 App ,各有千秋,也各有不足,但是最终选择了 One More 。作为健身刚入门的我来说,这些 App 都有点复杂。突然冒出了自己写一个健身 App 的念头,不过一想到这么多器械、动作、肌肉,就感觉头大。
这周终于推进了一下 iOS App ,没想到还犯了个非常低级的错误。
下降,下降,还是下降!
这周提交了 v1.7.16 ,主要的更新内容是:
在上传 build 到 Connect 后,收到了这样的邮件。
ITMS-91053: Missing API declaration - Your app’s code in the “MinimalDiary” file references one or more APIs that require reasons, including the following API categories: NSPrivacyAccessedAPICategoryFileTimestamp. While no action is required at this time, starting May 1, 2024, when you upload a new app or app update, you must include a NSPrivacyAccessedAPITypes array in your app’s privacy manifest to provide approved reasons for these APIs used by your app’s code. For more details about this policy, including a list of required reason APIs and approved reasons for usage, visit: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api.
邮件里一共有六个这样的 Missing API declaration ,于是花了点时间,把这六个关于隐私权限的警告都解决了。在我看来,苹果这一规定完全是小题大做,涉及的隐私主要就是是否使用了 UserDefaults 和文件读写,可能 99% 的 App 都会用到这两个吧,都填写的话那还有什么意义呢。
新版本上架后,我就开始了史上优惠力度最大的一次促销活动,限时一个月,终身会员的买断价格调整为 49 元。然后我就犯下了有史以来最大的一次操作失误,直接造成了促销上的巨大损失。
宣传海报是提起一天( 3 月 28 日)发出去的,到了第二天中午居然还没有一个付费,我就很奇怪。下午收到了两个用户的反馈,说价格还是 98 元,一开始我还以为是 App Store 的缓存问题,后来查了一下才发现 App Store 的价格生效时间是 UTC ,对应到中国大陆是下午三点才会生效。 于是我打开了 Connect ,想把优惠价格设为立刻生效。结果,慌乱中出了大错,我并没有更改内购的价格,而是更改了 App 本身的价格……这下子一个一直免费的 App 立刻变成了需要付费 49 元才能下载的 App ,同时 App 内还有内购……在变成付费 App 后,极简日记立刻就进入了生活类付费 App 排行榜前 40…… 这一连串的操作,直接导致第一天一个付费都没有,白白浪费了促销的黄金首日。
极简日记的下载量很少,收入更是少之甚少。 最开始终身会员的定价是 60 元,后来我就想着改成 98 元,以此来刺激一下订阅的付费率,现在看来是完全失败了。 所以这次我采用了「破发价」的 49 元,想看看付费率如何,但是目前来看,实验也失败了。 所以我计划,这次促销结束后,取消终身会员,只留下月订阅和年订阅两种付费方案。
周六上午提交了新版本的极简时钟 iOS ,两天过去了还没开始审核,距离上次更新版本已经两个月了。 这次最主要的更新内容就是加入了西班牙语的本地化,希望能靠这个提升一下下载量。 另外,打算过审上架后也进行一个促销活动。
这周把 WWDC23 里关于 SwiftData 的视频都看了,下周开始看肘子哥的文章。
另外,两倍速看了 Sean Allen 的视频,SwiftUI Toggle - Button & Switch Tutorial,才知道原来 Toggle 还有另外一种样式。
这周因为天气,只在周一出去走了一次。然后去了三次健身房,都是力量+游泳。 值得高兴的是,游泳的速度提升很多。 体重稍有下降,但是微乎其微,BMI 没有任何变化。 但是体脂率下降了,肌肉含量和基础代谢都有所提升。 不知道为什么,有氧适能从周一后就没有新数据了。
四年前给老丈人买的 Redmi 8 因为微信一直提示空间不足,撑到今天终于没法用了。于是给老丈人买了个 Redmi Note 13 ,这手机手感真是好啊,才 173g ,对比之下,我的 iPhone 15 Pro Max 简直沉得快拿不起来了。 这个 Redmi 8 其实流畅性还不错,所以就作为我的新的安卓测试机了。而我上一个测试机是之前丈母娘退下来的 Redmi 6 Pro ,还是 micro USB 接口的。四老的手机都是我负责购买的,都是当时主打的 Redmi 千元机, 四人淘汰下来的手机就是我的测试机,而下一个等待我的测试机应该就是 Redmi Note 9 。
]]>如释重负的一周,放松了很多。
这周终于提交了一个 TF ,主要是围绕导出导出功能做优化:
从上周开始,我就一直在处理导出数据时爆内存的问题。数据比较少的时候还好,但是数据一多,特别是图片内容比较多的情况下,导出时必然会出现因为内存不足而闪退。
经过逐项方法的排查,最终确定问题就出现在读取图片数据上。我尝试了各种方法,减少 fetch limit ,加 autoreleasepool ,每次循环结束后清空数组,都不行。而且奇怪的是,即使退出导出页面了,被占用的内存也没有释放。
后来在请教了肘子哥之后,肘子哥立刻看出了问题所在,一针见血,一句代码就解决了我的问题。原来我之前使用的是全局的 Environment 托管上下文,改成临时的上下文就 ok 了。
这不是第一次肘子哥帮我解决 Core Data 方面的问题了,在此,赞美肘子哥!
为了让用户帮我调试 App ,我写了个在非生产环境下才会出现的 debug view 。 正好 RevenueCat 也有一个 debug UI ,可以显示关于内购的相关信息,就也加进来了。Debug mode 下没有任何问题,但是 Release Mode 就无法编译,archive 也不行,找了半天原因,直到看到 RevenueCat 的文档里有这么一句:
Note: The debug UI won't compile for release builds, so you'll need to disable the behavior before archiving for release.
买了大电视后,就特别想在电视上看 Netflix 。
最简单的方案应该是 Apple TV ,但是没舍得。前些天差点就买了一个软路由,但是看看价格还是舍不得。之前用 NAS 折腾过一次旁路由,失败了。又看了几个教程后发现我的 NAS 完全可以做旁路由,之前失败其实是搞错了方向。
周日花了一下午和一晚上终于搞定了 Nas+OpenWrt 。期间遇到了 OpenWrt 可以联网,但是连到 openwrt 的手机无法联网的问题。装了两个不同版本的 openwrt 的镜像,各种瞎鼓捣,又是 opkg ,又是配置接口和防火墙,还特意花钱注册了一个论坛账号。
搞定后发现,将电视的 IP 和 DNS 设置成旁路由还是比较麻烦,还不如直接用电脑或者手机投屏了……不过 OpenWrt 还是有很多可玩性的,有待以后慢慢探索了。
本周体重变化不大,但是有新突破,突破了 190 斤,最低 189.7 斤。
有两天的晚饭吃得比较晚,因为特别饿吃得还比较多,万幸没有涨称。
这周只去了两次健身房,周二练背,周五练胸。
泳池终于重新开放了,去年买的游泳三件套终于开封了,去游了 30 分钟。
不服不行,年龄越大,身体恢复就越慢,健身后三天酸痛都没有丝毫减轻。
认真减肥第二周,反增三斤……还好周日降了回来,守住了上周的成果。
这周琢磨出了两句心得:
这周开始学习 SwiftData ,是的,WWDC24 都快来了,我才开始看关于 SwiftData 的东西。
看的是 Stewart Lynch 的 SwiftData 系列视频教程,目前看完了 5 个视频,一边看一边跟着敲代码。
目前只学会了简单的 CRUD ,但也感受到了相较于 CoreData 有着极大的便利。估计下周就能都看完,然后再看一遍 WWDC23 的视频,最后用肘子哥的博客加深一下理解。
虽然听说目前 SwiftData 还不是很完善,还有一些 bug ,不过我已经打算以后的新 App 都是 iOS 17+ 了。(可能 iOS 18 出来了新 App 还没出来……)
极简时钟安卓版过去一个月的下载量一直处于下降状态,无论是 GP 还是国内。
下降的原因不知道是什么,一个猜测是好久都没更新版本了。
国内版本是在去年 5 月才接入友盟的,过去了 10 个月,目前统计到的累计下载量是 44W 。而之前在国内全面上架是 2021 年的 3 月,正好是三年前,这么估算一下,总下载量怎么也该有 100W 了吧。
买了新的咖啡杯、滤纸和豆子,又开始喝手冲了。豆子是买过最贵的一袋,用了更严格的粉水比和水温,但是冲了三次还是没感觉有多好喝,还是酸酸的。
在 PS5 上通关了古墓丽影:暗影。前两代都是在 M1 chip 的 Mac mini 上玩的,暗影这一代确实画面最强,剧情最弱。
女儿非常喜欢看我玩这个游戏,她也很喜欢模仿劳拉在游戏里的各种飞檐走壁,特别是暗影中小罗拉在自家庭院里自导自演的冒险那一段剧情。
这周没去健身房,走路的总步数也没有上周多,前五天每天的体重都在增加,好在周日都掉了下去。
走了三公里去全市唯一一个喜德盛专卖店,心想着买个入门款公路车,价格合适的话就骑着回家,没想到最便宜的还要 3498……然后在晚上研究了几天,根据之前骑山地车的经验,后续开销少不了,于是最终放弃了这个念头。
虽然体重没有突破,但是有氧适能还在慢慢提升。
管住嘴,迈开腿,成为一个新造的人。
这周达成了人生第一个白金游戏成就,战神 5 。
也看了不少影视剧,沙丘 2 看的是午夜场,太震撼了,物理上的震撼,座椅抖得我感觉都快起飞了!
上周极简便签只在小米上架了,经过这一周,极简便签终于在华为、Oppo 、Vivo 也都上架了。
这周做了两点优化:
下周先小范围测试一下,然后提交版本。
这周有 iOS 开发者遇到了 Xcode Archive 的一个 bug ,我才发现我好久都没有执行过 Archive 操作了,因为好久都没发新版本了……
在抖音上刷到了一个自称是一线开发的程序员小姐姐,在线直播教编程。看了一会,就发现这又是一个骗小白的套路,其实就是卖教程。不过这个女孩还是做了一些功课的,起码知道 Java 、Javascript 和 Python 的不同应用领域,但是再深入一些就开始胡说八道了。
之后,抖音又推荐给我更多这样的主播,微微、辣辣、拽拽、阿纯……这些人都有共同的特点:
现在年也过完了,老婆孩子也都开学了,我的生活节奏也规律起来,可以开始认真减肥了。
今年一开始定的目标是减重 10 斤,因为不想减得那么痛苦,就没定太高的目标,不过目前来看,应该可以很轻松就达到。
我现在就是将减肥当做一个电子游戏,每天做任务、收集道具、刷数据。
计划每天快步走一小时,一方面放松心情、放松眼睛,一方面提高心肺功能。本来计划每天走一万步,具体实践下来才发现 5km 也达不到一万步,不过加上一天中其他的步行数量就可以达到一万了。
周五没去步行,而是去了健身房,本来是打算游泳的,但是又赶上健身房泳池不开放,我去年 11 月买的游泳三件套到现在还没有拆封。跟着抖音上的训练计划推荐,做了背部训练和 30 分钟椭圆机。
我的有氧适能从 2023 年开始就一直低于标准值。之前我还有规律的羽毛球运动,而到了 2023 年我只打了一次羽毛球。不过经过这一周的有氧运动,这个指标也开始慢慢回升了。
据说低强度的有氧运动,也就只能提升到 30 ,需要更剧烈的有氧运动才能提升到 40 以上。等天气再暖一些,我想买个新的公路车,天气好就出去骑车,天气不好就进健身房。
采用 16:8 间歇性断食法,也就是每天两顿饭,晚饭在 5 点前吃完。
最近一周的早餐基本都是小笼包+馄饨,晚餐也没有高糖高油高盐,中间饿的时候就吃点水果,喝的饮料除了咖啡也都是无糖的。自打进入 2024 年,已经两个多月没点过外卖了,在家自己做饭的次数大大增加。
我对于食欲方面没有什么太强的需求,并不会想吃什么就想方设法去吃到,碰到了就吃,碰不到也无所谓,过一顿饭我就会淡忘掉。我发现从几年前开始我就对零食、雪糕、甜食失去了兴趣,这些东西完全不能刺激我的多巴胺分泌。
]]>连续两个月没有点外卖,继续保持!
2 月份都在忙安卓端,极简时钟和极简日记都更新了版本,新 App 也上架了。但是极简时钟的下载量在 GP 上整个月都在下降,就很奇怪。相反的是国内安卓市场的付费率显著提升,可能是受寒假快结束的影响吧。
极简系列 App 又添新成员。
极简便签的前身是安卓小哥的个人作品,但是因为国内越来越严苛的上架要求,这个 App 不得不下线了。为了让这个 App 能够继续运营下去,安卓小哥提议将这个 App 转到极简软件工作室名下,于是从去年 11 月就开始筹划这个 App 的翻新和上架工作。
终于在上周一切准备就绪了,周四晚上在小米应用市场提交了。那天晚上,我做了个梦,梦见这个 App 上架后,国内安卓的收入一天超过了 3200……没想到的是周五上午就收到了上架的邮件通知,居然一次性就顺利通过了审核。之后也在华为、Vivo 、Oppo 都提交了,但是这三家还在审核中。
上架第一天,有 30 多个下载,有一个付费,我觉得在完全零宣传下,这样也算是不错了。
在修改极简便签的代码过程中,我发现一个最简单不过的赋值语句 val name = “text”
居然出现了编译错误,而且其他的代码居然都是以分号结尾的。再仔细一看,原来这是一个 java 文件……这个 App 创建于 2016 年,当时 Kotlin 刚刚发布第一个版本,所以安卓小哥当时还是用 java 写的,而我没写 java 好多年了,一时竟然茫然了。
上周日刚从北京回来,这周三又去了一趟,当日往返。
赞美高铁🚄,早上从家八点出发,在北京吃了顿胡辣汤,还逛了逛商场,买了两件优衣库,又买了一堆零食,晚上七点多就到家了。
这周又又又感冒了,咳嗽、流涕、发烧一样没少。
1 月 31 日的 SSL 证书就过期了,总收到提醒的邮件和电话,但我一直拖到 26 日才动手更换。
又到了一年一度的紧张时刻,我对于后端操作一向很恐惧,就怕什么操作导致服务器出问题。
更换完 SSL 后发现浏览器中显示的证书日期还是旧的,就有点慌了,咨询了一下其他开发者,重启了一下 nginx 就好了。
不过,更严重的还在后面,最担心的事情还是发生了。
我一直拖着没更新后端 API 就想等着和 SSL 一起搞,没想到把 API 的新代码部署上去后真的出问题了。在这里简单说一下,服务器上跑了两个 server ,分别对应极简时钟和极简日记的 API 。新的 API 是添加到了极简日记上的,原有的极简时钟 API 没有动。
所以,整个事件的原因是什么我到最后也不知道,更不知道如何解决的,就是瞎 JB 操作一个多小时后,问题自己就消失了。
现在有两个事要抓紧做了,一个是要加速统一两个 API ,一个是要赶快弃用 Parse ,将数据迁移到云数据库去。
这周二收到了苹果发来的邮件,说是我可以使用「极简时钟」这四个字作为 App 的名字了。
必须更新一个版本才能顺便更改名字,所以花了一下午加入了新年和春节的通知。做本地化的时候发现了坑,有些亚洲国家的十二生肖和国内是不一样的,比如泰国就没有龙,就不能简单地翻译“龙年大吉”……怎么处理呢,都翻译成“新年快乐”算逑!
第二天,审核通过上架。经过几年的努力,现在国区的 App Store 里只有我一个「极简时钟」了 。
这周一个用户反馈了一个 bug:无法添加 RAW 图片。
之前就有过用户反馈无法添加微信保存的图片,上次就是通过 TypeIdentifier 的判断解决的。
先是通过两个 TF ,让用户帮忙定位了出问题的代码,就是这个 result.itemProvider.canLoadObject(ofClass: UIImage.self)
虽然返回了 true ,但是里面的加载过程中出错了。一开始想像之前那样通过 TypeIdentifier 来单独处理这个图片文件,但是发现 RAW 的格式居然有很多,不可能一一判断分别处理。
先是尝试通过CIRAWFilter
来处理 RAW 的图片,我下了两个 Sony 的 ARW 的图片,可以正确处理,但是发给用户 TF 却还是无法加载。
最后根据这个答案里的提示,找到了一个解决方法,只要是相册里的图片都可以转成 UIImage 。如果没有设置 PHImageRequestOptions
的话,RAW 图片会多出一个不太清晰的预览图。有两个方法可以过滤这个预览图: