Protocol-oriented, type-safe data source objects that keep your view controllers light
Clone or download

README.md

JSQDataSourcesKit

Build Status Version Status license MIT codecov Platform Carthage compatible

Protocol-oriented, type-safe data source objects that keep your view controllers light

A Swift library of data source and delegate objects inspired by Andy Matuschak's type-safe, value-oriented collection view data source gist.

About

This library reduces the boilerplate code regarding the UITableView, UICollectionView, and NSFetchedResultsController data source objects, as well as the NSFetchedResultsControllerDelegate object. It helps keep view controllers light, while focusing on type-safety, SOLID design principles, and easy interoperability with Cocoa. Further, it brings a more focused and data-driven perspective to these data sources. If you want to change your view then you change your data and its structure, without needing to update any data source or delegate protocol methods.

Requirements

  • Xcode 9+
  • Swift 4.0+
  • iOS 9.0+
  • tvOS 10.0+
  • SwiftLint

Installation

CocoaPods (recommended)

use_frameworks!

# For latest release in cocoapods
pod 'JSQDataSourcesKit'

# Feeling adventurous? Get the latest on develop
pod 'JSQDataSourcesKit', :git => 'https://github.com/jessesquires/JSQDataSourcesKit.git', :branch => 'develop'

Carthage

github "jessesquires/JSQDataSourcesKit"

Documentation

Read the docs. Generated with jazzy. Hosted by GitHub Pages.

Generate

$ ./scripts/build_docs.sh

Preview

$ open index.html -a Safari

Contribute

Please follow these sweet contribution guidelines.

Credits

Created and maintained by @jesse_squires

License

JSQDataSourcesKit is released under an MIT License. See LICENSE for details.

Copyright © 2015-present Jesse Squires.

Please provide attribution, it is greatly appreciated.