Animations, generally speaking, are style values transformed over time. For example, the fade in animation has an opacity value that moves from 0 to 1. This transition can be done in various ways. This transition is specified by easing functions, which specify the rate of parameter change over time. There are various easing functions that you are probably familiar with from the web; you can check them at http://easings.net/.
Although not all of these functions are supported in React Native, the subset we get and the ability of interpolation and combining animations are enough to create really complex animations, but remember one thing; if you are doing a really complex animation, always ask yourself if you really want your animation to be so complex. Maybe, you will end up distracting users from the actual content.
React Native provides us with two systems...