ReactiveSwift

随时间变化的值的流。为 Swift 量身定制。

Latest ReactiveSwift Documentation Join the ReactiveSwift Slack community.


Carthage compatible CocoaPods compatible SwiftPM compatible GitHub release Swift 5.0 platforms

🎉 快速上手 🚄 发布路线图

什么是 ReactiveSwift?

ReactiveSwift 提供了可组合、声明式和灵活的基元,这些基元围绕着随时间变化的值的流这个宏伟概念而构建。

这些基元可以用来统一表示常见的 Cocoa 和通用编程模式,这些模式本质上是一种观察行为,例如委托模式、回调闭包、通知、控件动作、响应者链事件、futures/promises键值观察 (KVO)。

因为所有这些不同的机制都可以用相同的方式表示,所以很容易以声明方式将它们组合在一起,减少了用于弥合差距的意大利面条式代码和状态。

快速上手

  1. 核心 Reactive 基元

    ReactiveSwift 基元的语义和示例用例概述,包括 SignalSignalProducerPropertyAction

  2. 基本操作符

    用于组合和转换值流的操作符概述。

  3. ReactiveCocoa

    ReactiveCocoa 基于 ReactiveSwift 构建,使用响应式绑定和扩展来扩展 Cocoa 平台框架。

    GitHub releaseCarthage compatible CocoaPods compatible

  4. ReactiveSwift 与 RxSwift 有什么关系?

    ReactiveSwift 与 RxSwift 不同的地方概述,以便更符合 Swift 习惯用法。

示例

  1. 交互式表单 UI

    ReactiveSwift 包含一个 UI 示例 playground,演示了

    • 如何使用绑定、属性和 Action 构建交互式表单 UI,并实际查看效果。
    • 如何使用响应式基元来实现 Model-View-ViewModel 架构模式,其中 View Model 是 View 的真理来源。
  2. 在线搜索

高级主题

  1. ReactiveCocoa

    Cocoa 和 Cocoa Touch 框架的绑定和响应式扩展作为 ReactiveCocoa 单独提供。

  2. API 参考

  3. API 约定

    ReactiveSwift 基元的约定、ReactiveSwift 的最佳实践以及实现自定义操作符的指南。

  4. 调试技术

安装

ReactiveSwift 支持 macOS 10.9+、iOS 8.0+、watchOS 2.0+、tvOS 9.0+ 和 Linux。

Carthage

如果您使用 Carthage 来管理您的依赖项,只需将 ReactiveSwift 添加到您的 Cartfile

github "ReactiveCocoa/ReactiveSwift" ~> 5.0

如果您使用 Carthage 来构建您的依赖项,请确保已将 ReactiveSwift.framework 添加到您目标的“Linked Frameworks and Libraries”部分,并将它们包含在您的 Carthage 框架复制构建阶段中。

CocoaPods

如果您使用 CocoaPods 来管理您的依赖项,只需将 ReactiveSwift 添加到您的 Podfile

pod 'ReactiveSwift', '~> 5.0'

Swift 包管理器

如果您使用 Swift 包管理器,只需将 ReactiveSwift 添加为 Package.swift 中包的依赖项

.package(url: "https://github.com/ReactiveCocoa/ReactiveSwift.git", from: "5.0.0")

Git 子模块

  1. 将 ReactiveSwift 存储库添加为应用程序存储库的 子模块
  2. 从 ReactiveCocoa 文件夹中运行 git submodule update --init --recursive
  3. ReactiveSwift.xcodeproj 拖放到应用程序的 Xcode 项目或工作区中。
  4. 在应用程序目标设置的“常规”选项卡上,将 ReactiveSwift.framework 添加到“Embedded Binaries”部分。
  5. 如果您的应用程序目标根本不包含 Swift 代码,您还应该将 EMBEDDED_CONTENT_CONTAINS_SWIFT 构建设置设置为“Yes”。

Playground

我们还提供了一个很棒的 Playground,因此您可以习惯 ReactiveCocoa 的操作符。 为了开始使用它

  1. 克隆 ReactiveSwift 存储库。
  2. 使用以下终端命令之一从 ReactiveSwift 项目根目录检索项目依赖项
    • git submodule update --init --recursive 或者,如果您安装了 Carthage
    • carthage checkout
  3. 打开 ReactiveSwift.xcworkspace
  4. 构建 ReactiveSwift-macOS 方案
  5. 最后打开 ReactiveSwift.playground
  6. 选择 View > Show Debug Area

有问题吗?

如果您需要任何帮助,请访问我们的 GitHub issuesStack Overflow。 如果您无法从存档中找到任何解决方案,请随时提交问题。

发布路线图

当前稳定版本
GitHub release

记录计划

ABI 稳定性发布

当 Swift 推出弹性支持时,预计 ReactiveSwift 将声明库 ABI 稳定性。 在此之前,ReactiveSwift 将逐步采用有助于朝着目标前进的新语言功能。 ETA 是 Swift 5。