又学到了,用 Text(context.state.startDate, style: .timer) 来 update Live Activity,但显示的时间总是不能右对齐,GPT-5-Codex,Sonnet 4.5 都失败了,最后还是在 StackOverflow 找到了解决方案,加一个 modifier .multilineTextAlignment(.trailing),虽然看起来是用于修饰多行显示的,但其实单行也可以。

今天的 GPT-5-Codex VS Sonnet 4.5,前者完胜。一个 Feature,后者啰里八嗦了 10 来遍,找到了 Root Cause,改了半天,根本不 Work。前者 One Shot,直接搞定!

Vibe Coding 带来了大量的碎片时间,这些碎片时间该如何高效利用 🤔

本文作者丹尼尔·德·莱尼(Daniel De Laney)指出,自由开源软件(FOSS)领域普遍存在一个问题:许多功能强大的工具拥有“高级用户”界面,这使得普通用户望而却步,甚至放弃使用,或者不得不寻求技术人员的帮助。作者以视频转换工具Handbrake为例,说明普通用户常常因视频格式问题而感到困扰,但Handbrake复杂的界面令他们感到不适。

为了解决这一问题,作者提出了一个解决方案:为这些功能强大的工具开发一个简化的前端界面,隐藏其复杂性,只保留普通用户最常用、最核心的功能。他以自己开发的Magicbrake为例,这是一个Handbrake的简化前端,只有一个按钮,其唯一功能是将“奇怪”的视频文件转换为通用的MP4格式。作者强调,这种简化并非削弱软件功能,而是通过隐藏不常用功能,让普通用户更容易上手和使用。对于需要高级功能的用户,他们仍然可以使用原版软件。...

We've streamlined the entire RAG process. File Search automatically manages file storage, optimal chunking strategies, embeddings and the dynamic injection of retrieved context into your prompts. It works within the existing generateContent API, making it easy to adopt.

这可太方便了,一个 API 搞定一整套 RAG!

Rive 做的动画,效果还挺不错的

对舒服的 UI 毫无抵抗力···

Tweet image

把 Prompts 也录入到项目中了,感觉还不错,会 push 你去思考这次改动到底要做什么,也方便将来 Review。

Tweet image

AI Agents 有一个共同的「毛病」:过于顺从。给一个 command 后,都会想着如何去实现它,而不会反思这个 command 结合当前的 context 是否合理,是否有更优的解决方案。

为了这寸土寸金的 Context,还是把 XcodeBuild mcp 给 disable 了吧···

Tweet image

这个设计看着很舒服

Tweet image

这个苹果官方的视频中提到了不少性能优化技巧,挺值得一看的。

做了个自省的 App -- PingMind(暂不支持国区),方便做 Daily/Weekly/Monthly Reflection,用来写晨间日记也是不错的。不需要注册,开箱即用,支持 iCloud 同步。

又踩了一个坑(其实是代码不严谨):国行 iPhone 在首次打开 App 时,会弹出「是否允许联网」的窗口,在用户点击允许网络请求之前,所有网络请求都会失败,要做好兜底。

Claude Code 又进化了,Plan Mode 下,用户可以方便地给 Input 了

Tweet image

发现 Sonnet 4.5 的 Ego 还蛮大的,抛了一个 bug 让它解,它说找到了 Root Cause(其实不是),然后我发现了真正的 Root Cause,跟它 Argue 时,它会极力维护自己之前的结论,并声称「虽然你找到了 Root Cause,但你之前的代码也是有问题的,按照我这么改会更好」,并罗列了理由,当我反馈它的理由不成立时,就听不进去了···

踩了个小坑,原来 CloudKit 的 Schema 初始化/改动要在 iCloud Developer 网页后台手动 Deploy 到生产环境后才能正常工作。

原来苹果的 App Store Small Business Program 需要单独申请,不会默认开通···

如果平时的一些 Bug / Feature 都让 AI 来完成,代码都让 AI 来写,那么遇到 AI 实在搞不定的棘手 Bug 或 Feature 时,作为人又有什么自信能够解决 🤔

调试 SwiftUI 的一个 performance 问题,最终还是通过 Color.random() 找到了端倪。

同一个 Bug,让 Claude Code (Sonnet 4.5) 和 Codex (GPT-5-Codex) 分别试了 5 - 10 次,都搞不定,结果 gemini-cli 一次搞定···

看来要把 gemini-cli 扶正了。

Update: 又给了一个 case 让它解,一塌糊涂···

终于找到了在 iOS 26 上 disable 系统自动加上的 Liquid Glass on toolbar,奥义就是使用 .sharedBackgroundVisibility(.hidden) modifier.

因为 Copilot / Codex / Claude Code 全部 hit limit,索性试试让 Copilot 接入 OpenRouter 的 Sonnet 4.5,好家伙,不到 10 分钟,$10 没了,问题还没解决···

让 AI 写代码,很重要的一点是判断力:

  • 这是一个多大难度的 Feature?
  • 应该交给哪个 Agent 来实现?
  • 需求是否要再细分?
  • 需求是否没有说清楚?
  • Agent 是否已经撞墙?
  • 是否要换一个技术方案?
  • 是否已经到了 Agent 的能力极限?
  • 是否要拉另一个 Agent 来一起 Review 代码?
  • 是否需要自己介入?

这些判断力就是一个程序员综合素质的体现。

MCP 真是把双刃剑,一方面真是能提高效率,另一方面也真是耗 Token,实现一个 SwiftUI Feature,Agent 一大半时间都在跟 MCP 沟通(比如 XcodeBuild mcp,在那又是截屏,又是跳转页面,来来回回,token 都快用完了,目标按钮都还没找到)。

一个 Prompt 耗时一个小时成就达成。

Tweet image

