Skip to content

Commit c9f883b

Browse files
committed
refactor: 发布前整理 & 330 期模版创建
1 parent 7401f0c commit c9f883b

File tree

2 files changed

+85
-47
lines changed

2 files changed

+85
-47
lines changed

Reports/2025/#329-2025.03.31.md

Lines changed: 11 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,12 @@
11
# 老司机 iOS 周报 #329 | 2025-03-31
22

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

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

8-
## 新闻
9-
10-
> 行业相关的新闻、趣事、看法
11-
12-
##  Developer - 设计开发加速器
13-
14-
> 设计开发加速器相关活动
15-
168
## 新手推荐
179

18-
> 收集一些对新手友好且质量不错的文章
19-
2010
### 🐎 [Understanding structural identity in SwiftUI](https://tanaschita.com/swiftui-structural-identity/)
2111

2212
[@阿权](https://github.com/bqlin):SwiftUI 使用结构体描述视图,由 SwiftUI 内部完成视图的绘制与更新。而结构体标识则是视图层级中的唯一 id,用于识别状态变化前后的视图结构体是否是同一视图,进而进行更新和重绘。
@@ -25,25 +15,21 @@
2515

2616
## 文章
2717

28-
> 写的不错的技术博客,包含但不局限于 iOS、多端统一、设计、产品等
29-
30-
### 🐕 [Deploying a Swift Server App to Fly.io and Railway](https://swifttoolkit.dev/posts/deploy-fly-railway)
31-
32-
[@Kyle-Ye](https://github.com/Kyle-Ye): 本文介绍了如何使用 Vapor 框架部署 Swift 服务端应用程序到 Fly.io 和 Railway 平台。文章涵盖了初始化 Vapor 项目、编写 Dockerfile、以及在两个平台上部署应用的具体步骤。此外 , 还提到了一些进阶主题 , 如自定义域名和添加数据库服务等。
33-
3418
### 🐢 [Profiling apps using Instruments](https://developer.apple.com/tutorials/instruments)
19+
3520
[@Smallfly](https://github.com/iostalks):这是苹果官方出品的 Instruments 教程。Instruments 主要用来分析应用程序的性能、资源使用和行为,了解如何提高响应性,减少内存使用,以及运行时的复杂的行为。该教程包含对卡顿的基础知识介绍,卡顿的分析和检测,并提供了卡顿的优化建议。
3621

37-
### 🐢 [充分理解C/C++重要概念:运行时库](https://mp.weixin.qq.com/s/Fed-0uVaOGDUiftH43vnGA)
38-
[@极速男孩](https://github.com/ztlyyznf001):本文系统解析了C/C++运行时库的核心概念与实现机制。运行时库作为程序运行的基础支撑,封装了操作系统API(如内存管理malloc/文件操作fopen)、提供标准库函数(字符串/数学运算),并管理程序生命周期(全局变量初始化/资源清理)。跨平台差异显著:Linux依赖glibc/libstdc++,Windows通过MSVC运行时库实现,Android/iOS则采用轻量化Bionic/libc++。开发中需警惕多实例问题(静态链接导致内存堆冲突)和多版本兼容性问题(GLIBC/C++ABI不匹配),解决方案包括统一动态链接、规范跨模块接口设计(避免传递C++对象)及固化工具链版本。
22+
### 🐢 [充分理解 C/C++ 重要概念:运行时库](https://mp.weixin.qq.com/s/Fed-0uVaOGDUiftH43vnGA)
23+
24+
[@极速男孩](https://github.com/ztlyyznf001):本文系统解析了 C/C++ 运行时库的核心概念与实现机制。运行时库作为程序运行的基础支撑,封装了操作系统 API(如内存管理 malloc/ 文件操作 fopen)、提供标准库函数(字符串 / 数学运算),并管理程序生命周期(全局变量初始化 / 资源清理)。跨平台差异显著:Linux 依赖 glibc/libstdc++,Windows 通过 MSVC 运行时库实现,Android/iOS 则采用轻量化 Bionic/libc++。开发中需警惕多实例问题(静态链接导致内存堆冲突)和多版本兼容性问题(GLIBC/C++ABI 不匹配),解决方案包括统一动态链接、规范跨模块接口设计(避免传递 C++ 对象)及固化工具链版本。
3925

4026
### 🐕 [Detecting body poses in a live video feed](https://www.createwithswift.com/detecting-body-poses-in-a-live-video-feed/)
4127

4228
[@AidenRao](https://weibo.com/AidenRao):这篇文章介绍了如何利用苹果的 Vision 框架在 SwiftUI 应用中实时检测视频流中的人体姿态。主要步骤包括:
4329

44-
1. 通过`AVCaptureSession`管理视频采集,处理权限申请,配置视频输入/输出格式,并调整画面方向以适应界面显示
45-
2. 使用`UIViewRepresentable`协议将`AVCaptureVideoPreviewLayer`集成到 SwiftUI 视图中,实现实时画面展示
46-
3. 创建`PoseEstimationViewModel`类处理视频帧,利用 Vision 的`VNHumanBodyPoseRequest`检测 19 个关键身体节点(如头、肩、肘、腕等),并建立关节连接关系(如肩到肘、膝到踝等)。
30+
1. 通过 `AVCaptureSession` 管理视频采集,处理权限申请,配置视频输入 / 输出格式,并调整画面方向以适应界面显示
31+
2. 使用 `UIViewRepresentable` 协议将 `AVCaptureVideoPreviewLayer` 集成到 SwiftUI 视图中,实现实时画面展示
32+
3. 创建 `PoseEstimationViewModel` 类处理视频帧,利用 Vision 的 `VNHumanBodyPoseRequest` 检测 19 个关键身体节点(如头、肩、肘、腕等),并建立关节连接关系(如肩到肘、膝到踝等)。
4733
4. 通过检测到的身体坐标点动态绘制骨骼连线,最终实现在视频流上叠加姿态骨架图的效果
4834

4935
文章提供了完整的代码实现思路,适用于健身追踪、AR 等场景开发。
@@ -52,41 +38,19 @@
5238

5339
[@DylanYang](https://github.com/Dylan19Yang):作者通过一系列的 Demo 向我们展示了 Group 目前存在的一些问题。官方文档上写着作用于 Group 的 modifier 会作用在 Group 内的每一个元素上,但实际在模拟器上的表现并非如此。作者猜测可能和渲染 SwiftUI 的根结点实质是一个 UIKit 的 view 有关。如果使用一个 VStack 包裹 Group,则它的表现又符合预期了。
5440

55-
### 🐎 [这篇GPU学习笔记,详细整理了其工作原理、编程模型和架构设计](https://mp.weixin.qq.com/s/IzsI_dzX6AxFnJGg8zewEw)
41+
### 🐎 [这篇 GPU 学习笔记,详细整理了其工作原理、编程模型和架构设计](https://mp.weixin.qq.com/s/IzsI_dzX6AxFnJGg8zewEw)
42+
5643
[@老驴](https://weibo.com/u/6090610445):最近 AI 大火也让 nvidia 再次在风口浪尖烧,你有没有想过 GPU 到底是怎么工作的?它为什么在特定应用下这么快?和我们日常写的代码、性能优化有什么关系?
5744

5845
这篇文章用清晰的逻辑和大量实例,从 GPU 架构原理、并行执行模型到实际的 CUDA 编程,带你系统了解 GPU 背后的技术基础。即使你平时不写 CUDA,这些知识也能帮你更好地理解 Metal、CoreML 这些 Apple 平台下的 GPU 特性。
5946

6047
如果你是一名希望拓展技术广度的开发者,值得一度。
6148

62-
### 🐕 [Fast & Fluid: Integrating Rust egui into SwiftUI](https://medium.com/@djalex566/fast-fluid-integrating-rust-egui-into-swiftui-30a218c502c1)
63-
64-
[@david-clang](https://github.com/david-clang):作者在开发实时预览 SwiftData 和 CoreData 数据库的 Mac App [DataScout](https://apps.apple.com/us/app/datascout-for-sqlite-swiftdata/id6737813684) 时,发现 SwiftUI 的 `Table` 性能相当差,尝试用 AppKit 的 `NSTableView` 也无法满足需求,最后用 Rust 的 UI 框架 `egui` 去优化性能。作者把 SwiftUI 中嵌入 `egui` 渲染视图的 Demo 整理成文章,还用代码示例展示如何在 SwiftUI 的 `NavigationSplitView` 中嵌入 `egui` 渲染的视图。以下是`egui` 和传统 UI 框架的对比:
65-
66-
- 传统 UI 框架(如 SwiftUI、UIKit)多采用**保留模式(Retained Mode)**,需显式管理 UI 组件状态(例如按钮状态、列表数据等),框架内部通过对比新旧状态差异来局部更新界面。
67-
- `egui`**即时模式(Immediate Mode)** 则相反:**每帧完全丢弃旧 UI 状态**,根据当前数据重新生成整个界面,通过高频重建实现“无状态化”。
68-
69-
虽然 Demo 中使用 `egui_wgpu_backend` 作为渲染后端,但它在 Metal 上渲染单帧需要 10 毫秒,作者在开发 [DataScout](https://apps.apple.com/us/app/datascout-for-sqlite-swiftdata/id6737813684) 时,通过自定义渲染后端,把帧渲染时间缩短到仅 1-2 毫秒,最终才实现高性能需求,可见把 “SwiftUI 中嵌入 `egui` 渲染视图” 封装成成熟框架会比较难,但本文优化 SwiftUI 性能的思路值得我们学习。
70-
71-
## 工具
72-
73-
> 开发过程中常用的工具,及一些新工具的介绍
74-
7549
## 代码
7650

77-
> 库,代码段,开源app
78-
7951
### [FlowNavigation](https://github.com/magnuskahr/swiftui-flow-navigation)
8052

81-
[Announcing FlowNavigation](https://www.magnuskahr.dk/posts/2025/03/announcing-FlowNavigation/) 本文介绍了作者开发的一个名为 FlowNavigation 的 SwiftUI 框架。该框架旨在简化线性流程的定义和管理,如注册流程。作者提供了一个示例代码,展示如何使用该框架来定义一个包含电子邮件、密码和提交屏幕的流程。该框架目前还在测试阶段,作者希望能够获得社区反馈并继续完善。
82-
83-
##
84-
85-
> 比较不错的书的推荐和书评
86-
87-
## 音视频
88-
89-
> 比较不错的书的推荐和书评
53+
[Announcing FlowNavigation](https://www.magnuskahr.dk/posts/2025/03/announcing-FlowNavigation/) 本文介绍了作者开发的一个名为 FlowNavigation 的 SwiftUI 框架。该框架旨在简化线性流程的定义和管理 , 如注册流程。作者提供了一个示例代码 , 展示如何使用该框架来定义一个包含电子邮件、密码和提交屏幕的流程。该框架目前还在测试阶段,作者希望能够获得社区反馈并继续完善。
9054

9155
## 内推
9256

Reports/2025/#330-2025.04.07.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# 老司机 iOS 周报 #330 | 2025-04-07
2+
3+
![ios-weekly](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/weekly-header/302.jpg?raw=true)
4+
老司机 iOS 周报,只为你呈现有价值的信息。
5+
6+
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 [Issues](https://github.com/SwiftOldDriver/iOS-Weekly/issues) 提出。
7+
8+
## 新闻
9+
10+
> 行业相关的新闻、趣事、看法
11+
12+
##  Developer - 设计开发加速器
13+
14+
> 设计开发加速器相关活动
15+
16+
## 新手推荐
17+
18+
> 收集一些对新手友好且质量不错的文章
19+
20+
## 文章
21+
22+
> 写的不错的技术博客,包含但不局限于 iOS、多端统一、设计、产品等
23+
24+
### 🐕 [Deploying a Swift Server App to Fly.io and Railway](https://swifttoolkit.dev/posts/deploy-fly-railway)
25+
26+
[@Kyle-Ye](https://github.com/Kyle-Ye): 本文介绍了如何使用 Vapor 框架部署 Swift 服务端应用程序到 Fly.io 和 Railway 平台。文章涵盖了初始化 Vapor 项目、编写 Dockerfile、以及在两个平台上部署应用的具体步骤。此外 , 还提到了一些进阶主题 , 如自定义域名和添加数据库服务等。
27+
28+
### 🐕 [Fast & Fluid: Integrating Rust egui into SwiftUI](https://medium.com/@djalex566/fast-fluid-integrating-rust-egui-into-swiftui-30a218c502c1)
29+
30+
[@david-clang](https://github.com/david-clang):作者在开发实时预览 SwiftData 和 CoreData 数据库的 Mac App [DataScout](https://apps.apple.com/us/app/datascout-for-sqlite-swiftdata/id6737813684) 时,发现 SwiftUI 的 `Table` 性能相当差,尝试用 AppKit 的 `NSTableView` 也无法满足需求,最后用 Rust 的 UI 框架 `egui` 去优化性能。作者把 SwiftUI 中嵌入 `egui` 渲染视图的 Demo 整理成文章,还用代码示例展示如何在 SwiftUI 的 `NavigationSplitView` 中嵌入 `egui` 渲染的视图。以下是 `egui` 和传统 UI 框架的对比:
31+
32+
- 传统 UI 框架(如 SwiftUI、UIKit)多采用**保留模式(Retained Mode)**,需显式管理 UI 组件状态(例如按钮状态、列表数据等),框架内部通过对比新旧状态差异来局部更新界面。
33+
- `egui`**即时模式(Immediate Mode)** 则相反:**每帧完全丢弃旧 UI 状态**,根据当前数据重新生成整个界面,通过高频重建实现“无状态化”。
34+
35+
虽然 Demo 中使用 `egui_wgpu_backend` 作为渲染后端,但它在 Metal 上渲染单帧需要 10 毫秒,作者在开发 [DataScout](https://apps.apple.com/us/app/datascout-for-sqlite-swiftdata/id6737813684) 时,通过自定义渲染后端,把帧渲染时间缩短到仅 1-2 毫秒,最终才实现高性能需求,可见把 “ SwiftUI 中嵌入 `egui` 渲染视图” 封装成成熟框架会比较难,但本文优化 SwiftUI 性能的思路值得我们学习。
36+
37+
38+
## 工具
39+
40+
> 开发过程中常用的工具,及一些新工具的介绍
41+
42+
## 代码
43+
44+
> 库,代码段,开源app
45+
46+
##
47+
48+
> 比较不错的书的推荐和书评
49+
50+
## 音视频
51+
52+
> 比较不错的书的推荐和书评
53+
54+
## 内推
55+
56+
重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
57+
58+
具体信息请移步:https://www.yuque.com/iosalliance/article/bhutav 进行查看(如有招聘需求请联系 iTDriverr)
59+
60+
## 关注我们
61+
62+
我们是「老司机技术周报」,一个持续追求精品 iOS 内容的技术公众号,欢迎关注。
63+
64+
**关注有礼,关注【老司机技术周报】,回复「2024」,领取 2024 及往年内参**
65+
66+
![](https://github.com/SwiftOldDriver/iOS-Weekly/blob/master/assets/qrcode_for_wechat.jpg?raw=true)
67+
68+
同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom
69+
70+
## 说明
71+
72+
🚧 表示需某工具,🌟 表示编辑推荐
73+
74+
预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)

0 commit comments

Comments
 (0)