Skip to content
This repository has been archived by the owner on Apr 15, 2020. It is now read-only.

Releases: jessesquires/JSQDataSourcesKit

8.1.1: Deprecated

15 Apr 00:29
defbe6d
Compare
Choose a tag to compare

8.1.0

30 Sep 01:41
46815ef
Compare
Choose a tag to compare

This release closes the 8.1.0 milestone.

Changed

  • Upgraded to Swift 5.1
  • Update to Xcode 11
  • Update SwiftLint to 0.35.0

8.0.0

06 Mar 23:38
ff93ac1
Compare
Choose a tag to compare

This release closes the 8.0.0 milestone.

Breaking

  • iOS 11.0 minimum now required
  • tvOS 11.0 minimum now required

New

  • Upgraded to Swift 4.2
  • Update to Xcode 10.2
  • Update SwiftLint to 0.31.0

7.0.0

01 Jan 23:58
25ee7e2
Compare
Choose a tag to compare

This release closes the 7.0.0 milestone.

Breaking

  • Converted to Swift 4.0

  • iOS 9.0 minimum now required

  • tvOS 10.0 minimum now required

  • Significant renaming refactor: renamed all "factory" references to "config", see #73 for details and reasoning

    • ReusableViewFactoryProtocol --> ReusableViewConfigProtocol
    • ViewFactory --> ReusableViewConfig
    • TitledSupplementaryViewFactory --> TitledSupplementaryViewConfig
    • Updated function param names cellFactory: --> cellConfig:
    • Updated function param names supplementaryFactory: --> supplementaryConfig:
  • Removed SectionInfoProtocol in favor of using a concrete Section. DataSource now references Section directly. (#103)

New

  • Added new DataSourceProtocol extension convenience method func item(atIndexPath indexPath: IndexPath) -> Item?.
  • Added new TableEditingController to support table view editing functionality provided by UITableViewDataSource. (#29, #80, #100)

6.0.0

17 Sep 10:04
b764e34
Compare
Choose a tag to compare

This release closes the 6.0.0 milestone.

Swift 3.0 now required.

5.0.0

14 Sep 01:01
0a3a4b8
Compare
Choose a tag to compare

This release closes the 5.0.0 milestone.

Swift 2.3 now required.

4.0.1

09 Aug 17:15
0d3e2eb
Compare
Choose a tag to compare

This release closes the 4.0.1 milestone.

4.0.0

01 Jul 16:54
Compare
Choose a tag to compare

This release closes the 4.0.0 milestone.

This release is essentially a complete re-write of the library. If you are currently using this, migration to 4.0 will be pretty involved, but it will be worth it. The result is a dramatically simpler API.

As always, see the updated documentation for details.

New 🎉

  • tvOS support
  • Swift Package Manager support

Bug fixes 🐛

  • Fixed crash when dequeuing a supplementary view for an empty collection view section (#38). You can now have supplementary views for empty sections.

⚠️ Breaking changes ⚠️

Swift

  • Updated to Swift 2.2.
  • Swift 2.2. and above is now required.

Major API changes

This release includes a complete revamp of the API (#48). It is now much cleaner, simpler, and easier to use. It has also been updated to be more Swifty according to the latest Swift API Guidelines.

This library was originally written before protocol extensions were introduced in Swift. The reimagining of this library and it's APIs are now heavily based on protocol extensions.

New DataSource
  • There's a new DataSourceProtocol and concrete DataSource model. This represents (and owns) your sections.
  • There's a new FetchedResultsController<T>, which is a generic NSFetchedResultsController that conforms to DataSourceProtocol.
DataSourceProvider objects

All of the *DataSourceProvider classes have been unified into a single class, DataSourceProvider. This new class is initialized with a DataSourceProtocol and replaces all of the following:

  • Removed TableViewDataSourceProvider
  • Removed TableViewFetchedResultsDataSourceProvider
  • Removed CollectionViewDataSourceProvider
  • Removed CollectionViewFetchedResultsDataSourceProvider
Section objects

The section objects are now unified into a single Section object and SectionInfoProtocol protocol, instead of having table-specific and collection-specific models. The new Section and SectionInfoProtocol replace the following:

  • Removed CollectionViewSectionInfo
  • Removed CollectionViewSection
  • Removed TableViewSectionInfo
  • Removed TableViewSection
Cell factory objects

The cell factories have been unified into a single ViewFactory object and ReusableViewFactoryProtocol protocol, which replace the following:

  • Removed CollectionViewCellFactoryType
  • Removed CollectionViewCellFactory
  • Removed TableViewCellFactoryType
  • Removed TableViewCellFactory
  • Removed CollectionSupplementaryViewFactoryType
  • Removed SupplementaryViewFactory
FetchedResultsDelegateProviers

The *FetchedResultsDelegateProvider classes have been unified into a single class, FetchedResultsDelegateProvider, which replaces the following:

  • Remove CollectionViewFetchedResultsDelegateProvider
  • Remove TableViewFetchedResultsDelegateProvider
TitledCollectionReusableView changes:
  • Renamed to TitledSupplementaryView
  • TitledCollectionReusableViewFactory was replaced by TitledSupplementaryViewFactory
  • No longer uses a xib, but programmatic layout
  • TitledCollectionReusableView.xib was removed
  • TitledCollectionReusableView.nib was removed
  • The leadingSpacing, topSpacing, trailingSpacing and bottomSpacing constraint properties have been removed and replaced with verticalInset and horizontalInset properties

3.0.1

30 Nov 03:06
Compare
Choose a tag to compare

Bug fixes from the 3.0.1 milestone.

3.0.0

24 Oct 22:20
Compare
Choose a tag to compare

This release closes the 3.0.0 milestone.

NOTE: This is actually a minor update, but there are breaking changes. Thus, the major version bump.

Breaking changes

  • All *DataSourceProvider classes and *DelegateProvider classes no longer have an Item generic type parameter. As pointed out by @MrAlek in #25, this was actually superfluous. Example:
// Old
CollectionViewDataSourceProvider<Item, SectionInfo, CellFactory, SupplementaryViewFactory>
TableViewDataSourceProvider<Item, SectionInfo, CellFactory>

// New
CollectionViewDataSourceProvider<SectionInfo, CellFactory, SupplementaryViewFactory>
TableViewDataSourceProvider<SectionInfo, CellFactory>

All we need to ensure is that SectionInfo.Item == CellFactory.Item for type-safey across these components, thus the top-level Item simply isn't needed. The behavior of these classes remains unchanged, and initialization is now less verbose.

  • ⚠️ The *FetchedResultsDelegateProvider and *FetchedResultsDataSourceProvider will now assert in init that the types of items that are fetched by the NSFetchedResultsController match the types of items that the CellFactorys configure. ⚠️
  • Initializers for *FetchedResultsDelegateProvider class have changed to the following. Namely, the controller: parameter has been renamed to fetchedResultsController: and is no longer optional.
init(collectionView: cellFactory: fetchedResultsController:)
init(tableView: cellFactory: fetchedResultsController:)

Documentation

All documentation has been updated. 📜