The changelog for JSQDataSourcesKit
. Also see the releases on GitHub.
This release closes the 8.1.0 milestone.
- Upgraded to Swift 5.1
- Updated to Xcode 11
- Updated SwiftLint to 0.35.0
This release closes the 8.0.0 milestone.
- iOS 11.0 minimum now required
- tvOS 11.0 minimum now required
- Upgraded to Swift 4.2
- Update to Xcode 10.2
- Update SwiftLint to 0.31.0
This release closes the 7.0.0 milestone.
-
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 concreteSection
.DataSource
now referencesSection
directly. (#103)
- Added new
DataSourceProtocol
extension convenience methodfunc item(atIndexPath indexPath: IndexPath) -> Item?
. - Added new
TableEditingController
to support table view editing functionality provided byUITableViewDataSource
. (#29, #80, #100)
This release closes the 6.0.0 milestone.
Swift 3.0 now required.
This release closes the 5.0.0 milestone.
Swift 2.3 now required.
This release closes the 4.0.1 milestone.
- Fixed an issue with
carthage build
(#61, #62). Thanks @dcaunt!
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.
- tvOS support
- Swift Package Manager support
- Fixed crash when dequeuing a supplementary view for an empty collection view section (#38). You can now have supplementary views for empty sections.
- Updated to Swift 2.2.
- Swift 2.2. and above is now required.
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.
- There's a new
DataSourceProtocol
and concreteDataSource
model. This represents (and owns) your sections. - There's a new
FetchedResultsController<T>
, which is a genericNSFetchedResultsController
that conforms toDataSourceProtocol
.
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
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
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
The *FetchedResultsDelegateProvider
classes have been unified into a single class, FetchedResultsDelegateProvider
, which replaces the following:
- Remove
CollectionViewFetchedResultsDelegateProvider
- Remove
TableViewFetchedResultsDelegateProvider
- Renamed to
TitledSupplementaryView
TitledCollectionReusableViewFactory
was replaced byTitledSupplementaryViewFactory
- No longer uses a
xib
, but programmatic layout TitledCollectionReusableView.xib
was removedTitledCollectionReusableView.nib
was removed- The
leadingSpacing
,topSpacing
,trailingSpacing
andbottomSpacing
constraint properties have been removed and replaced withverticalInset
andhorizontalInset
properties
Bug fixes from the 3.0.1 milestone.
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.
- All
*DataSourceProvider
classes and*DelegateProvider
classes no longer have anItem
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 nowassert
ininit
that the types of items that are fetched by theNSFetchedResultsController
match the types of items that theCellFactory
s configure.⚠️ -
Initializers for
*FetchedResultsDelegateProvider
class 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:)
All documentation has been updated. 📜
In short, this release contains tons of refinements and fixes. The codebase is substantially cleaner, and more user-friendly.
-
Swift 2.0
-
CollectionViewFetchedResultsDelegateProvider
must now be initialized with a cell factory. This is similar to howTableViewFetchedResultsDelegateProvider
has always worked. -
The
*DataSourceProvider
classes now provide anNSIndexPath
subscripting interface. -
Initializers for
CollectionViewSection
andTableViewSection
have changed to the following. In particular, the variadicinit
is much more natural.public init(items: Item...)
public init(_ items: [Item])
-
Previous instances of
DataItem
type parameters have been changed toItem
.
Find the complete list of closed issues here for the 2.0.0 milestone.
All documentation has been updated. 📜
The example app is now much cleaner, and much more awesome. 😎
It's here! 🎉
Checkout the README
and documentation.