Skip to content

Commit

Permalink
Update SwiftOldDriver#129-2020.09.21.md
Browse files Browse the repository at this point in the history
  • Loading branch information
ParsifalC authored Sep 20, 2020
1 parent 3d0797d commit 96c6d0c
Showing 1 changed file with 49 additions and 66 deletions.
115 changes: 49 additions & 66 deletions Reports/2020/#129-2020.09.21.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,9 @@

[@Parsifal](https://github.com/ParsifalC):随着 iOS 12 的发布,以及正在路上的 macOS Big Sur,苹果对 App Store 审核指南也进行了一波更新。Apple Hub 做了中文翻译,不过建议大家还是以官方为主,译文为辅 - [苹果更新 App Store 审核指南,可以给苹果爸爸的审核条款提建议了](https://mp.weixin.qq.com/s/wRvaerDQgOdkfX9c1-Vbpg)。

## 新手推荐

> 收集一些对新手友好且质量不错的文章

## 文章

### 🌟🐢 [系列文章:用 Swift 实现一个 Swift Runtime](https://belkadan.com/blog/2020/08/Swift-Runtime-Heap-Objects/)
### 🌟 🐢 [系列文章:用 Swift 实现一个 Swift Runtime](https://belkadan.com/blog/2020/08/Swift-Runtime-Heap-Objects/)

[@享耳先森](https://github.com/iblacksun):这个系列的文章来自于今年愚人节的一个项目,作者让 [Mac OS 9 支持运行 Swift 程序](https://belkadan.com/blog/2020/04/Swift-on-Mac-OS-9/),其中 Swift Runtime 没有将 C++ 的实现迁移过来,而是使用 Swift 实现了一套,文章里就分享了具体的实现细节,包含了大量的 Swift 指针操作技巧。

Expand All @@ -40,54 +36,16 @@ https://belkadan.com/blog/2020/09/Swift-Runtime-Type-Metadata/

> 作者 Jordan Rose 之前是 Swift 团队的一员,负责 bugs.swift.org 相关的工作,在去年离职。

### 🐕 [一位 iOS 开发者的进阶之旅](https://mp.weixin.qq.com/s/cKuVFRPUnnScLM3y26mgIQ)

iOS 开发早已经过了会写两个页面就可以拿到高薪的时代了,于是,出于兴趣也好,出于生计也罢,越来越多的 iOSer 该意识到,需要提高自己的技术能力了,毕竟面试也越来越难了不是。 那如何提高呢?本文其实是 v2ex 上面的一个帖子: "iOS 开发有什么国人写的比较好的书籍推荐?"。里面的内容大多来源于 `lujie2012` 以及其他人的一些回答,回答的内容已经不仅仅是推介书了,还包含了很多关于 iOS 学习上的问题。虽然里面个别回答或观点笔者并不是完全认同,但还是希望对这方面有困扰的同学有一点点帮助。

### 🐕 [闲鱼对Flutter-Native混合工程解耦的探索](https://mp.weixin.qq.com/s/4Z3Bqz9sUW1Lwofx--vCjA)

[@含笑饮砒霜](https://weibo.com/chinafishnews/):闲鱼是国内第一个使用 Flutter 混合开发的大型应用,但是目前面临如下几个痛点:

- Flutter 侧混合编译速度慢,Android 首次编译 10min+,iOS 首次编译 20min+
- 混合栈编程中历史包袱导致 iOS/Android 双端返回给 Flutter 侧的数据可能存在不一致性
- 集成模块开发效率相比模块开发较低,单模块页面测试性能数据无法展开

面对这些痛点,闲鱼技术团队做了如下尝试:

- 模块化开发
- 跨进程开发

尽管两个方案都可以解决编译运行时间长的问题,但通过对比分析,方案一拆分模块和维护模块时都有很高的成本,方案二拆分成本和维护成本都相对较低,但对运行环境要求苛刻。综合来看,方案二虽然有一定缺陷,却可以解决很多问题。

### 🐕 [4. Podfile 的解析逻辑](https://mp.weixin.qq.com/s/f9YcS9eYS_RShLsTXS-SvA)
### 🌟 🐕 [分析可执行文件 Mach-O](https://juejin.im/post/6870034249026633742)

[@JonyFang](https://github.com/JonyFang):内容主要分三部分。第一部分,简介 Podfile 配置所围绕的 Xcode 工程结构(Workspace、Project、Target 及 Build Setting)。第二部分,介绍 CocoaPods 中 CocoaPods-Core 对配置文件的解析,配置文件包括 Podfile、Podspec 及解析后的依赖锁存文件(如 Podfile.lock)。第三部分,演示在 Podfile 中对 Target 进行的嵌套使用
[@Damien](https://github.com/ZengyiMa):本文从 Mach-O 的概念出发,深度解析了 Mach-O 的内部结构以及加载 Mach-O 的步骤,最后作者也给出了通过分析 Mach-O 之后可以应用的使用场景,对于想理解 iOS 系统底层实现原理的同学是个很好的文章

文章目录结构如下:
### 🌟 🐢 [Flutter包大小治理上的探索与实践](https://mp.weixin.qq.com/s/adC-YUWd-xuUlzeAPHzJoQ)

- Xcode 工程结构
- Target
- Project
- Workspace
- Scheme
- CocoaPods-Core
- CocoaPods-Core 的文件结构
- Podfile 的主要数据结构
- Specification
- TargetDefinition
- Podfile
- Lockfile
- Podfile 内容加载
- Podfile 文件类型
- Podfile 文件读取
- Ruby 格式的 Podfile 加载
- YAML 格式的 Podfile 加载
- Podfile 内容解析
- Podfile targets 配置
- Target 的嵌套使用
- Abstract Target 的应用演示
[@CrazyCoderShi](https://github.com/CrazyCoderShi): Flutter 作为一种全新的响应式、跨平台、高性能的移动开发框架,在性能、稳定性和多端体验一致上都有着较好的表现。引入 Flutter 带来的包体积问题,一直以来都是个热门话题,[本文](https://mp.weixin.qq.com/s/adC-YUWd-xuUlzeAPHzJoQ)详细
讲述了美团在处理 Flutter 包体积问题上的思考及相关的建设。

### 🐕 [今日头条品质优化 - 图文详情页秒开实践](https://mp.weixin.qq.com/s/Xqr6rQBbx7XPoBESEFuXJw)
### 🌟 🐕 [今日头条品质优化 - 图文详情页秒开实践](https://mp.weixin.qq.com/s/Xqr6rQBbx7XPoBESEFuXJw)

[@JonyFang](https://github.com/JonyFang):本篇总结了头条详情页(WebView)加载优化的思路和实践。内容总结如下:

Expand Down Expand Up @@ -125,15 +83,52 @@ iOS 开发早已经过了会写两个页面就可以拿到高薪的时代了,
- 网络导致的页面白屏问题,通过前面的优化策略已解决
- 非网络原因的白屏(WebView 占用内存过大发生的白屏),先判断是否存在数据注入,若没有进行请求重试,接着重新加载模板并注入数据。

### 🐕 [一位 iOS 开发者的进阶之旅](https://mp.weixin.qq.com/s/cKuVFRPUnnScLM3y26mgIQ)

### 🌟 🐕 [分析可执行文件 Mach-O](https://juejin.im/post/6870034249026633742)
iOS 开发早已经过了会写两个页面就可以拿到高薪的时代了,于是,出于兴趣也好,出于生计也罢,越来越多的 iOSer 该意识到,需要提高自己的技术能力了,毕竟面试也越来越难了不是。 那如何提高呢?本文其实是 v2ex 上面的一个帖子: "iOS 开发有什么国人写的比较好的书籍推荐?"。里面的内容大多来源于 `lujie2012` 以及其他人的一些回答,回答的内容已经不仅仅是推介书了,还包含了很多关于 iOS 学习上的问题。虽然里面个别回答或观点笔者并不是完全认同,但还是希望对这方面有困扰的同学有一点点帮助。

[@Damien](https://github.com/ZengyiMa):本文从 Mach-O 的概念出发,深度解析了 Mach-O 的内部结构以及加载 Mach-O 的步骤,最后作者也给出了通过分析 Mach-O 之后可以应用的使用场景,对于想理解 iOS 系统底层实现原理的同学是个很好的文章。
### 🐕 [闲鱼对 Flutter-Native 混合工程解耦的探索](https://mp.weixin.qq.com/s/4Z3Bqz9sUW1Lwofx--vCjA)

### 🌟 🐢 [Flutter包大小治理上的探索与实践](https://mp.weixin.qq.com/s/adC-YUWd-xuUlzeAPHzJoQ)
[@含笑饮砒霜](https://weibo.com/chinafishnews/):闲鱼是国内第一个使用 Flutter 混合开发的大型应用,但是目前面临如下几个痛点:

[@CrazyCoderShi](https://github.com/CrazyCoderShi): Flutter 作为一种全新的响应式、跨平台、高性能的移动开发框架,在性能、稳定性和多端体验一致上都有着较好的表现。引入 Flutter 带来的包体积问题,一直以来都是个热门话题,[本文](https://mp.weixin.qq.com/s/adC-YUWd-xuUlzeAPHzJoQ)详细
讲述了美团在处理 Flutter 包体积问题上的思考及相关的建设。
- Flutter 侧混合编译速度慢,Android 首次编译 10min+,iOS 首次编译 20min+
- 混合栈编程中历史包袱导致 iOS/Android 双端返回给 Flutter 侧的数据可能存在不一致性
- 集成模块开发效率相比模块开发较低,单模块页面测试性能数据无法展开

面对这些痛点,闲鱼技术团队做了如下尝试:

- 模块化开发
- 跨进程开发

尽管两个方案都可以解决编译运行时间长的问题,但通过对比分析,方案一拆分模块和维护模块时都有很高的成本,方案二拆分成本和维护成本都相对较低,但对运行环境要求苛刻。综合来看,方案二虽然有一定缺陷,却可以解决很多问题。

### 🐕 [4. Podfile 的解析逻辑](https://mp.weixin.qq.com/s/f9YcS9eYS_RShLsTXS-SvA)

[@JonyFang](https://github.com/JonyFang):内容主要分三部分。第一部分,简介 Podfile 配置所围绕的 Xcode 工程结构(Workspace、Project、Target 及 Build Setting)。第二部分,介绍 CocoaPods 中 CocoaPods-Core 对配置文件的解析,配置文件包括 Podfile、Podspec 及解析后的依赖锁存文件(如 Podfile.lock)。第三部分,演示在 Podfile 中对 Target 进行的嵌套使用。

文章目录结构如下:

- Xcode 工程结构
- Target
- Project
- Workspace
- Scheme
- CocoaPods-Core
- CocoaPods-Core 的文件结构
- Podfile 的主要数据结构
- Specification
- TargetDefinition
- Podfile
- Lockfile
- Podfile 内容加载
- Podfile 文件类型
- Podfile 文件读取
- Ruby 格式的 Podfile 加载
- YAML 格式的 Podfile 加载
- Podfile 内容解析
- Podfile targets 配置
- Target 的嵌套使用
- Abstract Target 的应用演示

### 🐎 [The State of SwiftUI](https://steipete.com/posts/state-of-swiftui/)

Expand All @@ -152,18 +147,6 @@ iOS 开发早已经过了会写两个页面就可以拿到高薪的时代了,

本文结合实例介绍了从 issue 到 release 工作流的使用方法,也讲解了如何使用 gh alias set 为命令创建别名;而且这些自定义的命令也可以自由组合。

## 代码

> 库,代码段,开源app

## 书

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

## 音视频

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

## 内推

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

0 comments on commit 96c6d0c

Please sign in to comment.