|
1 |
| -# 老司机 iOS 周报 #319 | 2025-01-20 |
| 1 | +# 老司机 iOS 周报 #321 | 2025-01-20 |
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 |
| -## 新闻 |
9 |
| - |
10 |
| -> 行业相关的新闻、趣事、看法 |
11 |
| -
|
12 |
| -## Developer - 设计开发加速器 |
13 |
| - |
14 |
| -> 设计开发加速器相关活动 |
15 |
| -
|
16 |
| -## 新手推荐 |
17 |
| - |
18 |
| -> 收集一些对新手友好且质量不错的文章 |
| 8 | +这就是春节前最后一期周报啦,下周老司机编辑部也会开始春节假期,提前祝大家新春快乐! |
19 | 9 |
|
20 | 10 | ## 文章
|
21 | 11 |
|
22 |
| -> 写的不错的技术博客,包含但不局限于 iOS、多端统一、设计、产品等 |
| 12 | +### 🌟 🐎 [探究 SwiftUI Preview 的工作原理](https://onee.me/zh/blog/how-new-xcode-swiftui-preview-works-under-the-hood/) |
| 13 | + |
| 14 | +[@JonyFang](https://github.com/jonyfang): 在 SwiftUI 开发中,Xcode Preview 常出现崩溃或卡死问题,如果不了解其工作原理,通常只能用清除缓存、重启 Xcode 等方法解决。作者通过将 DerivedData 文件夹加入 Git 管理,观察其变化来研究 Preview 原理。其运行机制上,Xcode 16 起 Build and Run 与 Preview 共享构建产物,Preview 用 JIT 方式运行且有特殊预处理过程。Preview 有 Small、Middle、Large 三种重构建策略,依源代码修改程度决定范围与刷新方式。与 Flutter 的 Hot Reload 相比 Xcode Preview 的表现逊色,不支持断点调试,视图状态会重置,实现更黑盒,但仍期待 Xcode 后续对 Preview 优化。 |
23 | 15 |
|
24 | 16 | ### 🐢 [Using Copilot to write a raindrop audio synthesizer using AVAudioEngine](https://www.cocoawithlove.com/blog/copilot-raindrop-generator.html)
|
25 | 17 |
|
|
43 | 35 | [@Kyle-Ye](https://github.com/Kyle-Ye): 文章介绍了如何使用 DocC 创建交互式教程。通过 DocC,可以将静态的文档内容转变为交互式的体验,允许用户在文档中点击、操作,并快速找到他们所需的信息。此外,文章还展示了如何集成代码示例、自定义预览图片和课后小测,提供了更具互动性和可操作性的开发者学习体验。
|
44 | 36 |
|
45 | 37 | ### 🐎 [Creating a SwiftUI text view with tappable links](https://danielsaidi.com/blog/2024/12/18/creating-a-swiftui-text-view-with-tappable-links)
|
46 |
| -[@Bluesjiang](https://github.com/bluesjiang): 文章介绍了一种在 SwiftUI 中实现可点击超链接效果的文本。因为 SwiftUI 原生没有提供对应中间。文章的作者很巧妙的利用了 SwiftUI 中 `Text` 支持 Markdown 的渲染来实现这一效果。作者还简单编写了一个组件来帮你快捷的构建 Markdown 超链接的内容。比较适合刚入门 SwiftUI 的同学实践自定义 UI。 |
47 | 38 |
|
48 |
| -### 🌟 🐎 [探究 SwiftUI Preview 的工作原理](https://onee.me/zh/blog/how-new-xcode-swiftui-preview-works-under-the-hood/) |
49 |
| - |
50 |
| -[@JonyFang](https://github.com/jonyfang): 在 SwiftUI 开发中,Xcode Preview 常出现崩溃或卡死问题,如果不了解其工作原理,通常只能用清除缓存、重启 Xcode 等方法解决。作者通过将 DerivedData 文件夹加入 Git 管理,观察其变化来研究 Preview 原理。其运行机制上,Xcode 16 起 Build and Run 与 Preview 共享构建产物,Preview 用 JIT 方式运行且有特殊预处理过程。Preview 有 Small、Middle、Large 三种重构建策略,依源代码修改程度决定范围与刷新方式。与 Flutter 的 Hot Reload 相比 Xcode Preview 的表现逊色,不支持断点调试,视图状态会重置,实现更黑盒,但仍期待 Xcode 后续对 Preview 优化。 |
| 39 | +[@Bluesjiang](https://github.com/bluesjiang): 文章介绍了一种在 SwiftUI 中实现可点击超链接效果的文本。因为 SwiftUI 原生没有提供对应中间。文章的作者很巧妙的利用了 SwiftUI 中 `Text` 支持 Markdown 的渲染来实现这一效果。作者还简单编写了一个组件来帮你快捷的构建 Markdown 超链接的内容。比较适合刚入门 SwiftUI 的同学实践自定义 UI。 |
51 | 40 |
|
52 | 41 | ### 🐕 [Size Matters: An Exploration of Virtual Memory on iOS](https://alwaysprocessing.blog/2022/02/20/size-matters)
|
53 | 42 |
|
|
67 | 56 |
|
68 | 57 | [@DylanYang](https://github.com/Dylan19Yang):作者通过一系列文章向我们介绍了类型驱动设计的概念。类型驱动设计的核心是通过类型自身来传递更多信息,一个非空类型比一个 Optional 类型包含了更多信息(非空),一个自定义的 Email 类型可以比单纯的 String 包含更多信息,例如在一个 Email 结构的初始化中校验 String 的格式是否正确,通过传递 Email 类型而不是 String 来保留这份格式校验的信息。以此类推,把更多的逻辑通过自定义类型封装起来,通过巧妙的设计类型来抹除原本可能出现的错误状态,然后在类型和类型之间通过领域化来划分、拆解,使得整个设计思路更清晰。本系列通过丰富的 demo 对类型驱动设计这一概念有较深入的阐释,感兴趣的读者可以花时间阅读下这个系列。
|
69 | 58 |
|
70 |
| -## 工具 |
71 |
| - |
72 |
| -> 开发过程中常用的工具,及一些新工具的介绍 |
73 |
| -
|
74 | 59 | ## 代码
|
75 | 60 |
|
76 |
| -### 🌟 🐎 [echarts](https://echarts.apache.org/examples/zh/index.html#chart-type-line) |
| 61 | +### 🐎 [echarts](https://echarts.apache.org/examples/zh/index.html#chart-type-line) |
77 | 62 |
|
78 | 63 | [@极速男孩](https://github.com/ztlyyznf001): ECharts 是一个开源的可视化库,广泛用于创建交互式图表。线性图表常用于表示数据趋势,X 轴通常为时间或类别,Y 轴为数值。ECharts 支持多条数据线展示、交互式操作(如悬停显示数据),并可高度自定义图表样式,如颜色、线条类型、动画等。用户通过 JSON 配置来定义图表内容,适用于销售、气温等多种数据展示。
|
79 | 64 |
|
80 |
| -## 书 |
81 |
| - |
82 |
| -> 比较不错的书的推荐和书评 |
83 |
| -
|
84 |
| -## 音视频 |
85 |
| - |
86 |
| -> 比较不错的书的推荐和书评 |
87 |
| -
|
88 | 65 | ## 内推
|
89 | 66 |
|
90 | 67 | 重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
|
|
0 commit comments