测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布上次发布 | 2016年3月 |
SPM支持 Swift 包管理器 | ✓ |
由 Cesar Tardaguila 维护。
FountainKit 是一个轻量级的 Swift 框架,旨在减少视图控制器和数据源之间的耦合,并使数据源和单元格更容易进行单元测试。
保持视图控制器小巧和专注很难。特别是那些需要展示数据的视图控制器,往往做太多,有太多的职责。
这使得这些视图控制器变得僵化,难以更改,也难以进行单元测试。
FountainKit 是一个轻量级的框架,它提出了一种从视图控制器中解耦数据源的方式,以便数据源、表格视图或集合视图单元格以及视图控制器可以相互协作,并保持解耦和可测试。
单元格应该负责渲染自己的内容。为了强制执行这一点,表格视图和集合视图单元格必须实现 DataSettable 协议
public protocol DataSettable {
typealias DataType
var data: DataType? {get set}
}
DataType 是将提供给单元格的模型对象。
视图控制器只需负责创建数据源,向其提供必要的数据和单元格类型,然后将它设置为它控制的表格视图/集合视图的数据源。
private func initData() {
let data = [ Movie(title: "The Quiet Man", director: "John Ford"),
Movie(title: "The Third Man", director: "Carol Reed") ]
let dataManager = FlatArrayDataManager(data: data)
dataSource = TableViewDataSource(dataManager: dataManager, cellType: MovieCell.self)
}
private func initTableView() {
tableView.registerClass(MovieCell.self, forCellReuseIdentifier: MovieCell.cellReuseIdentifier())
tableView.dataSource = dataSource
}
可以使用以下方法集成 FountainKit
如果您使用 Swift 包管理器,请将 FountainKit 添加到您的 Package.swift 文件的依赖中
import PackageDescription
let package = Package(
//
dependencies: [
//
.Package(url: "https://github.com/ctarda/FountainKit.git", majorVersion: 1, minor: 0)
]
)
此存储库包含一个实现表格视图的示例应用程序。
如果您对这个框架背后的理念感兴趣,请阅读这篇博客文章:http://ctarda.com/2016/03/introducing-fountainkit/
欢迎所有形式的贡献(错误报告、功能建议、新功能),并会非常感激。
特别是,我们需要
FountainKit在MIT许可下发布