The changelog for ReactiveCollectionsKit
. Also see the releases on GitHub.
- Improve debug descriptions (i.e.,
CustomDebugStringConvertible
) for various types. (@nuomi1, #139) - Implement (optional) debug logging for view model updates. You can now provide a logger for debugging purposes by setting
CollectionViewDriver.logger
. The library provides a default implementation viaRCKLogger.shared
. (@nuomi1, #141) - TBA
- Allow setting a
UICollectionViewDelegateFlowLayout
object to receive flow layout events from the collection view. (@jessesquires, #134) - Swift Concurrency improvements:
@MainActor
annotations have been removed from most top-level types and protocols, instead opting to apply@MainActor
to individual members only where necessary. (@jessesquires, #135)DiffableViewModel
is now marked asSendable
. This meansSendable
also applies toCellViewModel
,SupplementaryViewModel
,SectionViewModel
, andCollectionViewModel
. (@jessesquires, #137)
- Various performance improvements. Notably, when configuring
CollectionViewDriver
to perform diffing on a background queue viaCollectionViewDriverOptions.diffOnBackgroundQueue
, more operations are now performed in the background that were previously running on the main thread. (@jessesquires, #136, #137, @lachenmayer, #138)
- Upgraded to Xcode 16. (@jessesquires, #116)
- Reverted back to Swift 5 language mode because of issues in UIKit. (@jessesquires, #116)
- Applying a snapshot using
reloadData
now always occurs on the main thread. (@jessesquires, #116) - Implemented additional selection APIs for
CellViewModel
:shouldSelect
,shouldDeselect
,didDeselect()
. (@nuomi1, #127) - Allow setting a
UIScrollViewDelegate
object to receive scroll view events from the collection view. (@ruddfawcett, #131, #133)
- Fixed a potential crash (in
DiffableDataSource
) when hiding a collection view before animations complete when diffing. This may have caused a crash with the message Fatal error: Attempted to read an unowned reference but the object was already deallocated. (@lachenmayer, #125, #126)
- Implemented
willDisplay()
anddidEndDisplaying()
APIs for bothCellViewModel
andSupplementaryViewModel
. (@nuomi1, #121)
- Fixed bug when chaining multiple calls to
eraseToAnyViewModel()
for bothCellViewModel
and andSupplementaryViewModel
. Previously, it was possible "double erase" a view model by callingeraseToAnyViewModel()
multiple times, thus actually losing type information. Now, consecutive calls toeraseToAnyViewModel()
have no effect. (@nuomi1, #117)
- Documentation updates.
Initial release. 🎉