老司机 iOS 周报 #126 | 2020-08-31

4,071 阅读4分钟

老司机 iOS 周报,只为你呈现有价值的信息。

你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。

WWDC20

本周在周报公众号上我们推送了 3 篇 WWDC20 内参专栏内的文章,每篇都很精彩!

新手推荐

🐕 Designing Custom UICollectionViewListCell in Interface Builder

@水水: 此前作者发布了 UICollectionView List with Custom Cell and Custom Configuration 一文,文中作者教你使用代码自定义 UICollectionViewList 和 Cell,而本文作者又手把手教你如何在 Interface Builder 中自定义 UICollectionViewListCell。对于新手朋友来说这两种方式都有必要掌握,感兴趣的读者可以进行尝试哦~

文章

🌟 🐕 Ex1. CocoaPods 中的 Ruby 特性之 Mix-in

@JonyFang:本文从 CocoaPods 中用到的 Ruby 语法特性说起,讲述了 Ruby 中为了解决多继承问题而引入的 Mix-in 模式,并且 Ruby 也为其定义了 moduleinclude 关键词的语法糖。

可以带着这几个问题来看这篇文章:

  • 什么是 Mix-in,它与多继承是什么关系?
  • Mix-in 在大多数编程语言中是如何落地的?(可以说说 Swift 中的应用)
  • 多继承的缺点有什么?
  • 在 CocoaPods 中是如何使用 Mix-in 特性的?

文中最后引入了 Duck Tying 程序设计思想,有兴趣可以自行研究。

🌟 🐕 React Native 升级指南

@looping:React Native 作为一款跨端框架,有一个最让人头疼的问题,那就是版本更新。类库升级最关键的一步就是配置文件的更新,确保能正常通过编译。所以本文一开始就介绍了各端项目配置的技术细节,同时还分享了自己的升级流程,并提供了 0.60 到 0.62 三个版本的升级记录做参考。相信有了这份资料的指导,对有计划升级 RN 的团队来说想必会有很大帮助的。

🐕 Entry Points in Swift: How @main and @UIApplicationMain work internally

@EyreFree:本文介绍了 Swift 如何确定应用程序的入口点,在分析 @main 与 @UIApplicationMain 的作用原理的过程中也概括了苹果如此设计的初衷。

🐎 SVG image assets supported in Xcode 12

@含笑饮砒霜:Xcode 12 又带来了一些新特性,我们发现 Assets 已经支持 SVG 资源了,尽管最终 Xcode 还是将 SVG 转换成了 PNG,与多年来为我们服务的 PDF 格式的工作方式相同,但这个更改依然带来了一些附带好处。

🐎 SwiftUI betas - what changed before 1.0

@Damien:SwiftUI 在 2019 年 WWDC 一经推出就收获了很多开发者的目光,经过一年的演变,在 2020 年的 WWDC 中 SWiftUI 得到了极大的增强。从去年到今年 SWiftUI 都有哪些变化呢?本文总结了从 SwiftUI 1.0 到现在的变化之处。对 SwiftUI 感兴趣的同学不妨一读。

🐎 Sharing layout information in SwiftUI

@xiaofei86:SwiftUI 的视图布局取决于每个视图的状态。此状态由内部属性或外部上下文中的值等混合而成。在高级的自定义布局中,有时父视图也需要来自其子视图的直接或间接的信息。一个常见的例子是,父视图需要知道子视图的大小。在本文中,我们将探讨如何通过 PreferenceKey 做到这一点。

代码

🐎 Codable + PropertyWrapper = ☕

@zvving:Codable 作为 Swift 官方推荐的序列化方案,使用时有不少痛点:

  • 自定义映射复杂
  • 不支持 DefaultValue
  • 类型严格,不支持降级策略:如 Int/Double 降级转换为 String
  • 同一属性不支持映射多个 CodingKey

CodableWrapper 尝试解决这些问题,同时通过 PropertyWrapper 提供简洁的实现。库刚刚推出,欢迎交流反馈。

来自作者 winddpan 自荐

内推

老司机周报团队联合知识小集和 SwiftGG 翻译组收录了一份靠谱的内推职位。

如果你想找工作,点这里:www.yuque.com/iosalliance…

如果你想招人,点这里:www.yuque.com/iosalliance…

当然,也欢迎你关注我们每一期的周报,我们会在每期周报底部及时更新编辑内推岗位。

关注我们

我们开通了公众号,每期发布时公众号(LSJCoding)会推送消息,欢迎关注。

同时也支持了 RSS 订阅:github.com/SwiftOldDri…

说明

🚧 表示需某工具,🌟 表示编辑推荐

预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)