# 老司机 iOS 周报 #348 | 2025-08-25

![ios-weekly](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/weekly-header/348.jpg?raw=true)
老司机 iOS 周报，只为你呈现有价值的信息。

你也可以为这个项目出一份力，如果发现有价值的信息、文章、工具等可以到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 里提给我们，我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 提出。

## 新手推荐

### 🐎 [High Level Anatomy of a Camera Capturing Session](https://mfaani.com/posts/ios/swiftui-camera-learnings/)

[@AidenRao](https://weibo.com/AidenRao)：这边文章用比较简单易懂的话，介绍苹果的相机从拍摄到 Swift 中展示的完整流程。文章不长，比较适合做个相机原理了解。

## 文章

### 🌟 🐕 [从 DisplayList 到 Transaction: SwiftUI 调试实战](https://kyleye.top/posts/swiftui-debug-analysis)

[@Kyle-Ye](https://github.com/Kyle-Ye): 文章介绍了如何通过 SwiftUI 中的相关环境变量，使用 DisplayList 输出分析视图渲染问题，通过符号断点和汇编调试深入分析 SwiftUI 内部机制，并使用 AttributeGraph 等调试工具进行问题定位。

### 🐕 [Faster Equatable and Hashable conformances with Identifiable](https://erkek.in/faster-equatable-and-hashable-conformances-with-identifiable)

[@Smallfly](https://github.com/iostalks)：这篇文章聚焦 Swift 中 `Equatable` 与 `Hashable` 协议的性能优化，揭示了编译器自动合成实现的潜在瓶颈，并提出结合 `Identifiable` 协议的改进方案。核心内容包括：

- 问题分析：默认合成的 `Equatable`/`Hashable` 会逐成员比较或哈希，对含大集合（如 `[User]`）或嵌套结构的类型，复杂度达 O(N)，在 SwiftUI 视图更新、`Set` 操作中易成性能瓶颈。
- 优化方案：利用 `Identifiable` 的 `id` 属性（如 `UUID`），仅基于唯一标识实现 `Equatable` 和 `Hashable`，将操作复杂度降至 O(1)。
- 数据验证：基准测试显示，含 1000+ 员工的 `Company` 类型，`Identifiable` 方案的 `Equatable` 快 3 倍，`Hashable` 快 3 万倍。

文章结合编译器源码与 SwiftUI 实践，为性能敏感场景提供了可落地的优化思路。

### 🐢 [What's New in UIKit](https://sebvidal.com/blog/whats-new-in-uikit-26/)

[@Barney](https://github.com/BarneyZhaoooo)：这篇文章详细总结了 iOS 26 中 UIKit 的全面更新。尽管 UIKit 不再是 WWDC 的主角，但今年仍获得了大量新特性。
主要更新概况：
	•	`Liquid Glass` 设计语言：新增 `UIGlassEffect`、`UIButton.Configuration` 的玻璃按钮样式，以及 UIBarButtonItem 的共享背景支持
	•	导航栏增强：`UINavigationItem` 新增 `subtitle`、`largeTitle`、`attributedTitle` 等属性，支持更丰富的标题展示
	•	分割视图改进：`UISplitViewController` 支持新的 `inspector` 列，提供类似 `macOS` 的检查器面板
	•	标签栏配件：`UITabAccessory` 允许在标签栏上方添加浮动工具栏，支持折叠展开动画
	•	HDR 色彩支持：`UIColor` 新增 HDR 初始化方法，`UIColorPickerViewController` 支持曝光调节
	•	角落配置 API：`UICornerConfiguration` 提供统一的圆角设置方案，支持容器同心圆角
	•	自然文本选择：`UITextView` 支持混合左右文字的自然选择，`selectedRanges` 替代 selectedRange
	•	主菜单系统：`UIMainMenuSystem` 为 `iPadOS` 提供 `macOS` 风格的菜单栏
	•	观察者模式集成：`UIView` 和 `UIViewController` 原生支持 `Swift Observation` 框架
	•	滑块增强：`UISlider` 新增刻度配置和无拖柄样式
整体而言，iOS 26 的 `UIKit` 更新聚焦于视觉现代化、跨平台一致性和开发便利性的提升。

### 🐕 [SwiftUI for Mac 2025](https://troz.net/post/2025/swiftui-mac-2025/)

[@Cooper Chen](https://github.com/cjlcooper)：这篇文章总结了 SwiftUI 在 macOS 26 上的多项改进，主要亮点包括：

-  **统一图标格式**：Xcode 26 新增 Icon Composer，可用 SVG 分层生成跨平台图标，并向下兼容旧系统。
-  **Liquid Glass 风格**：按钮、滑块、切换等控件拥有玻璃质感与动态反馈，UI 更现代。
-  **原生 WebView**：SwiftUI 首次内置 WebView，无需桥接即可加载网页并追踪导航事件。
-  **列表性能优化**：List 在处理上万条数据时依然流畅，适合大数据量展示。

整体来看，SwiftUI 在 Mac 上的易用性与表现力进一步提升，对想要打造现代化界面的开发者非常有参考价值。

### 🐎 [Git 2.51 support push/pull stash](https://github.blog/open-source/git/highlights-from-git-2-51/)

[@david-clang](https://github.com/david-clang)：过去 git stash 难以在不同机器之间迁移，Git 在 8 月 18 日发布的 2.51.0 版本支持 push/pull stash，实现跨机器共享 stash。但要在 GUI 工具上应用该特性，还要再等等，目前 Fork 支持的 Git 版本是 2.45.2。

## 内推

重新开始更新「iOS 靠谱内推专题」，整理了最近明确在招人的岗位，供大家参考

具体信息请移步：https://www.yuque.com/iosalliance/article/bhutav 进行查看（如有招聘需求请联系 iTDriverr）

## 关注我们

我们是「老司机技术周报」，一个持续追求精品 iOS 内容的技术公众号，欢迎关注。

**关注有礼，关注【老司机技术周报】，回复「2024」，领取 2024 及往年内参**

![](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/qrcode_for_wechat.jpg?raw=true)

同时也支持了 RSS 订阅：https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。

## 说明

🚧 表示需某工具，🌟 表示编辑推荐

预计阅读时间：🐎 很快就能读完（1 - 10 mins）；🐕 中等 （10 - 20 mins）；🐢 慢（20+ mins）
