RxSwift技术路线与参考资料

RxSwift技术路线与参考资料

## RxSwift简介

响应式编程

响应式编程(Reactive Programming)是一种通过异步和数据流来构建事务关系的编程思想。核心体现就是观察者和可被观察者,通过构造操作数据序列,然后再对这些序列作出响应。

响应式编程框架

在Objective-C语言中,也流行着响应式编程框架ReactiveCocoa

而在Swift语言中,最受欢迎的应该是ReativeX社区的RxSwift

RxSwift知识图

详细参考RxSwift知识图xmind

RxSwift知识图

RxSwift 热信号与冷信号

热信号

  1. 热信号在订阅期间不会产生任何副作用,但是它确实存在自己的上下文,这些事件都是在自己的上下文环境中生成的,并且RxSwift并不能控制它(也就是说,它在自己的线程中运行)
  2. 热信号可以随时发送元素,如果观察者在其开始发送元素之后才开始订阅,那么会错过先前发送的所有元素

冷信号

  1. 冷信号在其他观察者订阅之前是不会生成任何元素的。这意味着它在订阅之前是没有自己的上下文环境的,当订阅发生之后,它会创建某个上下文环境并且开始生成元素
  2. 冷信号只有在有观察者进行订阅之后才发送元素

冷热信号的区分可以简化成一个简单的问题:在订阅的时候是否存在副作用?
是否存在副作用可以转换成,副作用是否是共享的?
如果副作用只是在订阅之后才执行的,那么这个副作用就是不共享的;
反之,这个副作用就是共享的

冷热信号的对比
热信号:

  1. 无论是否存在订阅者都会使用资源
  2. 无论是否存在订阅者都会生成元素
  3. 主要跟BehaviorSubject这类状态类型一起使用

冷信号:

  1. 只有在订阅生成之后才消耗资源
  2. 只有有订阅者的时候才会生成元素
  3. 主要用于异步操作,比如网络请求

RxSwift参考资料

RxSwift库github开源地址:https://github.com/ReactiveX/RxSwift 文档

基本概念与理解

ReactiveX官网: http://reactivex.io 跨语言的响应式编程社区,支持一种异步响应式编程思想,不同语言版本。

语法参考与手册

RxSwift 中文文档:全面介绍RxSwift, 响应式编程概念,RxSwift核心概念,操作符选择,生态和常用框架【推荐作为手册查询】

Swift-RxSwift使用-航哥:通过实例来介绍RxSwift的使用,包含基本介绍,常用操作符,其他框架配合使用【简单而全面】

RxSwift Reatctive 编程

RxSwift Reactive Programming with Swift 书籍及源码

RxSwift社区

RxSwift社区聚合了生态学习资源和文档等开源代码指南社区,包含以下模块:

  • 包含RxSwift一些抽象工具库,比如RxDataSource, RxCoordinator, Action, RxSwiftExt, ReactorKit等
  • 其他库的扩展支持,比如RxRealm, RxAlamofire, RxWebKit等
  • 提供RxSwift支持的库,比如 Moya
  • 使用RxSwift编写的开源应用,比如MVVM-RouterDemo, Papr(MVVM+Coordinator), Simple MVVM Login Example

RxSwift练习项目

前往RxSwift社区找到Apps Built with RxSwift约有15款开源应用

RxSwift build Apps

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值