|
1 | 1 | # 老司机 iOS 周报 #368 | 2026-04-13 |
2 | 2 |
|
3 | | - |
| 3 | + |
4 | 4 | 老司机 iOS 周报,只为你呈现有价值的信息。 |
5 | 5 |
|
6 | 6 | 你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 提出。 |
7 | 7 |
|
8 | 8 | ## 新闻 |
9 | 9 |
|
10 | | -> 行业相关的新闻、趣事、看法 |
11 | | -
|
12 | 10 | ### 🐕 [Swift 6.3 Released](https://www.swift.org/blog/swift-6.3-released/) |
13 | 11 |
|
14 | 12 | [@Kyle-Ye](https://github.com/Kyle-Ye): Swift 6.3 正式发布,带来了多项语言和工具链层面的重要更新。语言特性方面,新增 `@c` attribute 允许将 Swift 函数和枚举直接暴露给 C 代码并自动生成头文件,新增 `::` 模块名选择器语法解决多模块同名 API 的歧义问题,同时为库作者提供了 `@specialize`、`@inline(always)`、`@export(implementation)` 等性能控制属性。构建工具方面,Swift Package Manager 预览集成了统一的 Swift Build 引擎,并新增预编译 Swift Syntax 支持和 `swift package show-traits` 命令。平台扩展方面,Embedded Swift 在 C 互操作和调试能力上有显著改进,同时本版本也是 Swift SDK for Android 的首个正式发布版本。此外 Swift Testing 新增了 warning 级别的 issue severity 和测试取消支持,DocC 也增加了 Markdown 输出和代码块标注等实验性功能。建议所有 Swift 开发者关注并评估升级。 |
15 | 13 |
|
16 | | -### 🐕 [Beta Preview: ComposableArchitecture 2.0](https://www.pointfree.co/blog/posts/206-beta-preview-composablearchitecture-2-0) |
17 | | - |
18 | | -[@AidenRao](https://weibo.com/AidenRao):Point-Free 在这篇 Beta Preview 里预告了 **Composable Architecture 2.0**(Composable Architecture 是 Point‑Free 团队开源的一套 Swift 应用架构/框架,用来“以一致且可理解的方式”组织业务逻辑,并把 **组合(composition)** 和 **可测试性(testing)** 当作一等公民。它既可以用于 SwiftUI,也能用于 UIKit 等场景。):这是一次从底层模型到日常写法都“重新推倒重来”的大版本更新。它把 API 词汇刻意对齐 SwiftUI(例如 `onChange`、preferences、生命周期回调等),让你用熟悉的视图心智模型去写业务逻辑:`View` 负责“渲染什么”,而新的 `Feature` 负责“要做什么”。 |
19 | | - |
20 | | -## Developer - 设计开发加速器 |
| 14 | +## 新手推荐 |
21 | 15 |
|
22 | | -> 设计开发加速器相关活动 |
| 16 | +### 🐎 [Xcode 26.4 Simulator Paste Is Broken: Here's the Workaround](https://samwize.com/2026/03/30/xcode-simulator-paste-broken-workaround/) |
23 | 17 |
|
24 | | -## 新手推荐 |
| 18 | +[@Barney](https://github.com/BarneyZhaoooo):这篇文章记录了 Xcode 26.4 的一个很影响调试体验的回归问题:Mac 到 iOS Simulator 的剪贴板同步失效,`Cmd + V` 没反应,长按输入框也看不到 Paste。作者尝试了重启 Simulator、切换 Automatically Sync Pasteboard、`killall pboard` 和重置权限等常见手段都无效,最后给出一个可立即落地的 workaround:直接用 `xcrun simctl pbcopy booted` 把宿主机剪贴板内容写入当前启动中的模拟器。文末还补了一个更顺手的版本 `pbpaste | xcrun simctl pbcopy booted`,基本可以当作临时替代方案。适合最近升级到 Xcode 26.4、正好被这个问题卡住的同学收藏。 |
25 | 19 |
|
26 | | -> 收集一些对新手友好且质量不错的文章 |
27 | 20 |
|
28 | 21 | ## 文章 |
29 | 22 |
|
30 | | -> 写的不错的技术博客,包含但不局限于 iOS、多端统一、设计、产品等 |
31 | | -
|
32 | 23 | ### 🐕 [Tracking token usage in Foundation Models](https://artemnovichkov.com/blog/tracking-token-usage-in-foundation-models) |
33 | 24 |
|
34 | 25 | [@Cooper Chen](https://github.com/cjlcooper):这篇文章介绍了如何在 Apple Foundation Models 框架中追踪 token 使用情况,并将其作为优化大模型应用的关键指标。作者通过示例展示了如何统计指令、prompt 和完整对话的 token 消耗,并结合上下文窗口评估占用比例,判断是否接近限制。文章还总结了多种优化方法,如精简 prompt、减少冗余内容和拆分长对话,以提升性能和降低成本。同时提供可视化工具帮助开发者直观分析 token 分布。整体而言,这篇文章强调了以 token 为核心的工程优化思路,对构建高效 LLM 应用具有实用价值。 |
35 | 26 |
|
| 27 | +### 🐕 [Beta Preview: ComposableArchitecture 2.0](https://www.pointfree.co/blog/posts/206-beta-preview-composablearchitecture-2-0) |
| 28 | + |
| 29 | +[@AidenRao](https://weibo.com/AidenRao):Point-Free 在这篇 Beta Preview 里预告了 **Composable Architecture 2.0**(Composable Architecture 是 Point ‑ Free 团队开源的一套 Swift 应用架构 / 框架,用来“以一致且可理解的方式”组织业务逻辑,并把 **组合(composition)** 和 **可测试性(testing)** 当作一等公民。它既可以用于 SwiftUI,也能用于 UIKit 等场景。):这是一次从底层模型到日常写法都“重新推倒重来”的大版本更新。它把 API 词汇刻意对齐 SwiftUI(例如 `onChange`、preferences、生命周期回调等),让你用熟悉的视图心智模型去写业务逻辑:`View` 负责“渲染什么”,而新的 `Feature` 负责“要做什么”。 |
| 30 | + |
| 31 | + |
36 | 32 | ### 🐕 [Xcode Build Optimization using 6 Agent Skills](https://www.avanderlee.com/xcode/xcode-build-optimization-using-6-agent-skills/) |
37 | 33 |
|
38 | 34 | [@阿权](https://github.com/bqlin):作者介绍了自己的一套 AI Agent Skill,可以自动分析并优化 Xcode 项目的编译速度。原理是同城修改 Xcode 项目配置来优化编译流程。处理了影响编译速度的几个因素:代码复杂度、build phases、Swift Package 依赖、增量构建等(具体分析过程可参考 [Build performance analysis for speeding up Xcode builds](https://www.avanderlee.com/optimization/analysing-build-performance-xcode/))。这套 skill 工作流程如下: |
|
47 | 43 |
|
48 | 44 | 文章提供了 AI Agent 提升 iOS 研效的另一种思路,希望对你有所启发。 |
49 | 45 |
|
50 | | -### 🐎 [Xcode 26.4 Simulator Paste Is Broken: Here's the Workaround](https://samwize.com/2026/03/30/xcode-simulator-paste-broken-workaround/) |
51 | | - |
52 | | -[@Barney](https://github.com/BarneyZhaoooo):这篇文章记录了 Xcode 26.4 的一个很影响调试体验的回归问题:Mac 到 iOS Simulator 的剪贴板同步失效,`Cmd + V` 没反应,长按输入框也看不到 Paste。作者尝试了重启 Simulator、切换 Automatically Sync Pasteboard、`killall pboard` 和重置权限等常见手段都无效,最后给出一个可立即落地的 workaround:直接用 `xcrun simctl pbcopy booted` 把宿主机剪贴板内容写入当前启动中的模拟器。文末还补了一个更顺手的版本 `pbpaste | xcrun simctl pbcopy booted`,基本可以当作临时替代方案。适合最近升级到 Xcode 26.4、正好被这个问题卡住的同学收藏。 |
53 | | - |
54 | 46 | ### 🐎 [Why Your @Observable Class init() Runs Multiple Times in SwiftUI](https://livsycode.com/swiftui/why-your-observable-class-init-runs-multiple-times-in-swiftui/) |
55 | 47 |
|
56 | 48 | [@DylanYang](https://github.com/Dylan19Yang):本文作者主要讲解了 SwiftUI 中被 @Observable 修饰的类初始化方法多次执行的问题,核心原因是使用 @State 存储 ViewModel 时,会随 View 频繁重建重复执行初始化逻辑,搭配 NavigationStack 导航场景会进一步加剧该问题。作者同时给出了.task 延迟赋值、将 ViewModel 托管至上层视图等解决方案,并提醒开发者不要在 init 中编写耗时操作与副作用逻辑。 |
57 | 49 |
|
58 | | -## 工具 |
59 | | - |
60 | | -> 开发过程中常用的工具,及一些新工具的介绍 |
61 | | -
|
62 | | -## 代码 |
63 | | - |
64 | | -> 库,代码段,开源app |
65 | | -
|
66 | | -## 书 |
67 | | - |
68 | | -> 比较不错的书的推荐和书评 |
69 | | -
|
70 | | -## 音视频 |
71 | | - |
72 | | -> 比较不错的书的推荐和书评 |
73 | | -
|
74 | 50 | ## 内推 |
75 | 51 |
|
76 | 52 | 重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考 |
|
0 commit comments