RxViewModel 6.0.0

RxViewModel 6.0.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2019年2月
SPM支持 SPM

Esteban TorresShai Mishali 维护。



RxViewModel

codecov.io Build Status Carthage compatible Version License Platform

Model-View-ViewModel

Model-View-ViewModel(简称 MVVM)是由 Microsoft 创建的,其定义如下

模型-视图-视图模型(MVVM)模式是一种将用户界面与底层业务逻辑隔离的应用程序模式。MVVM 属于一个称为分离呈现的图案类别。这些模式在 UI 与应用程序的其余部分之间提供清晰的分离。这提高了应用程序的可测试性,并允许应用程序及其 UI 更易于独立且容易地演变。

模型-视图-视图模型(MVVM)模式帮助您将应用程序的业务逻辑和呈现逻辑与其用户界面(UI)进行清晰的分离。在应用程序逻辑和 UI 之间保持清晰的分离有助于解决许多开发和设计问题,并且可以使应用程序更容易进行测试、维护和演变。它还可以极大地提高代码重用机会,并且允许开发人员和 UI 设计师在他们各自的应用程序部分中进行开发时更容易地协作。

它基本上增加了一个新的「分离层」,以将 MVC 模式分解成更易于管理的部分。

Cocoa 上的 MVC 总是令人痛苦,因为它总是需要很多 delegates,通常由一个控制器(例如,当绑定 tableview 时需要一个 tableview 的代理以及还需要数据源的代理等)实现,这导致出现「大量视图控制器」的问题。

MVVM 通过一个名为 ViewModel 的「中间」类从 View 分离出 Model

此中间类以更干净、更简便的方式实现了对视图》(code>View)和模式》(code>Model)的绑定,并将一些逻辑(例如如何/何时加载数据)从视图(code>View)中分离出来,仅保留与UI相关的特定代码。

RxViewModel

RxViewModelMVVMRx扩展的结合

简单来说,这是一个基于ReactiveViewModel的明目张胆的“模仿”,使用RxCocoa

由于ReactiveViewModel项目已经停滞不前,而且没有SwiftSwift 2.0的实现,我们发现有必要在Swift中实施类似的项目。

鉴于没有Swift分支,且项目缺乏兴趣,我们认为最好给RxSwift/RxCocoa一个机会,并将其作为此反应性视图模型方法的基石。

用法

要运行示例项目,请克隆仓库,然后从示例目录中首先运行pod install

安装

CocoaPods

只需将以下行添加到您的Podfile中

pod "RxViewModel"

然后运行

pod install

Carthage

只需将以下内容添加到您的Cartfile

github "RxSwiftCommunity/RxViewModel"

然后运行

carthage update

特性

目前,RxViewModel 支持以下来自 ReactiveViewModel 的特性(所有这些特性)😉):

  • didBecomeActive
  • didBecomeInactive
  • forwardSignalWhileActive
  • throttleSignalWhileInactive

作者

Esteban Torres

许可证

RxViewModel 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。