Experiments with High Performance Animation in React Native

Three major methods for shape animation with React Native via @salesforceeng

  • This story is my experience and experiments to achieve high performance animation in React Native.Along the way I learned tons from these blogs and recommend you read them as you dive deeper into building your own animations in React Native:React Native Animations Using Animated API from Nader DabitReact Native ART and D3 from Harry WolffBefore we continue, I would like to define what “high performance animation” in terms of my project.
  • Note: There is another OpenGL binding for React Native which enables a more flexible OpenGL implementation without the interface.Animation in React NativeIn my exploration I tested three major methods (with some variations) for doing shape animation with React Native.
  • For example, if we have a shape with a 1px border, it cannot be transformed to have a larger width/height and retain the same border width without redrawing.Experiments and ResultsRequest Animation Frame + JavaScript tweeningThe first approach is to change nothing but use the same code from the web implementation — meaning everything is done in JavaScript without any help from React Native.
  • The gaps between each country will also get scaled so the transformed shapes are not the same as the new shapes.Zoom animation with fade in/outThis method has a significant impact on the memory footprint since there are two views with a shadow node per shape.Animated + Hybrid Native Driver + Animated Shape (ART)For this approach I still used the Native Driver while I found there is a trick to communicate between the JS thread and UI thread using setNativeProps.
  • I first tried with React Native ART and switched to React Native SVG while both give similar results.Animated + Hybrid Native Driver + Animated Shape (OpenGL)After realizing the bottleneck comes from re-drawing shapes, I switched to another library which has the drawing logic implemented in OpenGL.

Archiving decent animation performance is quite tricky. This story is my experience and experiments to achieve high performance animation in React Native.
Continue reading “Experiments with High Performance Animation in React Native”

Useful Features of React.js

RT DBaker007: Useful Features of #ReactJS codecondoltd  #coding #programmers #JavaScript #…

  • The virtual DOM in this case is the data and not the rendered content React.js is able to determine the pieces of data that have actually changed in great detail.
  • It has a data binding and state management feature that makes it an ideal platform for creating dynamic applications.
  • Many web developers will not have this, as speed is key whenever you are creating applications.
  • React.js is currently amongst the best JavaScript UI framework that a lot of web developers are finding useful in many ways.
  • If a certain change is made on the data upstream, the components using that particular data will automatically re-render in order to reflect the changes.

Read the full article, click here.


@lockpaddy: “RT DBaker007: Useful Features of #ReactJS codecondoltd #coding #programmers #JavaScript #…”


by
Jake Lawrence
on
December 27, 2015


Useful Features of React.js