普通视图

发现新文章,点击刷新页面。
昨天 — 2025年11月24日肘子的Swift记事本

毕业 30 年同学群:一场 AI 引发的“真假难辨”危机 - 肘子的 Swift 周报 #112

作者 Fatbobman
2025年11月24日 22:00

大学毕业快三十年了,同学们大多忙于事业与生活,群里常年冷清。但上周四晚上,一阵久违的热闹突然打破了沉寂。一位十几年未露面的同学重新加入群聊,说家里遭遇了变故,向大家求助。很快就有人提出质疑——这真的是本人吗?毕竟群里多数人从事法律相关工作,职业敏感度让他们对任何异常格外警觉。

昨天以前肘子的Swift记事本

深入 iMessage 底层:一个 Agent 是如何诞生的

作者 Fatbobman
2025年11月19日 22:12

iMessage 深度集成在 Apple 生态中,却从未提供官方 API。本文邀请 imessage-kit 作者 LingJueYa 分享如何突破这一限制,让 AI Agent 进入 iMessage。文章详细介绍了从解析 SQLite 数据库、处理 Core Data 时间戳、绕过 macOS 沙盒限制,到用 AppleScript 实现消息发送的完整技术方案,以及在构建过程中踩过的坑与解决之道。

Homebrew 5.0:并行加速、MCP 加持,与 Intel 的最后倒计时 - 肘子的 Swift 周报 #111

作者 Fatbobman
2025年11月17日 22:00

几天前,我像往常一样在输入 `brew update` 后顺手执行了 `brew upgrade`。出乎意料的是,终端里突然出现了从未见过的画面——大量组件与工具并行下载、整齐排列、同时推进。短暂的惊讶之后,我才从新闻中得知:Homebrew 已经发布了 5.0 版本

Grow on iOS 26:UIKit + SwiftUI 混合架构下的 Liquid Glass 适配实战

作者 Fatbobman
2025年11月12日 22:12

Grow 是一款在 173 个国家和地区获得 App Store 编辑推荐、拥有超过 18 万五星评价的健康管理应用。在适配 iOS 26 的 Liquid Glass 设计语言时,团队遇到了不少挑战:如何在 UIKit + SwiftUI 混合架构下实现原生的 morph 效果?如何精确控制 Scroll Edge Effect?如何处理自定义导航栏元素的动态尺寸?我邀请了 Grow 的开发者之一 Shuhari,分享团队在这次适配过程中的实战经验。文章涵盖 Sheet、Navigation、Popover 等场景的改造方案,深入探讨 UIBarButtonItem 尺寸计算、CABackdropLayer 副作用处理等底层细节,还展示了如何利用 Core Text 创造“玻璃文字”效果。

惊险但幸运,两次! - 肘子的 Swift 周报 #109

作者 Fatbobman
2025年11月3日 22:00

我的岳父岳母的身体一向很好,尤其是岳父,八十多岁了从未住过院。但在短短的时间里,他们先后经历了两场惊魂时刻——好在结果都十分幸运。

Swift 官方发布 Android SDK - 肘子的 Swift 周报 #108

作者 Fatbobman
2025年10月27日 22:00

10 月 24 日,Swift Android 工作组发布了 Swift SDK for Android 的 nightly 预览版本。这标志着该 SDK 从早期的内部测试阶段迈入了官方支持阶段,也意味着 Swift 在跨平台之路上又向前迈出了一大步。

去 Apple Store 修手机 - 肘子的 Swift 周报 #107

作者 Fatbobman
2025年10月20日 22:00

父亲的 iPhone 16 突然无法充电。预约后,我前往 Apple Store 送修。工作人员确认问题后,为我提供了一部 iPhone 14 作为备用机,并协助完成数据转移。十二天后(期间正好赶上一个长假),设备维修完成——更换了 Type-C 接口,同时还免费更换了一块新电池。体验一如既往地令人满意。

高通收购 Arduino:历史的轮回 - 肘子的 Swift 周报 #106

作者 Fatbobman
2025年10月13日 22:00

上周,高通宣布收购知名开源硬件平台 Arduino,并同步发布首款搭载自家芯片的 Arduino UNO Q。与经典版本不同,UNO Q 采用了“双脑”架构——由运行 Linux 的 Qualcomm Dragonwing 处理器负责高性能计算,同时保留 STM32 微控制器以执行实时控制任务。这种设计无疑强大,却也悄然偏离了 Arduino 一直以来“简单、低成本、易上手”的初心。

Sora 2:好模型,但未必是好生意 - 肘子的 Swift 周报 #105

作者 Fatbobman
2025年10月6日 22:00

