For the complete documentation index, see llms.txt. This page is also available as Markdown.

8. RxSwift 生态系统

RxSwift 生态系统

RxCocoaUI框架 提供了 Rx 支持,让我们能够使用按钮点击序列,输入框当前文本序列等。不过 RxCocoa 也只是 RxSwift 生态系统 中的一员。RxSwift 生态系统还给其他框架提供了 Rx 支持:

书写 tabelViewcollectionView 的数据源是一件非常繁琐的事情,有一大堆的代理方法需要被执行。 RxDataSources 可以帮助你简化这一过程。你可以用它来布局多层级的列表页,并且它还可以提供动画支持。

你只需要几行代码就可以布局一个多 SectiontabelView

你可以点击 RxDataSources 来了解更多信息。

Alamofire 是一个非常流行的网络请求框架。RxAlamofire 是用 RxSwift 封装的 Alamofire。它使得网络请求调用变得更加平滑,处理请求结果变得更简洁,更高效:

你可以点击 RxAlamofire 来了解更多信息。

Realm 是一个十分前卫的跨平台数据库,他想要替换 Core DataSQLiteRxRealm 是用 RxSwift 封装的 Realm。它使我们可以用 Rx 的方式监听数据变化,或者将数据写入数据库。

监听数据:

添加数据:

删除数据:

你可以点击 RxRealm 来了解更多信息。

ReactiveX 生态系统

我们之前提到过 RxSwiftRxSwift 版本。而 ReactiveX(简写: Rx)是一个跨平台框架。它不仅可以用来写 iOS ,你还可以用它来写 AndroidWeb 前端后台。并且每个平台都和 RxSwift 一样有一套 Rx 生态系统。Rx 支持多种编程语言,如:Swift,Java,JS,C#,Scala,Kotlin,Go 等。只要你掌握了其中一门语言,你很容易就能够熟悉其他的语言。

Android

RxJavaAndroid 平台上非常流行的响应式编程框架,它也是 RxJava 版本。

我们还是用输入验证来做演示:

iOS(RxSwift) 版:

Android(RxJava) 版:

这两段代码的逻辑是一样的,一个是 iOS(RxSwift) 版本,另一个是 Android(RxJava) 版本。仔细对比以后,你会发现它们的书写方式都是差不多的。

这样一来,你就可以用同一套逻辑来写跨平台应用,而且这个应用是纯原生的。这不仅节省了开发时间,而且还提升了 App 的质量

Web 前端

RxJSWeb 前端 平台上非常流行的响应式编程框架,它也是 RxJS 版本。而且主流的前端框架都提供了 Rx 支持,如:jQueryRxJS-DOMAngularJSRxEmber等。

下面这个例子是用 RxJS 写的,它和 GitHub 搜索 十分相似,只不过他搜索的是维基百科:

当用户输入一个稳定的关键字后,向维基百科请求搜索结果,然后显示出来。

即便你没有学过 Web 前端开发,但是只要你熟悉 Rx ,以上代码你也能够看懂。

总结

由于 Rx 支持多种后台语言,如:JavaJSGo。所以你也可以用它来写后台。

如果你已经能够熟练使用 RxSwift ,那么你就已经具有某种“天赋”,这种“天赋”可以帮助你快速上手其他平台。你只需要学习一些和平台相关的知识,就可以写出交互相当复杂的应用程序。因为你的 Rx 技巧是可以跨平台复用的。

另外,你的学习效率也会更高,如果你在 RxSwift 中学到了某些技巧,那么这个技巧通常也可以被应用到 Android 或者其他的平台。如果你在 RxJava 中学到了某些技巧,那么这个技巧通常也可以被应用到 iOS 平台。因此,你的学习资源也就不再局限于 RxSwift,你还可以浏览其他平台上关于 Rx 的教程。

下一章将提供一些关于 RxSwift 的学习资源

Last updated