Skip to content

Releases: software-mansion/react-native-reanimated

Reanimated - 4.3.0

25 Mar 16:59

Choose a tag to compare

Key changes

CSS SVG Animations

CSS animations now support animating SVG components and their properties, including Path, Image, LinearGradient, RadialGradient, Pattern and Text. This includes support for animating the d property of Path components with a special handling for path morphing.

Shared Value re-implementation

Shared Value internal implementation changed - now it uses Shareable type from react-native-worklets as its internal value container. That means you can finally use Shared Values from other Worklet Runtimes than just the UI Runtime. Also USE_SYNCHRONIZABLE_IN_MUTABLE optimization feature flag is now enabled by default.

  • feat(Reanimated): enable Synchronizable in Mutable by default by @tjzel in #9068
  • feat(Reanimated): use Shareable for Mutables by @tjzel in #9004

Animated Styles type changes

TypeScript type of Animated Styles now makes it impossible to accidentally pass them to non-animated components. This replaces previous runtime-check for this kind of mistake, which proved to be prone to false positives.

  • refactor: make AnimatedStyle type fail on non-animated components by @tjzel in #8990

Fixes

  • fix: use native processTransformOrigin instead of web version by @maxpotemkin in #8738
  • fix: prefab headers locations by @tjzel in #8747
  • fix: Proper support for nested animatedProps objects and correct cleanup by @MatiPl01 in #8726
  • fix(web): Support originX and originY in layout animations by @choi138 in #8733
  • fix: Web entering animations triggered on view exiting by @MatiPl01 in #8772
  • fix: Animation names array order updates on keyframes order change by @MatiPl01 in #8777
  • fix: Infinity parsing in web CSS animationIterationCount by @MatiPl01 in #8787
  • fix: FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS feature flag crashes by @MatiPl01 in #8822
  • fix: SharedValue.modify strict type definition by @huextrat in #8846
  • fix: FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS incorrect color alphas by @DouweBos in #8841
  • fix: Guard for undefined style in Jest utils by @msynowski in #8878
  • fix: Stop passing nativeID to component in jest unit tests by @MatiPl01 in #8881
  • Fix the issue with next.js throwing errors while hydrating by @5ZYSZ3K in #8869
  • fix: useHandler not working on web without babel plugin by @MatiPl01 in #8883
  • fix: noplugin option being ignored in the web-example by @MatiPl01 in #8933
  • fix: CSS SVGPath android parsing bugfix by @wisniewskij in #8918
  • fix: free __cxa_demangle allocations in SingleInstanceChecker by @jingjing2222 in #8964
  • fix: pass shouldPersistRemote to cloneObjectProperties by @aljadan in #8995
  • fix: Fix native matchVersion not allowing patch version mismatches by @kitten in #9018
  • fix: CSS transitions not working when a prop is added or removed by @MatiPl01 in #9014
    react-native-reanimated/pull/9015
  • fix: static frameworks missing header paths by @tjzel in #9035
  • Fix sync props back to React mechanism by @tomekzaw in #9046
  • Fix: Add missing initialization in SVG Path by @wisniewskij in #9058
  • fix: RN 0.81 TS errors by @tjzel in #9059
  • fix: CSS animation box-shadow crashes by @MatiPl01 in #9065
  • fix: CSS transition flickering on transitionProperty change by @MatiPl01 in #9120
  • fix: guard against null styleProps in PropsRegistry GC by @mobinni in #9052
  • fix - passing negative values to filter crashes on iOS by @intergalacticspacehighway in #9155
  • [Android] Fix commits during drawing by @bartlomiejbloniarz in #9072
  • perf: Don't trigger CSS transition for props with effective duration 0 by @MatiPl01 in #9118
  • chore: useHandler reimplementation by @MatiPl01 in #9090

Refactors

