当前位置:新闻中心行业动态 → 正文

ReactorKit:iOS单向数据流架构

责任编辑:editor004 作者:谢丽 |来源:企业网D1Net  2017-05-11 11:43:00 本文摘自:INFOQ

ReactorKit是一个面向响应式单向Swift应用程序架构的框架,结合了Flux和响应式编程。其中,Flux是Facebook用来构建客户端Web应用程序的应用架构。它借助单向数据流完善了React的可组合视图组件。它更多的是一种模式,而不是一种传统的框架。

在ReactorKit框架中,用户动作和视图状态都是通过可观测的流传递给每一层。这些流是单向的,因此,视图只能发出动作,而响应者只能发出状态,如下图所示:

  按照设计,ReactorKit旨在实现以下三个目标:

可测试性:ReactorKit的第一个目标是将业务逻辑从视图分离,响应者不依赖于任何视图,可单独测试; 从小做起:ReactorKit不要求整个应用程序遵循统一的架构,开发人员可以只在一个具体的视图中使用它,在已有的项目中使用ReactorKit也无需重写任何东西; 减少输入:对于简单的东西,ReactorKit注重避免复杂的代码,与其他架构相比,它需要的代码更少。

ReactorKit主要包含以下三个层次:

视图:视图展示数据。一个视图控制器和一个单元格被视为一个视图。视图将用户输入绑定到动作流,将视图状态绑定到每个UI组件。视图层不包含业务逻辑。视图只负责定义如何映射动作流和状态流。 响应者:响应者是一个独立的层,负责管理视图状态。响应者最重要的作用是从视图分离出控制流。每个视图都有相应的响应者,并将逻辑处理委托给响应者。响应者不依赖视图,很容易测试。 服务:ReactorKit有一个特殊的、称为服务的层。服务层实现具体的业务逻辑。响应者介于视图和服务之间,管理事件流。当响应者收到来自视图的用户动作,它就会调用服务逻辑。服务会发送一个网络请求,并将响应返回给响应者。然后,响应者会使用服务响应创建一个变种流。

此外,一个响应者可以和多个服务通信。ServiceProvider为响应者提供了到每个服务的引用。服务提供者在整个应用程序生命ZZ周期内只创建一次,并传递给第一个响应者。第一个响应者将同一个服务提供者实例的引用传递给子响应者。

ReactorKit的GitHub页面上列出了以下几个示例:

Counter:最简单、最基本的ReactorKit示例; RxTodo: 使用ReactorKit的iOS Todo应用; Cleverbot: 使用Cleverbot和ReactorKit的iOS Messaging应用; Drrrible: 使用ReactorKit的Dribbble for iOS(应用商店)。

ReactorKit遵循MIT许可协议。感兴趣的读者可以下载试用及加入ReactorKit社区。

感谢徐川对本文的审校。

关键字:ReactorKit

本文摘自:INFOQ

x ReactorKit:iOS单向数据流架构 扫一扫
分享本文到朋友圈
当前位置:新闻中心行业动态 → 正文

ReactorKit:iOS单向数据流架构

责任编辑:editor004 作者:谢丽 |来源:企业网D1Net  2017-05-11 11:43:00 本文摘自:INFOQ

ReactorKit是一个面向响应式单向Swift应用程序架构的框架,结合了Flux和响应式编程。其中,Flux是Facebook用来构建客户端Web应用程序的应用架构。它借助单向数据流完善了React的可组合视图组件。它更多的是一种模式,而不是一种传统的框架。

在ReactorKit框架中,用户动作和视图状态都是通过可观测的流传递给每一层。这些流是单向的,因此,视图只能发出动作,而响应者只能发出状态,如下图所示:

  按照设计,ReactorKit旨在实现以下三个目标:

可测试性:ReactorKit的第一个目标是将业务逻辑从视图分离,响应者不依赖于任何视图,可单独测试; 从小做起:ReactorKit不要求整个应用程序遵循统一的架构,开发人员可以只在一个具体的视图中使用它,在已有的项目中使用ReactorKit也无需重写任何东西; 减少输入:对于简单的东西,ReactorKit注重避免复杂的代码,与其他架构相比,它需要的代码更少。

ReactorKit主要包含以下三个层次:

视图:视图展示数据。一个视图控制器和一个单元格被视为一个视图。视图将用户输入绑定到动作流,将视图状态绑定到每个UI组件。视图层不包含业务逻辑。视图只负责定义如何映射动作流和状态流。 响应者:响应者是一个独立的层,负责管理视图状态。响应者最重要的作用是从视图分离出控制流。每个视图都有相应的响应者,并将逻辑处理委托给响应者。响应者不依赖视图,很容易测试。 服务:ReactorKit有一个特殊的、称为服务的层。服务层实现具体的业务逻辑。响应者介于视图和服务之间,管理事件流。当响应者收到来自视图的用户动作,它就会调用服务逻辑。服务会发送一个网络请求,并将响应返回给响应者。然后,响应者会使用服务响应创建一个变种流。

此外,一个响应者可以和多个服务通信。ServiceProvider为响应者提供了到每个服务的引用。服务提供者在整个应用程序生命ZZ周期内只创建一次,并传递给第一个响应者。第一个响应者将同一个服务提供者实例的引用传递给子响应者。

ReactorKit的GitHub页面上列出了以下几个示例:

Counter:最简单、最基本的ReactorKit示例; RxTodo: 使用ReactorKit的iOS Todo应用; Cleverbot: 使用Cleverbot和ReactorKit的iOS Messaging应用; Drrrible: 使用ReactorKit的Dribbble for iOS(应用商店)。

ReactorKit遵循MIT许可协议。感兴趣的读者可以下载试用及加入ReactorKit社区。

感谢徐川对本文的审校。

关键字:ReactorKit

本文摘自:INFOQ

电子周刊
回到顶部

关于我们联系我们版权声明隐私条款广告服务友情链接投稿中心招贤纳士

企业网版权所有 ©2010-2024 京ICP备09108050号-6 京公网安备 11010502049343号

^