Skip to content

0.14.0

Compare
Choose a tag to compare
@github-actions github-actions released this 29 Aug 19:12
· 146 commits to trunk since this release

New:

  • Source-based schema parser is now the default. The useFir Gradle property has been removed.
  • TreehouseAppFactory accepts a LeakDetector which can be used to notify you of reference leaks for native UI nodes, Zipline instances, Redwood's own internal wrappers, and more.
  • Introduce a LoadingStrategy interface to manage LazyList preloading.
  • Optimize encoding modifiers in Kotlin/JS.

Changed:

  • In Treehouse, events from the UI are now serialized on a background thread. This means that there is both a delay and a thread change between when a UI binding sends an event and when that object is converted to JSON. All arguments to events must not be mutable and support property reads on any thread. Best practice is for all event arguments to be completely immutable.
  • ProtocolFactory interface is now sealed as arbitrary subtypes were never supported. Only schema-generated subtypes should be used.
  • UIViewLazyList doesn't crash with a NullPointerException if cells are added, removed, and re-added without being reused.
  • Change UiConfiguration.viewportSize to be nullable. A null viewportSize indicates the viewport's size has not been resolved yet.

Fixed:

  • Breaking content: UIView retain cycle in UIViewLazyList's LazyListContainerCell.
  • Update ProtocolNode widget IDs when recycling widgets. This was causing pooled nodes to be leaked.

Breaking:

  • The TreehouseApp.spec property is removed. Most callers should be able to use TreehouseApp.name instead. This is necessary to avoid a retain cycle.

Upgraded:

  • Kotlin 2.0.20
  • Zipline 1.17.0