Chores

  • Add _beginSection and _endSection JSI bindings for systraces by @tomekzaw in #9101
  • Add _startProfiling and _stopProfiling JSI bindings for Hermes sampling profiler by @tomekzaw in #9102
  • feat: Common fallback style props builder for any unsupported component by @MatiPl01 in #8989
  • feat: peer dependencies validation by @tjzel in #9019
  • feat: stable API versioning checks by @tjzel in #9105
  • chore: modernize build.gradle scripts by @tjzel in #8707
  • chore: consider new arch always enabled in react-native 0.82+ by @gabrieldonadel in #8771
  • chore: Change props overriding behavior in the props builder by @MatiPl01 in #8877
  • chore: Change folly::dynamic to jsi::Value in updateKeyframes for CSS transitions by @MatiPl01 in #8982
  • chore: bump gradle versions by @tjzel in #8994
  • chore: only consider latest patch in compatibility tables by @tjzel in #9142
  • chore: unpin dependencies by @tjzel in #9143
  • chore(Rea): migrate to RCTModernEventEmitter by @tjzel in #9033
  • chore: Remove unused `has...
Read more

4.2.3

20 Mar 13:24
ea88f03

Choose a tag to compare

What's Changed

Full Changelog: 4.2.2...4.2.3

4.1.7

20 Mar 15:20
c3124e3

Choose a tag to compare

What's Changed

Full Changelog: 4.1.6...4.1.7

Worklets - 0.8.1

20 Mar 13:16

Choose a tag to compare

What's Changed

  • cherry-pick(0.8-stable): misplaced else when cloning remote function (#9141) by @tjzel in #9144
  • release(Worklets): 0.8.1 by @tjzel in #9146

Full Changelog: worklets-0.8.0...worklets-0.8.1

Worklets - 0.8.0

19 Mar 15:24

Choose a tag to compare

Key changes

Features:

  • New shared memory type, Shareable, a building block for Reanimated's Shared Value implementation. See Docs and blogpost for more details.

    • feat(Worklets): implement Shareable type by @tjzel in #8673
  • Stable C++ API bindings for libraries to use.

    • feat(Worklets): stable api bindings for Reanimated by @tjzel in #8996
  • New runOnRuntimeSync API - allows you to schedule a worklet on any Worklet Runtime synchronously. Docs

  • New scheduling APIs, scheduleOnRuntimeWithId, runOnRuntimeSyncWithId - allows you to schedule worklets on Worklet Runtimes just by knowing their id. Docs

    • feat(Worklets): dispatch to Worklet Runtimes from id by @tjzel in #8991
  • New runOnRuntimeAsync API - allows you to schedule a worklet on any Worklet Runtime asynchronously and return a promise with the result. Docs

  • New useful API shorthands for checking current runtime context. Docs

    • feat(Worklets): better runtimeKind checking API by @tjzel in #8758
  • New Worklets Babel plugin option, strictGlobal, that prevents accidental captures of variables from global scope in worklets. Docs

    • feat(Worklets): Babel plugin strict global option by @tjzel in #8857
  • You can now schedule worklets on Worklet Runtimes even outside of Bundle Mode, but with some limitations. There are no limitations when using the Bundle Mode.

    • feat(Worklets): limited scheduling on worklet runtimes outside of bundle mode by @tjzel in #9092

Bundle mode improvements:

  • You no longer need to patch React Native to use Bundle Mode, meaning that you can use pre-built React Native for faster compilation.

    • feat(Worklets): run Bundle Mode without patches to React Native by @tjzel in #8744
  • You no longer need to re-compile Worklets when switching between Bundle Mode and non-Bundle Mode (metro cache reset is still required).

    • feat(Worklets): always compile bundle mode symbols by @tjzel in #9064
  • (experimental) You can now run network request in Bundle Mode Docs

    • feat(Worklets): Worklet Runtime ios fetch by @tjzel in #8410
    • feat(Worklets): android fetch by @tjzel in #8850

Docs:

  • Documentation explaining what are closures in context of worklets, how they work and how to use them. Docs
    • feat(Worklets): docs about closures by @tjzel in #8889

Other changes

  • chore: modernize build.gradle scripts by @tjzel in #8707
  • chore(Worklets): Bundle Mode patches for 0.83.0 by @tjzel in #8737
  • fix: prefab headers locations by @tjzel in #8747
  • fix(Worklets): Add HERMES_V1_ENABLED flag to iOS podspec for Hermes V1 compatibility by @kimchi-developer in #8754
  • feat(Worklets): docs for plugin types by @tjzel in #8633
  • fix(Worklets): missing sideEffects property by @tjzel in #8760
  • chore(Worklets): cleanup metro overrides for bundle mode by @tjzel in #8851
  • refactor(Worklets): obtain BundleMode flag from static feature flags by @tjzel in #8853
  • refactor(Worklets): dont use @react-native/babel-preset for unit tests by @tjzel in #8862
  • fix(Worklets): Synchronizable serialization for objects outside of Bundle Mode by @tjzel in #8887
  • chore(Worklets): rename __generatedWorklets dir by @tjzel in #8894
  • feat(Worklets): docs for new bundle mode by @tjzel in #8759
  • fix(Worklets): false-positive inlineStyles warning on computed [value] by @tjzel in #8897
  • fix: Simplify run-loop and always attach JNI on Android by @mrousavy in #8905
  • Fix bundle mode on windows by @OrfeasZ in #8910
  • fix(worklets): avoid HERMES_V1_ENABLED macro redefinition on RN 0.84+ by @kimchi-developer in #8908
  • chore(Worklets): fix runAsync mock signature by @tjzel in #8916
  • refactor(Worklets): move serializable factories by @tjzel in #8560
  • feat: docs for runOnRuntimeAsync by @riteshshukla04 in #8911
  • fix: sidebar title of runtimeAsync by @riteshshukla04 in #8921
  • docs(Worklets): add gtm by @p-malecki in #8937
  • docs: add gtm by @p-malecki in #8936
  • Remove workaround for dynamic frameworks by @tomekzaw in #8927
  • chore(Worklets): compatibility docs by @tjzel in #8971
  • fix: free __cxa_demangle allocations in SingleInstanceChecker by @jingjing2222 in #8964
  • fix(Worklets): pulling native implementation for Jest tests by @tjzel in #8988
  • chore(Worklets): cleanup dispatch functions and tests by @tjzel in #9006
  • [docs] Fix scheduleOnRN call to remove extra invocation by @piaskowyk in #9017
  • refactor(Worklets): always spin AnimationFrameQueue by @tjzel in #8900
  • fix: Fix native matchVersion not allowing patch version mismatches by @kitten in #9018
  • chore(Worklets): install serializer on UI Runtime by @tjzel in #9024
  • chore(Worklets): merge isSynchronizable impl by @tjzel in #9027
  • chore(Worklets): stabilize Serializable enum by @tjzel in #9025
  • chore(Worklets): add RuntimeId type alias by @tjzel in #9026
  • chore(Worklets): export unpackers in prod env by @tjzel in #9029
  • fix: Reanimated synchronous events by @tjzel in #9057
  • chore(Worklets): update createWorkletRuntime docs by @tjzel in #9030
  • fix(Worklets): cascade raf callbacks with reanimated by @tjzel in #9080
  • feat: stable API versioning checks by @tjzel in #9105
  • feat: Reanimated x Worklets compilation compatibility CI by @tjzel in #8997
  • fix(Worklets): remote function re-serialization by @tjzel in #9115
  • chore(Worklets): update algolia keys by @tjzel in #9128
  • release(Worklets): 0.8.0 by @tjzel in #9131

New C...

Read more

Reanimated - 4.3.0-rc.0

13 Mar 13:41
cb004fd

Choose a tag to compare

Pre-release

What's Changed

Read more

Worklets - 0.8.0-rc.0

13 Mar 13:03
8c40ab2

Choose a tag to compare

Worklets - 0.8.0-rc.0 Pre-release
Pre-release

What's Changed

Read more

4.2.2

17 Feb 23:33
86d5ee0

Choose a tag to compare

What's Changed

  • chore: use Worklets from NPM on 4.2.0-stable branch by @tjzel in #8837
  • remove assert in AnimatedSensorModule destructor by @MatiPl01 in #8957
  • fix FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS incorrect color alphas by @MatiPl01 in #8956
  • Guard for undefined style in Jest utils by @MatiPl01 in #8955
  • Stop passing nativeID to component in jest unit tests by @MatiPl01 in #8954
  • Fix the issue with next.js throwing errors while hydrating by @MatiPl01 in #8959
  • fix useHandler not working on web without babel plugin by @MatiPl01 in #8960
  • fix FORCE_REACT_RENDER_FOR_SETTLED_ANIMATIONS feature flag crashes by @MatiPl01 in #8958
  • Add worklet mock helper function for jest unit tests by @MatiPl01 in #8970
  • chore: Add support for RN 0.84 by @MatiPl01 in #8953
  • Web-specific jest tests support cherry-pick and remaining test fixes by @MatiPl01 in #8972

Full Changelog: 4.2.1...4.2.2

Worklets - 0.7.4

16 Feb 09:17

Choose a tag to compare

What's Changed

Added RN 0.84 to compatible versions.

Full Changelog: worklets-0.7.3...worklets-0.7.4

Worklets - 0.7.3

10 Feb 15:14

Choose a tag to compare

What's Changed

  • fix(Worklets): false-positive inlineStyles warning on computed [value] by @tjzel in #8940
  • fix(Worklets): Synchronizable serialization for objects outside of BundleMode by @tjzel in #8939
  • release(Worklets): 0.7.3 by @tjzel in #8941

Full Changelog: worklets-0.7.2...worklets-0.7.3