Releases: jessesquires/JSQDataSourcesKit
8.1.1: Deprecated
This library is now deprecated.
See announcement:
https://www.jessesquires.com/blog/2020/04/14/deprecating-jsqdatasourceskit/
8.1.0
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
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
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-->ReusableViewConfigProtocolViewFactory-->ReusableViewConfigTitledSupplementaryViewFactory-->TitledSupplementaryViewConfig- Updated function param names
cellFactory:-->cellConfig: - Updated function param names
supplementaryFactory:-->supplementaryConfig:
-
Removed
SectionInfoProtocolin favor of using a concreteSection.DataSourcenow referencesSectiondirectly. (#103)
New
6.0.0
This release closes the 6.0.0 milestone.
Swift 3.0 now required.
5.0.0
This release closes the 5.0.0 milestone.
Swift 2.3 now required.
4.0.1
This release closes the 4.0.1 milestone.
4.0.0
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
DataSourceProtocoland concreteDataSourcemodel. This represents (and owns) your sections. - There's a new
FetchedResultsController<T>, which is a genericNSFetchedResultsControllerthat conforms toDataSourceProtocol.
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 TitledCollectionReusableViewFactorywas replaced byTitledSupplementaryViewFactory- No longer uses a
xib, but programmatic layout TitledCollectionReusableView.xibwas removedTitledCollectionReusableView.nibwas removed- The
leadingSpacing,topSpacing,trailingSpacingandbottomSpacingconstraint properties have been removed and replaced withverticalInsetandhorizontalInsetproperties
3.0.1
3.0.0
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
*DataSourceProviderclasses and*DelegateProviderclasses no longer have anItemgeneric 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*FetchedResultsDelegateProviderand*FetchedResultsDataSourceProviderwill nowassertininitthat the types of items that are fetched by theNSFetchedResultsControllermatch the types of items that theCellFactorys configure.⚠️ - Initializers for
*FetchedResultsDelegateProviderclass have changed to the following. Namely, thecontroller:parameter has been renamed tofetchedResultsController:and is no longer optional.
init(collectionView: cellFactory: fetchedResultsController:)
init(tableView: cellFactory: fetchedResultsController:)Documentation
All documentation has been updated. 📜