|
1 | | -# 老司机 iOS 周报 #1 | 2019-04-29 |
| 1 | +# 老司机 iOS 周报 #65 | 2019-04-29 |
2 | 2 |
|
3 | 3 |  |
4 | 4 | 老司机 iOS 周报,只为你呈现有价值的信息。 |
|
35 | 35 |
|
36 | 36 | ### 🐕 [RxSwift & MVVM - How to use RxTests to test your ViewModel](https://benoitpasquier.com/how-to-use-rxtests-to-test-mvvm/) |
37 | 37 |
|
38 | | -[@Damonwong](https://github.com/Damonvvong): 之前我问过好多人这样一个问题,你觉得 Rx 框架到底解决了一个什么样的问题?虽然答案都不太一样,但是引入 Rx 框架,便于封装 ViewModel,然后编写单元测试提高应用稳定性是大部分人比较认可的一点。 |
| 38 | +[@Damonwong](https://github.com/Damonvvong):之前我问过好多人这样一个问题,你觉得 Rx 框架到底解决了一个什么样的问题?虽然答案都不太一样,但是引入 Rx 框架,便于封装 ViewModel,然后编写单元测试提高应用稳定性是大部分人比较认可的一点。 |
39 | 39 |
|
40 | 40 | 所以推荐大家阅读一下作者写了三篇关于 RxSwift & MVVM 的文章: |
41 | 41 |
|
42 | | -- 第一篇是 [How to integrate RxSwift in your MVVM architecture](https://benoitpasquier.com/integrate-rxswift-in-mvvm/): 主要介绍了如何使用 RxSwift 编写 MVVM 结构的代码 |
43 | | -- 第二篇是 [RxSwift & MVVM - An alternative structure for your ViewModel](https://benoitpasquier.com/rxswift-mvvm-alternative-structure-for-viewmodel/): 主要描述了一个 ViewModel 最基本的结构要怎么设计,我个人特别喜欢他在文中描述的 Intput 和 Output 的设计。这个设计也是为做单元测试做了一个很好的铺垫。 |
44 | | -- 最后一是 [RxSwift & MVVM - How to use RxTests to test your ViewModel](https://benoitpasquier.com/how-to-use-rxtests-to-test-mvvm/): 讲的是如何利用前面的 VM 设计 结合 RxTest 编写单元测试。 |
| 42 | +- 第一篇是 [How to integrate RxSwift in your MVVM architecture](https://benoitpasquier.com/integrate-rxswift-in-mvvm/):主要介绍了如何使用 RxSwift 编写 MVVM 结构的代码 |
| 43 | +- 第二篇是 [RxSwift & MVVM - An alternative structure for your ViewModel](https://benoitpasquier.com/rxswift-mvvm-alternative-structure-for-viewmodel/):主要描述了一个 ViewModel 最基本的结构要怎么设计,我个人特别喜欢他在文中描述的 Intput 和 Output 的设计。这个设计也是为做单元测试做了一个很好的铺垫。 |
| 44 | +- 最后一是 [RxSwift & MVVM - How to use RxTests to test your ViewModel](https://benoitpasquier.com/how-to-use-rxtests-to-test-mvvm/):讲的是如何利用前面的 VM 设计 结合 RxTest 编写单元测试。 |
45 | 45 |
|
46 | | -### 🐎 Conditional Compilation [Part 1](https://davedelong.com/blog/2018/07/25/conditional-compilation-in-swift-part-1/) [Part 2](https://davedelong.com/blog/2018/07/25/conditional-compilation-in-swift-part-2/) [Part 3](https://davedelong.com/blog/2019/04/09/conditional-compilation-part-3/) |
| 46 | +### 🐎 [Conditional Compilation Part 1](https://davedelong.com/blog/2018/07/25/conditional-compilation-in-swift-part-1/) [Part 2](https://davedelong.com/blog/2018/07/25/conditional-compilation-in-swift-part-2/) [Part 3](https://davedelong.com/blog/2019/04/09/conditional-compilation-part-3/) |
47 | 47 |
|
48 | 48 | [@四娘](kemchenj.github.io):之前我们在 [29 期周报](https://github.com/SwiftOldDriver/iOS-Weekly/blob/59bfdf3859a67d5667319000e4ee70f8f9cd6f76/Reports/%2329-2018.07.30.md#-conditional-compilation-in-swift-part-1)里介绍过这篇文章的第一篇: |
49 | 49 |
|
50 | 50 | > 本文讲述了 Swift 中方的条件编译。当然首先是传统的方法 arch(),作者对各个参数都做了详细的介绍。不过随着 Swift 4.1 的到来,你更应该了解一下方便好用的 targetEnvironment()(SE-0190)。其次是使用配置文件(.xcconfig),这个方式其实被 CocoaPods 大量使用。作者也用示例做出了详细的介绍,同学们不妨也在自己的工程中试一试。 |
51 | 51 |
|
52 | 52 | 后面陆续写了 Part 2 和 Part 3,主要是介绍了跨平台代码库编译选项的一些控制方式,对这方面有疑虑的同学可以看一看 |
53 | 53 |
|
54 | | -🐕 [Flutter 实时视频渲染](https://zhuanlan.zhihu.com/p/62821195) |
| 54 | +### 🐕 [Flutter 实时视频渲染](https://zhuanlan.zhihu.com/p/62821195) |
55 | 55 |
|
56 | | -[@CrazyCoderShi](https://github.com/CrazyCoderShi): Flutter 如火如荼的火了一段时间了,但鲜少有关于音视频方面的文章,本文是声网 Agora 的高级架构师张乾泽在 RTC Dev Meetup 上的分享,主要介绍 Agora 在 Flutter 实时音视频开发方面的实践经验,整个分享分三部分: |
| 56 | +[@CrazyCoderShi](https://github.com/CrazyCoderShi):Flutter 如火如荼的火了一段时间了,但鲜少有关于音视频方面的文章,本文是声网 Agora 的高级架构师张乾泽在 RTC Dev Meetup 上的分享,主要介绍 Agora 在 Flutter 实时音视频开发方面的实践经验,整个分享分三部分: |
57 | 57 |
|
58 | 58 | - 基于 Texture Widget 实现思路分析 |
59 | 59 | - 基于 PlatformView 实现思路分析 |
|
112 | 112 |
|
113 | 113 | IkigaJSON 是一个非常快的 JSON 解析器,它的解析速度大概是是 Foundation 中对应组件的 4 倍。它也提供了 SwiftNIO 的支持(同时也依赖 SwiftNIO),你可以直接从 `ByteBuffer` 对象初始化需要的 JSON 。 |
114 | 114 |
|
115 | | -## 书 |
116 | | - |
117 | | -> 比较不错的书的推荐和书评 |
118 | | -
|
119 | 115 | ## 音视频 |
120 | 116 |
|
121 | 117 | ### [ggtalk | 聊聊我们的编程启蒙经历](https://talk.swift.gg/27) |
|
0 commit comments