TDViperKit 0.2

TDViperKit 0.2

测试已测试
语言语言 SwiftSwift
许可证 MIT
版本最近版本2016年12月
SwiftSwift 版本3.0
SPM支持 Swift Package Manager (SPM)

由以下人员维护:Vlad AlexaBen BaggleyJames Shaw



  • Josh Campion

ViperKit

为 iOS 提供的整洁架构。

要求

  • iOS 8.0+
  • Xcode 7.1+

交流

  • 如果您 发现了错误,请创建一个问题。
  • 如果您 有功能请求,请创建一个问题。
  • 如果您 想要贡献,提交一个拉取请求。
  • 如果您 想要询问一般性问题,请发送电子邮件。

安装

特点

在 The Distance,我们有许多具有共同功能的项目。共享的实现确保这些功能简洁并保持无错。TheDistanceKit 是包含此可重用代码的总体项目。

ViperKit 是一个框架,它使使用整洁架构编写应用程序变得更容易。

什么是 Viper?

Viper 首次由 Mobile Mutual 开发,并在 http://www.objc.io/issues/13-architecture/viper/ 上进一步详细解释,Viper 是将 整洁架构应用于 iOS 应用的一种应用。

这些文章非常基于理论,并且很好地解释了总体概念。当我第一次尝试将这种架构应用于一个大型商用应用程序时,我遇到了许多在文章和提供的演示代码中未定义或不一致的架构理论应用。

ViperKit 包含用于使用“Viper”架构编写 iOS 应用程序的原型和默认实现。它对架构中每个对象的职责和角色有更严格的定义。

这种严格解释架构的主要好处包括:

  1. 应用程序组件的清晰模块化
  2. 通过分离逻辑和视图模型元素来测试 UIViewController 功能的可测试性。
  3. 较小的文件,尤其是 UIViewController
  4. 更容易重构或更新单个应用程序组件
  5. 更易于协作,因为协议允许同时开发同一应用程序的不同部分。
更多信息!

待定][TBD] 是一系列博客文章,详细解释了如何将此架构应用于各种情况下,内容更加丰富。

ViperKit 中有什么?
  • 标准协议:为每个类型的 Viper 对象定义了协议,允许在应用程序的组件之间进行一致的职责分配。
  • 列表实现:提供了针对列表的特定协议。通过 ListDataSource 协议,提供了一个干净的 API 用于以科学的方式填充列表。同时提供了基于 CoreData 的实现和基于对象的实现。
  • CoreData 与实体模型对象:Viper 实体表示应用程序中的纯数据。MappedFetchedResultsControllerCoreDataMapper 协议被提供,用于在 NSManagedObject 和纯数据之间进行转换,使数据可以干净地在应用程序中传输,而无需考虑与 NSManagedObject 关联的复杂性。