Sourcing
Typesafe and flexible abstraction for TableView & CollectionView DataSources written in Swift. It helps you to seperate concerns and keep ViewControllers light. By operating on data providers replacing your view implementation is easy at any time.
Documentation
Read the docs. Generated with jazzy. Hosted by GitHub Pages.
Quick Demo
Setting up your Cell by implementing ConfigurableCell
& ReuseIdentifierProviding
.
import Sourcing
class LabelCell: UITableViewCell, ConfigurableCell {
func configure(with label: String) {
textLabel?.text = label
}
}
//If the reuse identifier is the same as the class name.
extension LabelCell: ReuseIdentifierProviding {}
let labelCellConfiguration = CellConfiguration<LabelCell>()
let labelsToDispay = ArrayDataProvider(sections: [["Row 1", "Row 2"], ["Row 1", "Row 2"]])
let dataSource = TableViewDataSource(dataProvider: labelsToDispay, cellConfiguration: labelCellConfiguration)
tableView.dataSource = dataSource
//Add this to sync data changes to the table view.
let changeAnimator = TableViewChangeAnimator(tableView: tableView, dataProvider: labelsToDispay)
Requirements
- iOS 9.3+
- Xcode 10.1+
- Swift 4.2
Installation
Swift Package Manager
SPM is integrated with the Swift build system to automate the process of downloading, compiling, and linking dependencies.
Specify the following in your Package.swift
:
.package(url: "https://github.com/lightsprint09/Sourcing", from: "4.0.0"),
Carthage
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
github "lightsprint09/Sourcing" ~> 4.0
Contributing
See CONTRIBUTING for details.
Contact
Lukas Schmidt (Mail, @lightsprint09)
License
Sourcing is released under the MIT license. See LICENSE for details.