Skip to content

Releases: zenangst/Spots

7.0.1

06 Dec 08:13
Compare
Choose a tag to compare

Merged pull requests:

  • Fix bug with setting wrong width when using span #778 (zenangst)

7.0.0

05 Dec 13:45
b1e153b
Compare
Choose a tag to compare

This release is a big one and its definitely our best release yet. Here are some of the highlights.
In this release we have spent a significant amount of time improving how Spots works on tvOS.
But don't worry, we have something for everyone.

🌈 Custom models and presenters

The biggest game changer in Spots 7 is that you can now use custom models on your items which
means that you are no longer restricted to the default data fields that come out of the box with
Item. To use custom models on your items, you need to make your custom models conform to
ItemModel. The main thing that you need to implement is make these equatable as these models
will be included when diffing if an item changed or not when doing reload operations.

In combination to having custom models, we also now support presenters. These are used to
make a relation between models and custom views. Working with presenters can look like this:

Configuration.shared.register(presenter: Presenter<CustomView, CustomModel>(identifier: "My model") { (view, model, _) in
  view.titleLabel.text = model.title
  return .init(width: 960, height: 360)
})

Using custom models with your views lifts the constraint on your views having to conform to ItemConfigurable.

📺 tvOS and focus guides

SpotsController now has a focus guide which gives you more fine-grained control when working
with preferred focused views. Component also have their own focus guides, that way they can
keep track of which items were selected when navigating between multiple components.
Focus guides are disabled by default by are setup and ready to use, the only thing that you
need to do to enable them is simply set .isEnabled to true.

Other improvements to tvOS includes writing a tailored SpotsScrollView layout algorithm.

🕵🏻‍♀️ Diffing

To make diffing less intrusive to the user, comparing models to generate change sets have now
been move of the main thread and into an interactive thread.

And last but not least, we have done minor/major performance improvements across the board for all
platforms.

We hope you will love Spots 7 as much as we do.

Implemented enhancements:

  • Add a test for checking the new clean property in prepareItems. #574

Fixed bugs:

  • Keep selection on tvOS when reloading with components #407

Closed issues:

  • Item with uilabel not expanding with text after sizeToFit #661

Merged pull requests:

6.1.2

04 Oct 06:41
Compare
Choose a tag to compare

6.1.1

03 Oct 12:22
Compare
Choose a tag to compare

6.1.0

23 Jun 10:43
Compare
Choose a tag to compare
  • Change pod spec version for RX #658
  • Feature makeView method on Registry #655
  • Minor improvements #657 #656

6.0.3

14 Jun 04:56
Compare
Choose a tag to compare
  • Improves scrolling experience when using multiple horizontal components #652
  • Fixes alignment issue when using insets and item spacing in combination with item pagination #651

6.0.2

12 Jun 09:19
Compare
Choose a tag to compare
  • Fixes issues related to threading #650
  • Improves the scrolling experience when using multiple carousel components #649

6.0.1

09 Jun 11:11
Compare
Choose a tag to compare
  • Migrates to a new version of Cache #647

5.8.4

09 Jun 09:24
Compare
Choose a tag to compare
  • Migrate to new version of Cache which removes CryptoSwift as a dependency.

6.0.0

31 May 18:02
Compare
Choose a tag to compare

A lot has changed in 6.0.0. You can read a summary about the changes here

Here is a shorter summary of what is new in 6.0.0.

  • Improved layout calculations when working with collection views that use layout
  • View no longer need to inherit from the UI element from where it will be used.
  • Core types are removed and replaced with Component.
  • Naming has been greatly improved throughout the framework.
  • Rendering issues when doing a lot of mutation has been greatly improved.
  • Performance improvements related to caching https://github.com/hyperoslo/Spots/pull/597
  • Brick has been removed as a dependency.
  • The documentation has been improved.
  • Bug fixes has been made to the reload if needed methods.
  • Features universal sticky headers on iOS.