|
1 | 1 | # 老司机 iOS 周报 #288 | 2024-05-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 |
| -### [AppStore Connect 提交失败 WorkAround](https://github.com/SwiftOldDriver/iOS-Weekly/issues/4537) |
| 10 | +### [AppStore Connect 提交失败 Workaround](https://github.com/SwiftOldDriver/iOS-Weekly/issues/4537) |
13 | 11 |
|
14 | 12 | 上周陆续有读者在老司机的 App Review 群中反馈提交审核时遇到了奇怪的问题,也有群友提供了解决方案,我们再次汇总如下:
|
15 | 13 |
|
|
19 | 17 | 
|
20 | 18 | 
|
21 | 19 |
|
22 |
| -## Developer - 设计开发加速器 |
23 |
| - |
24 |
| -> 设计开发加速器相关活动 |
25 | 20 |
|
26 | 21 | ## 新手推荐
|
27 | 22 |
|
|
31 | 26 |
|
32 | 27 | ### [Safely unwrap optional values in SwiftUI bindings](https://www.polpiella.dev/safely-unwrap-optional-value-in-swiftui-binding/)
|
33 | 28 |
|
34 |
| -[@zoeGuo](https://github.com/zoeGuo):在 SwiftUI 中, `$` 符号用于创建一个绑定到可观察对象的引用。但一个可选对象用 `$` 后得到的是一个不可选的对象。那么在这种场景下可以使用 `Binding` 将对象包装,`Binding` 的初始化方法 `init?(_ base: Binding<Value?>)` 会解包绑定的可选值,并提供一个非可选值,这样就又可以对原来的可选值进行安全解包了。文章中有简洁明了的代码示例,感兴趣的读者可以阅读原文。 |
| 29 | +[@zoeGuo](https://github.com/zoeGuo):在 SwiftUI 中 , `$` 符号用于创建一个绑定到可观察对象的引用。但一个可选对象用 `$` 后得到的是一个不可选的对象。那么在这种场景下可以使用 `Binding` 将对象包装,`Binding` 的初始化方法 `init?(_ base: Binding<Value?>)` 会解包绑定的可选值,并提供一个非可选值,这样就又可以对原来的可选值进行安全解包了。文章中有简洁明了的代码示例,感兴趣的读者可以阅读原文。 |
| 30 | + |
| 31 | +## 文章 |
| 32 | + |
| 33 | +### 🐎 [iOS 依赖库版本一致性检测:确保应用兼容性](https://juejin.cn/post/7358011504967925812) |
| 34 | + |
| 35 | +[@BluesJiang](https://github.com/BluesJiang):本篇主要介绍了一种检测系统库最低版本依赖的方法。核心的思路使用 `otool` 获取依赖的系统库,然后调用苹果的接口来查询系统库支持的最低系统版本。用来解决 App 意外错误引入高于 App 最低支持系统版本的系统库,导致 App 启动崩溃的问题。 |
| 36 | + |
| 37 | +### 🐎 [淘系两年半 A/B 实验经历,聊聊我理解的“科学实验”](https://mp.weixin.qq.com/s/-durED9M0UMqhT0i2S67lQ) |
35 | 38 |
|
36 |
| -### 🐎 [淘系两年半A/B实验经历,聊聊我理解的“科学实验”](https://mp.weixin.qq.com/s/-durED9M0UMqhT0i2S67lQ) |
37 | 39 | [@Smallfly](https://github.com/iostalks):这篇文章主要讲述了作者在淘系两年半的 A/B 实验经历,包括在货架电商和内容电商两个领域的 A/B 实验能力建设。文章中,作者分享了对科学实验的理解和实践,文章中提到了几个关键点:
|
38 | 40 | 1. **业务目标科学**:增长目标应该是长期健康、可量化验证的。
|
39 | 41 | 2. **实验设计科学**:在常规实验中,样本组的同质性和样本间的独立性是重要的考虑因素。
|
40 | 42 | 3. **实验数据可用**:强调了 AA 检验的重要性,以确保实验数据的可用性。
|
41 | 43 | 4. **实验分析科学**:在获得可用的数据基础上,关注实验分析的问题,包括确定需要观察的指标和维度,以及如何处理低响应实验。
|
42 | 44 |
|
43 |
| -## 文章 |
44 |
| - |
45 |
| -> 写的不错的技术博客,包含但不局限于 iOS、多端统一、设计、产品等 |
46 |
| -### 🐎 [iOS依赖库版本一致性检测:确保应用兼容性](https://juejin.cn/post/7358011504967925812) |
47 |
| -[@BluesJiang](https://github.com/BluesJiang):本篇主要介绍了一种检测系统库最低版本依赖的方法。核心的思路使用 `otool` 获取依赖的系统库,然后调用苹果的接口来查询系统库支持的最低系统版本。用来解决 App 意外错误引入高于 App 最低支持系统版本的系统库,导致 App 启动崩溃的问题。 |
48 |
| - |
49 | 45 | ### 🐎 [彻底弄懂 Linux 下的文件描述符(fd)](https://yushuaige.github.io/2020/08/14/%E5%BD%BB%E5%BA%95%E5%BC%84%E6%87%82%20Linux%20%E4%B8%8B%E7%9A%84%E6%96%87%E4%BB%B6%E6%8F%8F%E8%BF%B0%E7%AC%A6%EF%BC%88fd%EF%BC%89/#1%E3%80%81%E4%BB%8E%E4%B8%80%E4%B8%AA%E6%9C%80%E5%B8%B8%E8%A7%81%E7%9A%84%E4%BE%8B%E5%AD%90%E8%AF%B4%E8%B5%B7/)
|
50 | 46 |
|
51 | 47 | [@DylanYang](https://github.com/Dylan19Yang):本文介绍了 Linux 下的文件描述符(file descriptor)。文件描述符是内核对已经被打开文件所创建的索引。内核维护了一张进程级别的文件描述符表,记录了每个文件描述符对应的文件指针,使得对这些文件进行 I/O 操作的系统调用都可以通过文件描述符来实现。同时系统还维护着系统级别的打开文件表和 i-node 表,这两张表内有关于打开文件更多的信息,包括偏移量、访问模式、权限等。文件描述符表指向打开文件表,打开文件表则又指向了 i-node 表。此外,本文也举例了通过 shell、C 语言、python 等方式打开文件后,文件描述符的实际表现。
|
52 | 48 |
|
53 | 49 | ### 🐎 [OS Style settings view](https://paulpeelen.com/SettingsView)
|
54 |
| -[@水水](https://xuyanlan.com/categories/iOS/):如果您正苦恼于不知道怎么给 MacOS 应用添加一个符合 MacOS 风格的设置页面,那么本文给出了简单的代码示例教您如何去实现,敢兴趣的读者可以参考~ |
| 50 | + |
| 51 | +[@水水](https://xuyanlan.com/categories/iOS/):如果您正苦恼于不知道怎么给 MacOS 应用添加一个符合 MacOS 风格的设置页面,那么本文给出了简单的代码示例教您如何去实现,敢兴趣的读者可以参考 ~ |
55 | 52 |
|
56 | 53 | ### 🐎 [Flutter 之 HTTP3/QUIC 和 Cronet 你了解过吗?](https://mp.weixin.qq.com/s/InAzeSa-2YeV2oo6gnykhg)
|
57 |
| -[@极速男孩](https://github.com/ztlyyznf001/):本文介绍了HTTP/3和QUIC协议及其在 Flutter 中的应用,特别是通过 Cronet 库。HTTP/3 基于 QUIC 实现,优化了网络连接的稳定性和效率,支持连接迁移和加密。Cronet 作为 Chromium 的网络堆栈,支持 QUIC 和 TCP,可通过 Flutter 使用,增强移动应用的网络性能。文章还讨论了如何在 Flutter 项目中通过 cronet_http 包和 Dio 库集成 Cronet,利用其在 Android 上的优势,以及 iOS 上用 NativeAdapter 的来支持 HTTP/3。 |
| 54 | + |
| 55 | +[@极速男孩](https://github.com/ztlyyznf001/):本文介绍了 HTTP/3 和 QUIC 协议及其在 Flutter 中的应用,特别是通过 Cronet 库。HTTP/3 基于 QUIC 实现,优化了网络连接的稳定性和效率,支持连接迁移和加密。Cronet 作为 Chromium 的网络堆栈,支持 QUIC 和 TCP,可通过 Flutter 使用,增强移动应用的网络性能。文章还讨论了如何在 Flutter 项目中通过 cronet_http 包和 Dio 库集成 Cronet,利用其在 Android 上的优势,以及 iOS 上用 NativeAdapter 的来支持 HTTP/3。 |
58 | 56 |
|
59 | 57 | ## 播客
|
60 | 58 |
|
61 |
| -### 🐢 [SWIFT PACKAGE INDEXING EPISODE 43: Now I’m worried our metrics aren’t correct! with special guest Holly Borla](https://share.transistor.fm/s/2d4b1ba7) |
| 59 | +### 🐢 [SWIFT PACKAGE INDEXING EPISODE 43: Now I ’ m worried our metrics aren ’ t correct! with special guest Holly Borla](https://share.transistor.fm/s/2d4b1ba7) |
62 | 60 |
|
63 |
| -[@Kyle-Ye](https://github.com/Kyle-Ye): 本期 SwiftPackageIndex 播客和特邀嘉宾苹果的Swift语言团队的负责人Holly Borla讨论了Swift 6的并发特性和语言模式迁移,Swift Package Index中的Swift 6兼容性跟踪项目。同时介绍了一些与并发相关的提案(SE414 和 SE431)和Swift软件包。 |
| 61 | +[@Kyle-Ye](https://github.com/Kyle-Ye): 本期 SwiftPackageIndex 播客和特邀嘉宾苹果的 Swift 语言团队的负责人 Holly Borla 讨论了 Swift 6 的并发特性和语言模式迁移,Swift Package Index 中的 Swift 6 兼容性跟踪项目。同时介绍了一些与并发相关的提案(SE414 和 SE431)和 Swift 软件包。 |
64 | 62 |
|
65 | 63 | ## 工具
|
66 | 64 |
|
67 | 65 | ### [difftastic](https://difftastic.wilfred.me.uk/)
|
68 | 66 |
|
69 | 67 | [@Crazy](https://github.com/jiyan135960):difftastic 是一款专门针对文件对比的工具,这个工具不是简单的逐行对比,会根据语言以及运行环境进行分析,提供更便于阅读对比界面。该工具现在支持多种语言,移动端开发所用的 Swift、Java、Kotlin、Dart 都已经支持。
|
70 | 68 |
|
71 |
| -## 代码 |
72 |
| - |
73 |
| -> 库,代码段,开源app |
74 |
| -
|
75 |
| -## 书 |
76 |
| - |
77 |
| -> 比较不错的书的推荐和书评 |
78 |
| -
|
79 |
| -## 音视频 |
80 |
| - |
81 |
| -> 比较不错的书的推荐和书评 |
82 |
| -
|
83 | 69 | ## 内推
|
84 | 70 |
|
85 | 71 | 重新开始更新「iOS 靠谱内推专题」,整理了最近明确在招人的岗位,供大家参考
|
|
0 commit comments