Skip to content

Commit 9a5f280

Browse files
committed
feat: 285 期整理
1 parent a53e8d1 commit 9a5f280

File tree

1 file changed

+10
-29
lines changed

1 file changed

+10
-29
lines changed

Reports/2024/#285-2024.04.15.md

Lines changed: 10 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,19 @@
11
# 老司机 iOS 周报 #285 | 2024-04-15
22

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

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

88
## 新闻
99

10-
### [iOS 17.4/17.4.1 新安装的用户首次启动IDFA权限获取失败,以及 workaround](https://forums.developer.apple.com/forums/thread/746432?answerId=784610022#784610022)
10+
### [iOS 17.4/17.4.1 新安装的用户首次启动 IDFA 权限获取失败,以及 workaround](https://forums.developer.apple.com/forums/thread/746432?answerId=784610022#784610022)
1111

1212
首次新安装 APP 的用户会在通过 ``ATTrackingManager.requestTrackingAuthorization()`` 申请 IDFA 的时候自动失败(即使用户还没有手动点击拒绝),这会对依赖 IDFA 归因或者正在投放的 APP 造成一定影响,论坛也已经有同学给出 workaround(通过 IDFA 弹窗在关闭时会触发 ``UIApplication.didBecomeActiveNotification`` 进行再次判断)。
1313

14-
##  Developer - 设计开发加速器
15-
16-
> 设计开发加速器相关活动
17-
18-
## 新手推荐
19-
20-
> 收集一些对新手友好且质量不错的文章
21-
2214
## 文章
2315

24-
### 🐕 [五年沉淀,微信全平台终端数据库WCDB迎来重大升级](https://mp.weixin.qq.com/s/RWCqLD0M_WGCrCcz0oQIcQ)
16+
### 🌟 🐕 [五年沉淀,微信全平台终端数据库 WCDB 迎来重大升级](https://mp.weixin.qq.com/s/RWCqLD0M_WGCrCcz0oQIcQ)
2517

