继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

RxSwift 01 - ReactiveCocoa 与 RxSwift

执着丶执念
关注TA
已关注
手记 18
粉丝 50
获赞 90

简介

如今,函数响应式编程成为越来越受开发者喜欢的编程方法。原因很简单,它能使复杂的异步代码容易地编写和理解,以及 MVVM 设计模式的兴起。目前的两个 iOS 最流行的函数响应式编程库分别是 ReactiveCocoa 与 RxSwift。

ReactiveCocoa

ReactiveCocoa 是一个比较老的开源项目,从 Objective-C 时期开始,后来从 3.0 开始支持了 Swift (可以通过 bridge 在 Objective-C 下使用),接着就完全停止了在 Objective-C 上的维护,到了 5.0 更是将 RAC 拆分为四个库:ReactiveCocoa、ReactiveSwift、ReactiveObjC、ReactiveObjCBridge,用于区分 Objective-C 和 Swift 开发。之前我总结过一篇 ReactiveCocoa 入门 的文章,里面简单介绍了下 ReactiveCocoa 的组织框架,这里就不详细介绍了。

推荐阅读汇总:干货集结地

RxSwift

RxSwift 项目的时间短一些,但是 ReactiveX 社区充满了活力。关于 RxSwift 有一件重要的事是项目是按照 ReactiveX 这个组织的规定下开发的,并且所有其他语言的 Rx 项目也是一样。如果学会了如何使用 RxSwift,再去学习 Rx.Net , RxJava 或者 RxJS 等就是小菜一碟,只是语言语法上的差异。【PS:这个思想一致通用是我十分喜欢的一点,哈哈哈】

强烈推荐 RxSwift 学习文章(我就是看了下面的文章入门的):

ReacticeCocoa Vs RxSwift

1. 冷信号和热信号

冷信号:(例如网络请求)

  • 是被动的,只有当你订阅的时候,它才会发布消息
  • 只能一对一,当有不同的订阅者,消息是重新完整发送。

热信号:(例如 UI 交互)

  • 是主动的,尽管你并没有订阅事件,但是它会时刻推送,
  • 可以有多个订阅者,是一对多,集合可以与订阅者共享信息。

ReactiveCocoa 对冷信号和热信号的区别是很看重的,而 RxSwift 则不需要考虑是冷信号还是热信号。

关于冷热信号的更加细节的介绍,可以看以下文章:

2. 社区支持

相对于 RxSwift 背后的 ReactiveX 大社区的活跃支持,ReactiveCocoa 的社区支持明显是不足的,更多的是网上多年累月积累的在线教程,在社区支持方面 RxSwift 是有很大优势的。

3. 总结

实际上2个框架还有很多细节差异,但不管是 RxSwift 还是 ReactiveCocoa 框架,都是功能极其强大的框架,而且很多东西是相通的,在两者之间来回切换只是几个小时的问题。如果你之前学习过 Swift ,我个人推荐是从 RxSwift 入手,如果是只学习过 Objective-C 的话,还是从 ReactiveCocoa 入手好点。【PS: 我个人是偏爱 RxSwift 一点的,O(∩_∩)O哈哈~】

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP

热门评论

哈哈,你的确写的好简单也

查看全部评论