Skip to content

Commit

Permalink
Update SwiftOldDriver#169-2021.08.02.md
Browse files Browse the repository at this point in the history
  • Loading branch information
ParsifalC authored Aug 1, 2021
1 parent 104d0e4 commit fcceeb8
Showing 1 changed file with 31 additions and 56 deletions.
87 changes: 31 additions & 56 deletions Reports/2021/#169-2021.08.02.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@

## WWDC 21

### 线下沙龙
### 🌟 线下沙龙

[@Parsifal](https://github.com/ParsifalC):上周四开始,我们已经在周报公众号上开始陆续发布今年杭州场沙龙的分享文章、PPT 和视频等内容了,本周也会继续发布杭州场和上海场的相关内容信息,欢迎大家继续关注~

- [淘宝工程渐进式拥抱 Swift - 倾寒](https://mp.weixin.qq.com/s?__biz=MzI2NTAxMzg2MA==&mid=2247491478&idx=1&sn=8dc4a6a6062056b9bed801ea043f7919&chksm=eaa2809dddd5098b4e8ecc06ba6d0649321f75981f56517ed25577e12de183e392577aba9267&token=1581804799&lang=zh_CN#rd)
- [西瓜视频的 IAP 支付实践与 StoreKit 新特性 - 黄骋志](https://mp.weixin.qq.com/s?__biz=MzI2NTAxMzg2MA==&mid=2247491481&idx=1&sn=652c93ef30634f979008387cc029ec68&chksm=eaa28092ddd509848862d136c906a913bdb40a41f2220245393ed0498b4669671c0e4b41247e&token=1581804799&lang=zh_CN#rd)

### [WWDC 21 内参](https://xiaozhuanlan.com/wwdc21)
### 🌟 [WWDC 21 内参](https://xiaozhuanlan.com/wwdc21)

[@Parsifal](https://github.com/ParsifalC):本周内参恢复更新,8 篇高质量内容已经发布~
Expand All @@ -31,20 +31,41 @@

[@没故事的卓同学](https://github.com/lacklock):这是我们第二期 WWDC 相关的播客,本期我和老驴、四娘、少庸一起聊了一下对 Catalyst、SwiftUI、Flutter 的看法。本期节目在苹果播客、网易云音乐、QQ 音乐、汽水儿、喜马拉雅中也有上线。

## 新闻
## 文章

> 行业相关的新闻趣事看法
### 🌟 🐢 [我写技术文章的一点心得](https://ming1016.github.io/2021/07/24/my-little-idea-about-writing-technical-article/)

## 新手推荐
[@Barney](https://github.com/BarnyZhao):本文是戴铭老师对自己过往写作经验的深度总结,从四个写作要点开篇,分析了自己过往的经典文章以及当时的想法和灵感。紧接着结合本次 WWDC 举例,传授新手如何开始写作的经验。可谓是干货满满,适合反复阅读。

> 收集一些对新手友好且质量不错的文章
>
关键点脉络:
- 四个点
- 过往经验
- 我是新手怎门办法
- WWDC 和 经验总结

## 文章
### 🌟 🐕 [基于 Swift 编写严肃脚本工具](https://github.com/100mango/zen/blob/master/%E5%9F%BA%E4%BA%8E%20Swift%20%E7%BC%96%E5%86%99%E4%B8%A5%E8%82%83%E8%84%9A%E6%9C%AC%E5%B7%A5%E5%85%B7/%E5%9F%BA%E4%BA%8E%20Swift%20%E7%BC%96%E5%86%99%E4%B8%A5%E8%82%83%E8%84%9A%E6%9C%AC%E5%B7%A5%E5%85%B7.md)

[@EyreFree](https://github.com/EyreFree):本文作者是目前就职于微信的 100mango 老师,开篇通过分析 Swift 在国内外的使用现状以及在微信的一些应用场景表现了 Swift 的光明前途,并且借由「微信支付跨平台代码生成器是由 Swift 编写的」这一事例引出了文章主题:如何通过 Swift 来编写脚本 / 自动化工具。主要分为以下四步:
- 创建工程:通过 Swift Package Manger 创建了工程,并调整了工程结构,依赖管理;
- 编写代码:通过编写一个简单生成随机数的工具感受 Swift 编写脚本工具,并给我们的工程引入了苹果开源的 Argument Parser 库用于简化命令行参数解析,优化工具说明;
- 测试:分别对逻辑代码和命令行 API 进行了测试;
- 发布:通过一行简单的代码,就能生成可执行文件进行分发;
- 进阶操作:最后介绍了几个进阶操作,我们还发现通过 Swift 编写脚本工具,还能直接和 AppKit / SwiftUI 进行交互,非常的具备扩展性
这篇文章并没有展示特别复杂的代码,但是根据上面展示的步骤原则,就能编写出能够支撑像微信支付跨平台代码生成器这样的命令行工具Swift 是一门优雅的编程语言,以后大家不管是遇到编写一些小脚本还是开发大型严肃工具的场景,都可以尝试用 Swift 实现了呢!
### 🌟 🐕 [Calling Hidden/Private API from Swift in Style](https://medium.com/swlh/calling-ios-and-macos-hidden-api-in-style-1a924f244ad1)

[@JonyFang](https://github.com/JonyFang):在 Swift 中使用 Objective-C 私有 API 一般有两种方式,自己创建头文件或消息的方式,但不管哪一种使用起来都会比较繁琐。本文中,作者基于 Swift 的 `@dynamicMemberLookup` 和 `@dynamicCallable` 特性封装了围绕 Objective-C 类和对象的库 -- [mhdhejazi/Dynamic](https://github.com/mhdhejazi/Dynamic)。`mhdhejazi/Dynamic` 满足了 Swift 可以以更简单和直观的方式来调用私有 API。

### 🌟 🐕 [大家来找茬:记一起 clang 开启 -Oz 选项引发的血案](https://mp.weixin.qq.com/s/1RNsrmUKuxmQa0jPZozE9A)

[@Leo](https://github.com/leomobiledeveloper):我们可以通过 -Oz 的编译选项来优化包体积,但是在某些极端情况下 -Oz 会导致编译器的某些优化失效,引起一些非预期的问题。本文就是就是关于一个开启了 -Oz 导致 autorelease 优化失效,对象误被放入 autoreleasepool 中,进而引起大量内存堆积的问题。文章干货颇多,推荐阅读。

### 🐎 [技术债治理的四条原则](https://insights.thoughtworks.cn/managing-technical-debt/)

[@莲叔](http://github.com/aaaron7): 在我们的工作中,重构是一个经常提及的话题,毕竟现在都是业务优先,几乎没有一个业务的技术架构是一步一步稳扎稳打的建立起来的, 普遍都是上线要紧,随着而来的就是各种各样的技术债。对于技术债,重构还是不重构,这也是一个问题。不重构吧,做新需求很蛋疼,容易踩雷,稍不留神就线上故障。重构吧,投入很多人力物力,但其结果很难产生真正的业务收益,业务方不买单也就算了,还可能导致目前线上已经在跑的模块出现问题。不管从哪个方面来看,这都是一个很两难的问题。这篇文章针对这个两难问题进行了非常深入的分析与讨论,并且旗帜鲜明的给出了自己的态度:要解决,但是需要遵循几个基本的原则。感兴趣的同学可以阅读一下,或许可以找到符合你们团队实际情况的答案。
[@莲叔](http://github.com/aaaron7)在我们的工作中,重构是一个经常提及的话题,毕竟现在都是业务优先,几乎没有一个业务的技术架构是一步一步稳扎稳打的建立起来的, 普遍都是上线要紧,随着而来的就是各种各样的技术债。对于技术债,重构还是不重构,这也是一个问题。不重构吧,做新需求很蛋疼,容易踩雷,稍不留神就线上故障。重构吧,投入很多人力物力,但其结果很难产生真正的业务收益,业务方不买单也就算了,还可能导致目前线上已经在跑的模块出现问题。不管从哪个方面来看,这都是一个很两难的问题。这篇文章针对这个两难问题进行了非常深入的分析与讨论,并且旗帜鲜明的给出了自己的态度:要解决,但是需要遵循几个基本的原则。感兴趣的同学可以阅读一下,或许可以找到符合你们团队实际情况的答案。

### 🐕 [The flutter “const” Keyword demystified.](https://medium.com/flutter-community/the-flutter-const-keyword-demystified-c8d2a2609a80)

Expand All @@ -55,10 +76,6 @@
参考
[Flutter 的 Widget,刻意加上 const,真的值得吗?](https://juejin.cn/post/6977212326394986510)

### 🌟 🐕 [Calling Hidden/Private API from Swift in Style](https://medium.com/swlh/calling-ios-and-macos-hidden-api-in-style-1a924f244ad1)

[@JonyFang](https://github.com/JonyFang):在 Swift 中使用 Objective-C 私有 API 一般有两种方式,自己创建头文件或消息的方式,但不管哪一种使用起来都会比较繁琐。本文中,作者基于 Swift 的 `@dynamicMemberLookup` 和 `@dynamicCallable` 特性封装了围绕 Objective-C 类和对象的库 -- [mhdhejazi/Dynamic](https://github.com/mhdhejazi/Dynamic)。`mhdhejazi/Dynamic` 满足了 Swift 可以以更简单和直观的方式来调用私有 API。

### 🐕 [网易新闻 iOS 工程组件化实践](https://mp.weixin.qq.com/s/mfvbRXEhJBqzhwQbjnuZgw)

[@ChengzhiHuang](https://github.com/ChengzhiHuang):网易新闻也是迭代了 10 年的 APP 了,最终实现了主工程里只有一个 main 文件,组件数量达到了 268 个。
Expand All @@ -72,10 +89,6 @@

> 自荐[lixf](https://https://github.com/lixinfei)

### 🌟 🐕 [大家来找茬:记一起 clang 开启 -Oz 选项引发的血案](https://mp.weixin.qq.com/s/1RNsrmUKuxmQa0jPZozE9A)

[@Leo](https://github.com/leomobiledeveloper):我们可以通过 -Oz 的编译选项来优化包体积,但是在某些极端情况下 -Oz 会导致编译器的某些优化失效,引起一些非预期的问题。本文就是就是关于一个开启了 -Oz 导致 autorelease 优化失效,对象误被放入 autoreleasepool 中,进而引起大量内存堆积的问题。文章干货颇多,推荐阅读。

### 🐕 [美团 App 页面视图可测性改造实践](https://mp.weixin.qq.com/s/YcvFSs-97SpMKjlpj9Dzqg)

[@含笑饮砒霜](https://weibo.com/chinafishnews/):本文围绕动态化容器中的动态布局技术,阐述了如何通过可测性改造来帮助达成提升测试效率的目标。本文目录:
Expand All @@ -98,44 +111,18 @@
* 未来展望
* 使用视图解析原理解决WebView元素定位
* 视图可测性改造更多的应用场景


### 🌟 🐢 [我写技术文章的一点心得](https://ming1016.github.io/2021/07/24/my-little-idea-about-writing-technical-article/)

[@Barney](https://github.com/BarnyZhao):本文是戴铭老师对自己过往写作经验的深度总结,从四个写作要点开篇,分析了自己过往的经典文章以及当时的想法和灵感。紧接着结合本次 WWDC 举例,传授新手如何开始写作的经验。可谓是干货满满,适合反复阅读。
关键点脉络:
- 四个点
- 过往经验
- 我是新手怎门办法
- WWDC 和 经验总结
### 🐕 [面试中 LRU / LFU 的青铜与王者](https://github.com/halfrost/Halfrost-Field/blob/master/contents/Go/LRU:LFU_interview.md)

[@J_Knight_](https://github.com/knightsj):本文作者介绍了 LRU 和 LFU 算法的原理和 Go 语言的实现。也分享了 LRU 和 LFU 的优化方案和“如何实现一个高并发且线程安全的 LRU” 这个问题的实现思路。


### 🐕 [基于 Swift 编写严肃脚本工具](https://github.com/100mango/zen/blob/master/%E5%9F%BA%E4%BA%8E%20Swift%20%E7%BC%96%E5%86%99%E4%B8%A5%E8%82%83%E8%84%9A%E6%9C%AC%E5%B7%A5%E5%85%B7/%E5%9F%BA%E4%BA%8E%20Swift%20%E7%BC%96%E5%86%99%E4%B8%A5%E8%82%83%E8%84%9A%E6%9C%AC%E5%B7%A5%E5%85%B7.md)

[@EyreFree](https://github.com/EyreFree):本文作者是目前就职于微信的 100mango 老师,开篇通过分析 Swift 在国内外的使用现状以及在微信的一些应用场景表现了 Swift 的光明前途,并且借由「微信支付跨平台代码生成器是由 Swift 编写的」这一事例引出了文章主题:如何通过 Swift 来编写脚本 / 自动化工具。主要分为以下四步:

- 创建工程:通过 Swift Package Manger 创建了工程,并调整了工程结构,依赖管理;
- 编写代码:通过编写一个简单生成随机数的工具感受 Swift 编写脚本工具,并给我们的工程引入了苹果开源的 Argument Parser 库用于简化命令行参数解析,优化工具说明;
- 测试:分别对逻辑代码和命令行 API 进行了测试;
- 发布:通过一行简单的代码,就能生成可执行文件进行分发;
- 进阶操作:最后介绍了几个进阶操作,我们还发现通过 Swift 编写脚本工具,还能直接和 AppKit / SwiftUI 进行交互,非常的具备扩展性

这篇文章并没有展示特别复杂的代码,但是根据上面展示的步骤原则,就能编写出能够支撑像微信支付跨平台代码生成器这样的命令行工具Swift 是一门优雅的编程语言,以后大家不管是遇到编写一些小脚本还是开发大型严肃工具的场景,都可以尝试用 Swift 实现了呢!


### 🐕 [从 WebKit 源码中学习手势处理的高级用法——WKWebView中的手势识别](https://mp.weixin.qq.com/s/pt1nk5z5nK-fPCKqQlP-sg)

[@折腾范儿_唯敬](https://www.weibo.com/agvicking/home?wvr=5):本文的作者从对iOS事件响应与手势的基础原理入手,深挖到 WebKit 源码中对于手势的处理策略,针对 Web 界面中更复杂更多样的手势处理进行分析与总结,非常有助于我们加深对iOS手势的深入理解与运用

### 🐎 [Xcode 13 Missing Info.plist](https://useyourloaf.com/blog/xcode-13-missing-info.plist/)

[@AidenRao](https://weibo.com/AidenRao):文中主要介绍了2点
[@AidenRao](https://weibo.com/AidenRao):文中主要介绍了 2 点

1Xcode 13 新起的 SwiftUI 项目,Info.plist 文件已经不存在,文中介绍了如何找回 Info.plist

Expand All @@ -154,10 +141,6 @@
* 学习资料推荐了 [Better Explaine](https://betterexplained.com/) 这个网站,其用于帮助大家理解那些复杂的数学概念。
* 截图工具 Snipaste,无用图片搜索工具 LSUnusedResources

## 工具

> 开发过程中常用的工具,及一些新工具的介绍

## 代码

### 🐕 [OpenCombine](https://github.com/OpenCombine/OpenCombine)
Expand All @@ -168,14 +151,6 @@

> 感谢 [XanderXu](https://github.com/XanderXu) 的推荐

## 书

> 比较不错的书的推荐和书评

## 音视频

> 比较不错的书的推荐和书评

## 赞助者

虚位以待..
Expand Down

0 comments on commit fcceeb8

Please sign in to comment.