Skip to content
This repository has been archived by the owner on Dec 2, 2021. It is now read-only.

Native optimisations & seamless image transitions πŸŽ‰πŸŽ‰

Compare
Choose a tag to compare
@IjzerenHein IjzerenHein released this 04 Feb 14:47
· 58 commits to master since this release

This is a big release of RNMM, not specifically in terms of features, but in terms of a new clone based architecture enabling native extensions and putting down the groundwork for future features. The native extensions are optional, but are recommended in order to provide a flicker-free experience on both iOS and Android. A new default transition called move has been introduced which animates images seamlessly (taking into account the resizeMode and image clipping) without and stretching or tearing.

Added

  • Added new smart move transition, for seamless transitions when source and target are the same, but are sized differently or use different border radii
  • Added ability to render multiple clones efficiently and clip and transform their contents
  • Added native optimisations for iOS and Android to address flickering issues when animating (to install use react-native link react-native-magic-move)
  • Added debug prop for Provider and Scene, which also propagates into the rendering hierarchy
  • Upgraded to a new clone based architecture to enable native optimisations
  • Upgraded the morph transition to always use the native driver

Fixed

  • Fixed layout position when view was inside scrollview and the scrollview offset wasn't zero
  • Fixed animations overlapping the scene bounds
  • Fixed image flickering through new native optimisations
  • Fixed backfaceVisibility prop warnings in the flip transition

Changes

  • The move transition is now the default transition. Use morph if the content is distinctly different.
  • [BREAKING CHANGE] Custom transition functions are now required to return an array, and can no longer return a single clone or React.Fragment.
  • Removed behaviour that selected the transition of the source when no transition was defined on the target (this proved to be counter productive)

Deprecated

  • The scale transition has been deprecated and will be removed in the near future. Use the new move transition instead.