Skip to content

Latest commit

 

History

History
84 lines (57 loc) · 6.83 KB

File metadata and controls

84 lines (57 loc) · 6.83 KB

Changelog

The changelog for ReactiveCollectionsKit. Also see the releases on GitHub.

NEXT

  • TBA

0.2.0

This release closes the 0.2.0 milestone.

Breaking Changes:

  • Adopt Swift 6 and Swift Concurrency, remove CollectionViewDriverOptions.diffOnBackgroundQueue. (@jessesquires, #157, #158) See linked issue and pull request for decision to remove diffOnBackgroundQueue.

0.1.9

This release closes the 0.1.9 milestone.

  • Drop support for iOS 15. Minimum iOS 16 now required.
  • Fixed a (potential) bug where cells with the same name, but in different modules, would provide the same (conflicting) default reuseIdentifier. Default reuseIdentifiers now return the fully qualified type name. (@jessesquires, #150, #154)
    • Previous behavior: "MyCellClassName"
    • New behavior: "MyModuleName.MyCellClassName"
    • Note: This should be a transparent change and not impact any existing code. If you were previously working around this issue by providing a custom reuseIdentifier, you can now adopt the default implementation instead.
  • Fixed possible crash in async version of CollectionViewDriver.update(viewModel: animated:) due to incorrect handling of the continuation. (@jessesquires, #152, #155)
  • 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 via RCKLogger.shared. (@nuomi1, #141)
  • Upgrade to Xcode 26. (@jessesquires, #153)

0.1.8

  • 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 as Sendable. This means Sendable also applies to CellViewModel, SupplementaryViewModel, SectionViewModel, and CollectionViewModel. (@jessesquires, #137)
  • Various performance improvements. Notably, when configuring CollectionViewDriver to perform diffing on a background queue via CollectionViewDriverOptions.diffOnBackgroundQueue, more operations are now performed in the background that were previously running on the main thread. (@jessesquires, #136, #137, @lachenmayer, #138)

0.1.7

  • 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)

0.1.6

  • 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)

0.1.5

  • Implemented didHighlight() and didUnhighlight() APIs for CellViewModel. (@nuomi1, #123)

0.1.4

  • Implemented willDisplay() and didEndDisplaying() APIs for both CellViewModel and SupplementaryViewModel. (@nuomi1, #121)

0.1.3

  • Improve debug descriptions for CollectionViewModel and SectionViewModel (@nuomi1, #119, #120)

0.1.2

  • Fixed bug when chaining multiple calls to eraseToAnyViewModel() for both CellViewModel and and SupplementaryViewModel. Previously, it was possible "double erase" a view model by calling eraseToAnyViewModel() multiple times, thus actually losing type information. Now, consecutive calls to eraseToAnyViewModel() have no effect. (@nuomi1, #117)

0.1.1

  • Documentation updates.

0.1.0

Initial release. 🎉