# 老司机 iOS 周报 #328 | 2025-03-24

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

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

## 文章

### 🌟 🐎 [Understanding SwiftUI's Namespace](https://kyleye.top/posts/swiftui-namespace/)

[@Smallfly](https://github.com/iostalks)：这篇文章介绍了 SwiftUI `Namespace` 的工作原理，从底层实现到实际应用，再到高级用法，内容详实且易于理解。作者不仅解释了 `Namespace` 如何生成唯一标识符，还通过实际代码示例展示了如何利用它实现平滑的几何动画。相信无论是初学者还是有一定经验的开发者，都能从中获得一些启发。

### 🐕 [Designing a custom lazy list in SwiftUI with better performance](https://www.swiftwithvincent.com/blog/animation-vs-withanimation-whats-the-difference)

[@Barney](https://github.com/BarneyZhaoooo)：这篇文章探讨了 SwiftUI 中 `animation` 与 `withAnimation` 的区别。`animation` 是一个修饰符，直接在视图上应用动画，而 `withAnimation` 则是一个函数，用于在特定的状态变化中包裹代码，使其能够动画化。作者通过示例展示了两者的用法和适用场景，强调了使用 `withAnimation` 时可以更灵活地控制动画效果。

### 🐎 [Identifying individual sounds in an audio file](https://www.createwithswift.com/identifying-individual-sounds-in-an-audio-file/)

[@Damien](https://github.com/ZengyiMa)：这篇文章介绍了如何实现声音识别功能，使用 Apple 的 Sound Analysis 框架来识别音频文件中的特定声音。通过这个文章教程，读者可以构建一个应用，能够分析音频文件、分类声音的 App。文章还提到，这种声音识别功能适用于预录制音频文件的分析，可以用于批量处理、高质量录音的编辑以及离线分析等场景，为音频分析任务提供了更广泛的应用可能性。

### 🐕 [Swift + Zed = ❤️ ](https://tgomareli.medium.com/swift-zed-%EF%B8%8F-6b08de865425)

[@Cooper Chen](https://github.com/cjlcooper)：这篇文章介绍了作者如何在 Zed 编辑器中优化 Swift 编程体验。作为一位文本编辑器爱好者，作者分享了他从 Neovim 转向 Zed 的过程，探讨了安装 Swift 扩展、解决 Xcode 项目中的代码补全问题，以及创建自定义任务和快捷键的具体步骤。通过这些配置，作者成功提升了开发效率，使得构建、测试和运行 Swift 包变得更加流畅和自然。如果你正在寻找高效的编程工具，这篇文章值得一读。

### 🐎 [Synchronous Work](https://www.massicotte.org/synchronous-work)

[@DylanYang](https://github.com/Dylan19Yang)：作者分别通过 DispatchQueue、Task.detached、nonisolated func 等方式为我们介绍了如何去异步执行一段耗时逻辑。最终作者更推荐 async let 的方式，因为它更加简洁，但也要注意它并不是时刻生效的，我们需要关注方法的 isolated 的状态。同时作者也提到同步方法本身会更加灵活，因为它可以按需转为异步调用，给了调用方更多选择。

## 工具

### 🐎 [Framous: Screenshot Frames](https://apps.apple.com/us/app/framous-screenshot-frames/id6636520519?mt=12)

[@阿权](https://github.com/bqlin)：[Framous](https://apps.apple.com/us/app/framous-screenshot-frames/id6636520519?mt=12) 是一款快捷生成 Apple 设备带壳截图的 Mac App，支持生成常见的 iPhone、iPad、Apple Watch、Mac、Apple TV 设备的带壳截图。对于独立开发者上架或者介绍某款 App 时是款很实用的工具。App 支持功能：

- 可以通过拖放、复制粘贴、捷径等方式将图片生成带壳截图。
- 自动识别截图来源设备（大概是根据分辨率），自动匹配设备。
- 支持多个设备合成一张图或批量导出多张图。
- 丰富的自定义选项，支持切换设备、修改设备颜色、圆角、设备按钮位置、屏幕挖孔样式等。

App 在 Mac App Store 免费下载，但生成支持的设备截图仍需内购。

## 代码

### [GlyphixTextFx](https://github.com/ktiays/GlyphixTextFx)

[@AidenRao](https://weibo.com/AidenRao)：**GlyphixTextFx** 主要实现了类似 SwiftUI 中 `numericText` 的数字变化过渡动画效果。以下是核心内容：

- **字符级动画**：当文本内容变化时，每个字符会以平滑的动画过渡（如数字增减时的滚动效果）。
- **灵活定制**：支持自定义过渡方向（向上 / 向下）、文本对齐方式（左 / 中 / 右）以及多行文本显示。
- **视觉效果优化**：提供模糊效果选项增强过渡美感。
- **跨框架兼容**：适用于 UIKit、AppKit 和 SwiftUI，支持 iOS 13+ 和 macOS 11.0+

## 音视频

### [Swift DevRoom at FOSDEM 2025](https://swiftlang.github.io/event-fosdem/)

[@zhangferry](zhangferry.com): FOSDEM 是一个专门为自由软件及开源软件开发者而设的周年会议，由比利时的布鲁塞尔自由大学及一些志愿者共同筹办，被视为全欧洲、乃至全球最优秀的自由软件及开源软件活动。Swift 作为开源语言，曾在 2023 年[申请 FOSDEM](https://forums.swift.org/t/swift-fosdem/67752)，但被官方拒绝，2024 年再次申请，终于通过，正式会议于 2025 年 2 月召开，已经结束。

作为向开源社区展示 Swift 的一次重要机会，演讲主题也跟开源相关，涵盖：服务端、嵌入式、跨语言交互等内容，总计 15 场，每个在 20min 左右，所有视频内容都可以到 FOSDEM 查看。


## 内推

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

[上海/北京/深圳/杭州] 抖音 - 基础技术 - iOS/Android

[上海] BiliBili - 移动端开发实习生（社区生态）- iOS/Android

具体信息请移步：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）
