Releases: din/compose
Releases · din/compose
Quality of life updates
Compose:
- Introduced
@EnclosingRouterto be able to reference the outermost router for the component using the new property wrapper. - Added more options to
Routerinitialiser to control how it behaves. - Replaced internal
ObservationBagwithObservationTreeandObservationNodewhich create tree of observers for easy tracking of all observers for all components. Reworked container components to rely onObservationTreeto deallocate resources when container components instances disappear. - Improved
@Refand@RefCollectionperformance by making sure only actual changes are propagated. - Reduced amount of firing events for all defined refs.
- Fixed a bug with mangling
@Reflisteners being in memory after@Refinstances were deallocated.
ComposeUI:
- Introduced
ComposePagingViewwhich is an easy way to paginate content vertically or horizontally. - Additional features for
ComposeScrollView.
Routing pop gesture and routing performance fixes
- Better handling for
Routerpop gestures viaUIPanGestureRecognizerinstances. - Better performance when using router transitions with lots of nested views.
Routing and memory management refactoring
- Removed
@RouterObject. - Updated memory management for dynamic and instance components. Memory is now properly managed and all observers are properly collected and deallocated when the component goes away via an internal
ObservationBagobject. - Optimised @ref and @RefCollection usages to be less CPU intensive for states that have a lot of changing
@Refand/or@RefCollectioninstances. - Introspection client programming interface draft.
Refs refactoring
- Making refs query mirror as soon as refs are destroyed/overridden.
ComposeUI alert fixes
- Fixed ComposeUI alert message centering.
Introspection emitter
- Added
Introspectemitter and.introspectmethod to dive into the depths of emitter execution. - Added
.status()method to all emitters which accepts a binding toStatusSet<T>and adds a supplied value of typeTwhen a subscription is received by the emitter and removes the supplied value of typeTwhen the emitter has finished execution. - Added
DefaultsPersistentStorageto persist data to currentDefaultson all platforms, but especially on tvOS.
Fixed @RefCollection updates on insertion/deletion
@RefCollectionnow properly notifies all observers about changes to the underlying collection data (insertions and deletions).
Router and navigation bar fixes
Compose:
- Router zIndex ordering fix via monotonically increasing zIndex.
- Router drag to pop gesture now properly handles SwiftUI cancellation via gesture state.
ComposeUI:
shouldShowDividerproperty ofComposeNavigationBarStyleis now properly respected.
ComposeUI: ComposeScrollView fixes
- Made
ComposeScrollReaderas a descendant of aComposeScrollViewto never miss a proper scroll view.
ComposeUI: ComposeScrollView fixes
ComposeScrollViewintrospection fixes.