Reanimated 2.0 stable release is out!

Krzysztof Magiera
Software Mansion
Published in
4 min readMar 4, 2021

--

Today we are happy to announce the release of a stable version of Reanimated 2.0. This release is yet another incremental step we made since we published the first 2.0 beta version back in June 2020. Since that time we’ve gotten a tremendous amount of feedback and excitement about the library from the React Native community. We are thankful for all the comments, contributions, and time that so many people put into testing and playing with Reanimated 2 — this helped us a ton in improving it through all the beta and RC releases.

Highlights since 2.0-beta

Getting Reanimated 2 out was quite a journey for our Open Source team at Software Mansion. It was a very challenging task on the engineering front with a number of novel solutions we designed, and touching areas that weren’t very well explored by the community at the time when we started. Because all of that, the beta release wasn’t as polished as we would’ve wanted, and we needed to put it in y’all hands to see how it will be used and what to improve. We are grateful for all the feedback we received and wanted to thank especially Terry Sahaidak, William Candillion, and Marc Rousavy for a constant stream of suggestions and contributions (but hey — there were 80 people who contributed code to v2 release and we are extremely thankful to everyone). We also wanted to thank Mo Gorhom for setting a high bar for Reanimated with his bottom-sheet library (check it out!), and to Catalin Miron and many more for creating and sharing what you have built with Reanimated. All of that allowed us to identify a few main areas of focus for getting to the stable release with the first one being developer experience — things like hot-reload support, proper exception reporting, alerts on common mistakes, or ease of installation were initially a struggle and we feel like all of that aspects have improved a lot. The second key focus was to evolve the API such that we can cover all the use-cases the community has come up with. Thanks to the feedback from the community and many people who decided to incorporate the early versions of the library in their apps, we managed to come up with some new APIs: things like animated reactions, synchronous measure and scroll, or synchronous layout updates are some of the highlights from the things we’ve added. Finally, the last key area for us was general stability improvements — we’ve got over 300 issues reported on github for Reanimated 2 and addressed almost 90% of them — thanks to that we tracked down a huge number of bugs, fixed library crashes and improved both CPU and memory efficiency.

Using Reanimated 2 with Expo

We wouldn’t be able to get as many people to try Reanimated 2 if not the support from the Expo team (special thanks to Tomasz Sapeta, Stanisław, Brent and Evan). We are very grateful for the opportunity of incorporating beta version of Reanimated 2 into Expo as early as in SDK 39 which went out in August 2020. We are happy to announce that the stable release of Reanimated will be a part of the next Expo SDK release (41) which will go out in the upcoming weeks.

Reanimated + Shopify = Surprise

The work on Reanimated 2 has been supported by Shopify. We are excited to share that we decided to continue this partnership in 2021, and we are sure that it will help make the React Native ecosystem even better on many fronts.

One of the recent initiatives in Reanimated driven by the engineers at Shopify was the addition of testing API — the goal was to enable components which rely on Reanimated to be testable with tools commonly used in React ecosystem, but also to make it possible to test state and progress of animations and interactions run with Reanimated. As a result, we designed a set of methods that can be used with components that use Reanimated when running tests using Jest. We are happy to share that the Reanimated testing API has been incorporated into the 2.0 stable release and as of now you can use it to bring some test coverage to your Reanimated-enabled components (for more details check out the recently added testing guide on the docs website)!

Open Source at Software Mansion

Reanimated 2 has been built by the React Native Open Source team at Software Mansion, however, it has not been the sole focus of our team’s work. We work on contributing and maintaining libraries like react-navigation, react-native-gesture-handler, and react-native-screens, but also publish research articles and tutorials on our blog, or organize webinars. To accommodate all of that and even more, our team grew from three to over twelve people through the past year. We hope to share even more exciting projects in the near future (not exclusively related to Reanimated), so make sure to follow @swmansion on Twitter to stay up to date with updates on our work!

--

--

Director of engineering at Software Mansion. React Native contributor and former member of React Native team at Facebook.