阅读视图
# 老司机 iOS 周报 #361 | 2025-12-29
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
文章
🐕 Exploring interactive snippet intents
@BluesJiang: 这篇文章主要探索了一下 App Intent 框架。苹果在 WWDC25 上引入了 App Intent 的可交能力,在 Widget、App Shortcut、Intent 中都可以使用。作者探索了这个 App Intent 的交互框架和编码逻辑,旨在了解这个交互框架可以做什么,不可以做什么,交互分范式是什么样的。
这个框架使用 SwiftUI 编码,但是交互逻辑与方式则有很大的不同,在 App Intent 框架下,不存在传统生命式框架下的状态和交互变化,甚至按钮的触发事件也不是直接的,而是间接通过注册的 Intent 来完成响应。
如果有需要在 App 外做即时响应的功能,可以考虑研究一下。
🐎 使用 "git mv" 命令记录 Git 中文件名的大小写更改
@含笑饮砒霜:这篇文章主要介绍了在 macOS 和 Windows 默认的大小写不敏感但保留大小写的文件系统中,直接修改文件名大小写时 Git 不会记录该名称变更,可能导致文件系统与 Git 存储的文件名不一致,进而引发后续使用(如跨大小写敏感文件系统、CI 打包)的问题,同时给出解决方案:使用 git mv 命令记录文件名大小写变更,若不便使用该命令,可通过 “先重命名为临时名称、再改为目标名称” 的两阶段提交方式实现同样效果。
🐎 Swift Configuration 1.0 released
@AidenRao:Swift Configuration 1.0 的正式发布。该项目旨在为 Swift 应用提供一套统一的配置管理方案,帮助开发者优雅地处理来自环境变量、配置文件乃至远程服务的各类配置项。通过它,我们可以告别过去分散繁琐的配置逻辑,以更清晰、安全和可维护的方式构建应用。
🐎 Using associated domains alternate mode during development
@DylanYang:作者向我们介绍了如何在调试 AASA(apple-app-site-association) 相关能力时,通过开发者模式使域名相关的改动可以即时的被同步到。开发者模式需要我们在对应域名上加上特定后缀,并且只对开发模式的签名文件生效。有调试相关能力需求的开发者可以参考一下。
🐢 Command Line Interface Guidelines
@zhangferry:这篇文章是一份开源的《命令行界面(CLI)设计指南》,核心目标是结合传统 UNIX 原则与现代需求,帮助开发者打造更易用、更友好的 CLI 程序。虽然现在 GUI 非常普及,但 CLI 以其灵活、稳定、跨平台的优势在很多场景(例如 DevOps)都在放光发热。所以了解如何更好的设计 CLI 仍有必要,以下是从文章内挑选的几条重要设计指南:
- 基础规范:使用对应语言的命令行参数解析库,Swift 下是 swift-argument-parser;成功时返回 0,失败返回非 0;核心输出到
stdout(支持管道传递),日志,错误信息输出到stderr(避免干扰管道) - 帮助和文档:默认运行无参数时显示简洁的帮助,
-h/--help对应完整的帮助说明。 - 输出设计:人类可读最重要,如果为了人类可读破坏了机器可读,可以增加
--plain参数输出机器可读内容,这有利于 grep、awk 工具的集成 - 错误处理:避免冗余输出,核心错误应该放在末尾
- 参数和标志:优先使用
flags,而不是依赖位置读参数;所有flags都提供短格式和长格式两种(-h/--help);危险操作增加一个保护措施:输入名称、--force标志等 - 健壮性与兼容性:及时响应用户的输入(100ms 以内),如果流程耗时增加进度反馈(进度条)
- 环境变量:避免占用 POSIX 标准变量;本地用
.env管理但不应把.env当做配置文件;不要使用环境变量存储密钥等重要信息,这样很容易泄漏,推荐通过文件或密钥管理服务
🐕 SwiftUI Group Still(?) Considered Harmful
@Damien:本文指出 SwiftUI 的 Group 会把修饰符“分发”给每个子视图,曾让 onAppear 被多次触发。onAppear/task 虽被苹果特殊处理,但文档未改,且自定义修饰符与在 List 内仍照分发。解决方案为:除非必须一次性给兄弟视图统一加修饰符,否则别用 Group,直接重复代码或拆视图更稳妥。
代码
🐢 SwiftAgents
@阿权:SwiftAgents 为 Swift 开发者提供了一套现代化、类型安全、并发友好的 AI Agent 开发框架,兼具强大的功能与优雅的 API 设计,适合在苹果全平台及 Linux 上构建下一代智能应用。
实现能力:
- Agent 框架:支持 ReAct、PlanAndExecute、ToolCalling 等多种推理模式
- 灵活内存系统:包含对话内存、滑动窗口、摘要记忆及可插拔持久化后端
- 类型安全工具:通过
@Tool、@Parameter宏大幅减少样板代码 - 多代理编排:支持监督者-工作者模式、并行执行与智能路由
- 全平台支持:兼容 iOS 17+、macOS 14+、Linux(Ubuntu 22.04+)
- 强并发安全:基于 Swift 6.2 的 Actor 隔离与 Sendable 类型
- 可观测性与弹性:内置日志追踪、指标收集、重试策略与熔断器
适用场景:
- 对话式 AI 助手
- 自动化任务执行与决策流程
- 多 Agent 协同分析系统
- 需要持久化记忆与工具调用的复杂应用
🐕 XcodeBuildMCP 1.15.0 released
@Cooper Chen:XcodeBuildMCP 是一个基于 Model Context Protocol(MCP)的开源工具,将 Xcode 的构建、运行与模拟器能力以标准化接口暴露给 AI Agent,使其能够真正参与 iOS / macOS 的开发流程。开发者只需在首次调用时设置好 project、simulator 和 scheme,之后的每一次调用都可以直接复用配置,“一次设定,次次生效”。
这一设计显著降低了上下文和参数负担:
- 上下文占用减少 24.5%(smaller context footprint)
- 每次调用所需参数更少(fewer params per call)
对于依赖 AI 自动编译、跑测试、定位问题的场景而言,这意味着更低的 Token 消耗、更稳定的 Agent 行为,以及更高效的工具调用体验。XcodeBuildMCP 是连接 Xcode 与 AI 工作流的关键基础设施,尤其适合构建长期、可持续的智能开发系统。
音视频
🐕 CS193 Stanford 2025
@极速男孩:这是是斯坦福大学计算机科学系著名的公开课程 CS193p: Developing Applications for iOS(iOS 应用程序开发)。主要涵盖最新的 iOS SDK 特性。根据网站最新信息(Spring 2025 版本),内容包括 Xcode 的使用、SwiftUI 的视图与修饰符、Swift 类型系统、动画、数据持久化(SwiftData)以及多线程等。
内推
重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)
关注我们
我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。
关注有礼,关注【老司机技术周报】,回复「2024」,领取 2024 及往年内参
同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。
说明
🚧 表示需某工具,🌟 表示编辑推荐
预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)
Flutter限制输入框只能输入中文,iOS拼音打不出来?
读《疯狂的尿酸》
《疯狂的尿酸》是一本关于健康的科普书,来自于美国医学博士:戴维·珀尔马特,他是一位畅销书作家,写过《谷物大脑》和《菌群大脑》。
什么是尿酸
正常人体中的尿酸,2/3 是内源性的。尿酸是嘌呤的代谢产物,而嘌呤是细胞的重要组成部分,可以用来合成 DNA 和 RNA,人类的细胞因为不停地在分裂和衰老,死亡的细胞在被处理的时候就会产生尿酸。
另外 1/3 的尿酸来自于外部摄入的食物,包括动物内脏,海鲜,啤酒等。
果糖是一种特别的糖,它虽然不会造成血糖上升,但是会在代谢的时候产生尿酸。
尿酸会促进脂肪的产生
因为高尿酸与肥胖相关性很高,为了研究他们之间的因果关系,人们发现了“尿酸氧化酶”。这是一种存在于大多数动物体内的酶,能够迅速将尿酸排出体外,但是我们的人类祖先在几百万年的进化过程中,产生这个酶的基因被破坏了,变成了“假基因”。这就使得我们人类血液中的尿酸含量是其他哺乳动物的 3-10 倍。
当远古时代的人类吃下果糖后,果糖会在代谢过程中产生尿酸,而尿酸会打开人体的“脂肪开关”,帮助人体把果糖转化为脂肪。“从水果到脂肪”的生理机制帮助古代的灵长类动物能够度过漫长的、食物匮乏的冬天。
果糖
果糖是所有天然的碳水化合物中最甜的一种,天然的果糖只存在于水果和蜂蜜中,所以人类摄入得很少。而且水果中富含膳食纤维,可以延缓果糖被吸收的速度;而水果中富含的维生素 C 还有降低尿酸及促进尿酸排出的功能,所以吃水果对果糖的提升是很低的,代谢产生的尿酸也很少。
纯葡萄糖和果糖都是单糖(糖的最简单形式),而蔗糖是葡萄糖和果糖的组合,是一种双糖(两个分子连接在一起)。蔗糖进入人体后在小肠被分解,释放果糖和葡萄糖,然后被吸收。
果葡糖浆是一种以果糖为主的糖浆制品,果糖占比约 55%,葡萄糖占比 42%。最早是 1957 年由美国生物化学家 理查德·O 马歇尔 和 厄尔·R 科伊 生产出来,他们创造了一种酶,可以通过化学方法使玉米糖浆中的葡萄糖的结构重新排列,将其转化为果糖。
果葡糖浆从 20 世纪 70 年代开始流行,主要是因为其甜度比蔗糖高,价格又比蔗糖低,所以逐渐取代了蔗糖。到了 1984 年,可口可乐和百事可乐也都把各自品牌的饮料从添加蔗糖改为添加果葡糖浆。
果糖的升糖指数是所有天然糖中最低的,这意味着它不会直接导致血糖升高,也就不会刺激胰岛素的分泌,所以在一段时间内,人们把果糖视为一种“更安全”和“健康”的糖。但后来人们发现,相比于葡萄糖参与能量生成,果糖则参与能量储存,所以更容易让人肥胖。
果糖的代谢过程
果糖和葡萄糖除了一些化学键不同,其他结构几乎完全一样。然后,正是这微小的差异使得它们的代谢过程完全不同。
葡萄糖代谢的第一步(葡萄糖的磷酸化)是在葡萄糖激酶催化下分解,分解所释放的 ATP 也会在细胞中维持稳定的水平。ATP(三磷酸腺苷)是人体能量的来源。
果糖的代谢与葡萄糖完全不同。果糖在进入人体后,会迅速被血液吸收,然后被运输到肝脏中进行代谢。在肝细胞内,果糖激酶会开始工作,做出包括消耗 ATP 在内的一系列事情。果糖会消耗 ATP 的过程会带来一些下游效应,它会导致血液中的尿酸水平快速上升。由于果糖消耗了 ATP,细胞会发出信号:我们的能量快用完了。这会促使身体减缓新陈代谢以减少静息能量消耗。
除了消耗能量外,果糖还会触发脂肪的生成过程:肝脏中的果糖代谢会直接导致脂肪的产生:主要是以甘油三酯的形式存在,这是人体中最常见的脂肪存在形式。
AMP 活化蛋白激酶
AMP 活化蛋白激酶被激活时,它会向你的身体发出“狩猎状况良好”(即食物充足)的信号,你的身体就会让自己从储存脂肪转换为燃烧脂肪,帮助身体保持良好的狩猎状态。
AMP 活化蛋白激酶还可以帮助身体减少葡萄糖生成。二甲双胍就利用了这一点来实现降血糖。
与AMP 活化蛋白激酶对应的,还有一种让身体储存脂肪的酶,叫做腺苷单磷酸脱氨酶 2。动物在准备冬眠的时候,就会激活腺苷单磷酸脱氨酶 2 用于储存脂肪;在冬眠的时候,则切换到AMP 活化蛋白激酶用于燃烧脂肪。
而果糖代谢过程产生的尿酸,就是这两种酶的调节剂,尿酸能够抑制AMP 活化蛋白激酶,同时激活腺苷单磷酸脱氨酶 2 。
断食
作者推荐大家可以尝试 24 小时的断食,即:24 小时内不吃任何东西,且大量饮水。如果正在服用药物,务必继续服用。
我也见过一种 16:8 的轻断食方法:即 16 小时断食,8 小时进食。通常时间设置为中午 12 点-下午 8 点,或者上午 10 点到晚 6 点。
小结
本书主要揭示了果糖和尿酸在人体代谢中的核心原理,让我们更加关注饮食和内分泌的健康。