一周前,OpenAI 发布了 Sora 2 模型,并同步推出了带有社交平台属性的 Sora 应用。目前,用户仅能通过 iOS 应用使用该模型生成视频。无论在视觉细节、人物形象、环境纹理,还是声画同步方面,Sora 2 相较早期版本都有显著提升。

苹果正在为系统级支持 MCP 做准备 - 肘子的 Swift 周报 #104

作者 Fatbobman
2025年9月29日 22:00

根据 9TO5Mac 的报道,苹果正在为其生态系统添加 MCP(Model Context Protocol)支持,以实现智能体 AI 功能。其实现路径与我们在周报 #077 中的设想十分吻合:通过开发者熟悉的 App Intents 框架进行系统级集成,既保持了苹果一贯追求的“可控、安全、完整”用户体验,又巧妙规避了让普通用户直接面对复杂 MCP 配置的门槛。

完成 Liquid Glass 的适配了吗? - 肘子的 Swift 周报 #102

作者 Fatbobman
2025年9月15日 22:00

明天 iOS 26 就要正式发布了,必然会有大批用户第一时间升级,体验全新的 Liquid Glass 设计语言。相比往年,今年的适配工作量明显更大——尤其对于交互复杂的应用,可能会遇到许多意想不到的问题。

从开放平台到受控生态:谷歌宣布 Android 开发者验证政策 - 肘子的 Swift 周报 #101

作者 Fatbobman
2025年9月8日 22:00

谷歌宣布从 2026 年 9 月起,将 Play 商店的开发者验证要求扩展到所有 Android 应用安装方式,这从根本上改变了该平台的开放分发模式。这项政策要求所有在 Google Play 之外分发应用的开发者必须向谷歌注册、提供政府身份证明并支付费用。该政策将首先在巴西、印度尼西亚、新加坡和泰国实施,2027 年扩展至全球。这代表着 Android 自诞生以来对其开放生态系统原则的最重大背离。

用 MainActor.assumeIsolated 解决旧 API 与 Swift 6 适配问题

作者 Fatbobman
2025年9月3日 22:00

尽管 Swift 提供严格并发检查已有一段时间,但许多苹果官方 API 仍未对此进行充分适配,这种情况可能还会持续相当长的时间。随着 Swift 6 的逐步普及,这个问题变得愈发突出:开发者一方面希望享受 Swift 编译器带来的并发安全保障,另一方面又对如何让代码满足编译要求感到困惑。本文将通过一个 NSTextAttachmentViewProvider 的实现案例,介绍 MainActor.assumeIsolated 在特定场景下的妙用。

写给这段旅程,也写给未来的自己 - 肘子的 Swift 周报 #100

作者 Fatbobman
2025年9月1日 22:00

一转眼,周报已经来到了第 100 期。回想 2023 年 10 月第一期时,我并没有把握自己能坚持这么久。但过去两年,通过持续创作,我收获了许多。

未来将至:人形机器人运动会 - 肘子的 Swift 周报 #99

作者 Fatbobman
2025年8月25日 22:00

不久前在北京举办的世界人形机器人运动会上,出现了许多令人忍俊不禁的场景:机器人对着空气挥拳、跑步时左摇右摆、踢球时相互碰撞后集体倒地。尽管这些画面看起来颇为滑稽,但回顾过去几年人形机器人的发展历程就会发现,即便当前的产品仍存在诸多不足,其进步却是惊人的。按照这样的发展速度,也许在十年甚至更短的时间内,人形机器人就将走进我们的日常生活,满足各种实际需求。

我差点失去了巴顿(我的狗狗) - 肘子的 Swift 周报 #98

作者 Fatbobman
2025年8月18日 22:00

巴顿已经 13 岁了。尽管大多数时候他都表现出远超同龄狗狗的活力和状态,但随着年龄增长,各种健康问题也随之而来。不久前,巴顿被检查出肺动脉高压,医生给出了针对性的治疗方案。就在我为治疗似乎初见成效而欣慰时,上周一下午,巴顿突然无法站立,大量流口水,表现出明显的心脏不适。

苹果首次在中国永久关闭了一家 Apple Store - 肘子的 Swift 周报 #97

作者 Fatbobman
2025年8月11日 22:00

上周六,苹果正式永久性关闭了位于中国大连的一家 Apple Store 零售店,这是苹果首次在中国关闭直营店。该店于 2015 年开业,距今正好十年。消息传出后,网络上出现了不少相关报道,其中一些将此事解读为苹果在中国经营状况的某种信号。由于该店正好位于我所在的城市,我对这个事件有一些实地了解,想分享一些不同的观察角度。

❌
❌