2618
[@JonyFang](https://github.com/JonyFang):在接口层面,新版 WCDB 全面支持了 C++、Java、Kotlin、Swift 和 ObjC 这五种主要的终端开发语言,覆盖了 Android、iOS、Windows 、macOS 和 Linux 这五大终端平台。同时,还对 Winq 进行了重写和强化,使开发者能够在各种语言中使用原生语法编写任意 SQL。
2719

@@ -38,41 +30,30 @@
3830

3931
[@水水](https://www.xuyanlan.com/categories/iOS/):本文记录了作者由于对更平滑滚动的追求而将 LazyVGrid 替换为 NSTableView 的过程,可以见到结果是 NSTableView 确实会有更丝滑的效果,不过作者并不是希望大家认为 SwiftUI 很慢而 AppKit 很快,或者 macOS 上的 SwiftUI 还没有为重要的应用程序做好准备,事实上作者重写过程中 SwiftUI 已经解决了部分问题。最后作者聊了对 AppKit 的非官方见解和反思,也希望大家对两种技术都有着同样的热爱。
4032

41-
## 工具
33+
### 🐎 [Exploring ABI stability, @frozen, and library evolution mode](https://digitalbunker.dev/understanding-frozen-in-swift/)
4234

43-
> 开发过程中常用的工具,及一些新工具的介绍
35+
[@DylanYang](https://github.com/Dylan19Yang):本文作者通过 `@frozen` 关键字,引申出 Swift 的 ABI 稳定和 library evolution mode。其中 `@frozen` 关键字确保了 `enums``structs` 的接口不再改变,因此也保证了内存布局的固定,带来了更好的性能。ABI 稳定则使得面得不同的语言版本,swift 库不再需要每次重新编译就可以兼容高版本。而 library evolution mode 是一个编译器能力,开启它后使得编译器会产出额外的用于描述关于库的数据结构、方法等的元数据,确保在不同的语言版本下,这些数据依然保持一致。这三者共同确保了 Swift 库在不同语言版本、不同操作系统版本下的兼容性,并最终带来了更好的的开发体验。
4436

45-
### 🐕 [Mac OS X Debugging Magic](https://web.archive.org/web/20101206131250/http://developer.apple.com/library/mac/#technotes/tn2004/tn2124.html)
37+
## 工具
4638

47-
[@Cooper Chen](https://github.com/cjlcooper):在 MacOS 开发中,Apple 提供了许多调试工具,以协助开发者针对特定场景进行开发和调试。这些工具中的许多被保留在发布的系统中,供开发者使用以调试其代码。下面列举了一些在 Mac OS X 中的“秘密”调试工具,包括环境变量、首选项、可从GDB调用的例程以及特殊文件等。若你正致力于 Mac OS X 软件开发,这个调试工具集合列表将极具帮助。
39+
### 🐕 [Mac OS X Debugging Magic](https://web.archive.org/web/20101206131250/http://developer.apple.com/library/mac/#technotes/tn2004/tn2124.html)
4840

49-
### 🐎 [Exploring ABI stability, @frozen, and library evolution mode](https://digitalbunker.dev/understanding-frozen-in-swift/)
41+
[@Cooper Chen](https://github.com/cjlcooper):在 MacOS 开发中,Apple 提供了许多调试工具,以协助开发者针对特定场景进行开发和调试。这些工具中的许多被保留在发布的系统中,供开发者使用以调试其代码。下面列举了一些在 Mac OS X 中的“秘密”调试工具,包括环境变量、首选项、可从 GDB 调用的例程以及特殊文件等。若你正致力于 Mac OS X 软件开发,这个调试工具集合列表将极具帮助。
5042

51-
[@DylanYang](https://github.com/Dylan19Yang):本文作者通过 `@frozen` 关键字,引申出 Swift 的 ABI 稳定和 library evolution mode。其中 `@frozen` 关键字确保了 `enums``structs` 的接口不再改变,因此也保证了内存布局的固定,带来了更好的性能。ABI 稳定则使得面得不同的语言版本,swift 库不再需要每次重新编译就可以兼容高版本。而 library evolution mode 是一个编译器能力,开启它后使得编译器会产出额外的用于描述关于库的数据结构、方法等的元数据,确保在不同的语言版本下,这些数据依然保持一致。这三者共同确保了 Swift 库在不同语言版本、不同操作系统版本下的兼容性,并最终带来了更好的的开发体验。
5243

5344
## 代码
5445

55-
> 库,代码段,开源app
56-
5746
### 🐕 COW Macro Package
5847

59-
[@Kyle-Ye](https://github.com/Kyle-Ye) Swift 的大量标准库内的 struct 出于性能等因素考虑都进行了 Copy On Write(后简称COW)优化(如 String、Array、Set、Dictionary),但是对于业务自定义的 struct 默认没有此类优化。
48+
[@Kyle-Ye](https://github.com/Kyle-Ye) Swift 的大量标准库内的 struct 出于性能等因素考虑都进行了 Copy On Write(后简称 COW)优化(如 String、Array、Set、Dictionary),但是对于业务自定义的 struct 默认没有此类优化。
6049

6150
因此如果业务定义了一个巨大的 struct,在此 struct 作为参数传递过程中,容易产生较大的包大小并且有一定性能影响。
6251

63-
对于每个希望开启 COW 的 struct 进行手写优化较为繁琐,下面是本期推荐的两个相关COW Macro的开源库,可以帮助我们快速 opt-in 此项优化。
52+
对于每个希望开启 COW 的 struct 进行手写优化较为繁琐,下面是本期推荐的两个相关 COW Macro 的开源库,可以帮助我们快速 opt-in 此项优化。
6453

6554
- https://github.com/wezzard/COWMacro
6655
- https://github.com/Swift-CowBox/Swift-CowBox
6756

68-
##
69-
70-
> 比较不错的书的推荐和书评
71-
72-
## 音视频
73-
74-
> 比较不错的书的推荐和书评
75-
7657
## 内推
7758

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

0 commit comments

Comments
 (0)