发现自己的 Blog 用 node serve 时,会消耗 200M+ 的内存,想着 Bun 以性能著称,就试了下用 Bun serve,结果内存直接翻倍···

Claude Code 和 Codex 真是一个都不能少,前者适合需求明确的小任务,后者适合需要思考量的复杂任务。

目前对 GitHub Copilot Pro + Claude Code Pro + Codex Pro 的配搭比较满意。

Codex 在执行任务时,需要用到 Zip 来打包,一生要强的 Ta,最后手写了一个···

Replaced the use of missing system ZIP APIs with a custom zero‑dependency ZIP builder (Shared/Utilities/ReviewExportService.swift:244) so CSV export now packages daily/weekly/monthly answers without compilation errors. Nothing else needed

踩了个坑,iOS 18 上,如果 place 一个 menu(label 为 Image) 到 .topBarTrailing,那么它是不会水平居中的,会向右横移几个像素(同样的代码设置为 .topBarLeading 就没有问题),解决方案就是手动为这个 image 设置 offset

本文作者 Peter Steinberger 分享了他在使用代理工程(Agentic Engineering)方面的最新进展和经验,强调了“直接对话”(Just Talk To It)的无废话方法。他指出,代理工程已能生成几乎 100% 的代码,但许多人仍在尝试复杂的方法而非直接解决问题。作者主要使用 codex CLI 工具,并行运行多个代理,并让它们进行原子提交,以保持 Git 历史的整洁。他偏爱 gpt-5-codex 模型,认为它在智能和速度之间取得了很好的平衡,并能自动调整思考深度。...

Coding Agents have fundamentally changed the way I code.

这个 menu bar 小工具挺方便的,可以让网页驻留在工具栏

现在一些有点复杂度的 Feature 都是让两个 Coding Agent 互相 Review,效果还可以。

前几天看完《梵高手稿》有点不过瘾,就整理了下他的通信记录,并做成了一个网站。

在一个 iOS 项目里,refactor 一个 struct name,Xcode 搜索了两分钟,还没有找到所有引用该 struct 的地方,而这个项目大概只有二十个文件,每个文件不超过 1000 行,真正引用的文件只有1 个 🙂‍↕️。

这个月才刚过一半,Copilot 300 Requests 的份额就快用光了,感觉得开启 GLM 4.6 了。

看来还是要开启 Plan Mode,尤其是对于有一定复杂度的 Feature

这个 Timeline 的效果挺不错的,还是开源的

同一个需求分别让 Copilot、Codex 和 Claude Code 来实现,最后是 Claude Code 在第三次完整地实现了。Copilot 和 Codex 都失败了,其中 Codex 更是辛辛苦苦做了 20 分钟,最后拉了坨大的,给了反馈后,也调整不好,属于班里那种非常勤奋,但成绩又不拔尖的同学。

目前的 Coding Agent 不论多高级,都有一个共性:在实现一些 Feature 或修复 Bug 时会 "hit wall",而只靠它自己是没有能力解决的。此时必须依靠有经验、有能力且对项目有足够了解的程序员介入,才有可能找到解决方案。这也是为什么中高级程序员短期内不仅不会失业,还会变得更有价值的原因(之一)。

Sonnet 4.5 在尝试实现一个 Feature 时,发现可能带来的改动量比较大,索性就罢工了,这是一种进步还是退步,我竟一时分不清了···

The app is now back to its original, working state. The page-scrolling implementation would require a fundamentally different architecture (like using UIPageViewController or a more complex custom solution), which would be quite invasive to the current codebase.

原来这里还有一个小按钮,可以 copy 选定的动画效果

Tweet image

iOS 26 的 ToolbarItem 会自动被包一层 glass button,还没有办法去掉,同时要想实现分开的两个 button,不能简单的罗列两个 ToolbarItem 或者 HStack ,只能通过 iOS 26 新增 ToolbarSpacer 来实现...

AI Coding Agent 还有一个很严重的问题:不可靠性。有时很聪明,有时又会犯傻。所以还是要多几个工具,当其中一个掉队时,另一个可以顶上。

这篇文章详细阐述了作者Mitchellh如何利用AI作为主要辅助工具,开发Ghostty终端的非侵入式macOS自动更新功能。他分享了一个高度迭代的过程,包括前期人工规划、AI进行UI原型设计、代码清理、文档编写和模拟测试。文章强调,尽管AI在处理明确任务和提供灵感方面表现出色,但在面对复杂bug或生成次优代码时,人工的战略性调整、深入理解、重构和严格审查至关重要。整个项目耗时约8小时,花费15.98美元,作者认为AI加速了开发,尤其是在处理繁琐的UI样式方面,并允许他在AI工作时进行多任务处理,但始终坚持人工的最终审查和主导作用。

it's important that I review a plan before it goes off and does a ton of work....

初步试用了下 spec-kit,是挺强大、方便的,就是有点费 Token···

这篇文章批评了苹果iOS 26操作系统中引入的“液态玻璃”视觉语言,认为其过度强调视觉设计和装饰性UI效果,却牺牲了可用性。作者指出,半透明元素导致内容难以辨认,动画按钮分散用户注意力,缩小和拥挤的触控目标增加了操作难度,而不断变化的界面和对既有约定的打破则损害了可预测性和可发现性。文章总结道,iOS 26将视觉奇观置于用户体验之上,使得界面混乱、难以阅读且缺乏一致性,最终让用户感到沮丧,而非提供无缝的内容访问。

Claude Sonnet 4.5 is Awesome!

同样一个 bug,Codex (gpt-5-codex) 思考了两轮,每轮大概 10 分钟,都没有找到 root cause,Sonnet 4.5 一下就找到了(用的 Github Copilot),结合 Claude Code 应该会更强。

1 / 4
Next ›