feat: migrate to react-native-reanimated#8
Conversation
rozhkovs
left a comment
There was a problem hiding this comment.
@shoma-mano I am very glad to see your PR again!
I like your changes! Can you please answer my questions and correct the code, after that we can safely merge!
|
@rozhkovs |
|
@shoma-mano
Can you send the link about what is it about? I still don't get it. |
|
@rozhkovs But I was mistaken, only updating react native doesn't seem enough to use new architecture.It requires some expo settings. |
|
@shoma-mano I think it's a good idea to use "0.71.8" because updating expo and others to a newer version is already a bit beyond the scope of the current PR. |
|
@rozhkovs
I think so too! But after trying several versions of React Native Reanimated greater than 3.0.0, I found that the build fails if the React Native version remains at "0.71.8". Updating react native may be inevitable. |
We need to synchronize the |
|
@rozhkovs |
|
@shoma-mano In theory, on iOS and Android, for the new version of Expo, these folders should be generated using the The commands Perhaps we still need to take some steps to solve the problem when switching to the new version of Expo. I honestly don't know if it's worth keeping track of the |
|
Hey there ! |
Yes, I confirmed that once the folder is deleted, the build succeeds with the new android and ios folders afterward. I don't know detail reason, Maybe they are just too old and it is hard to refresh without deleting folders completely. So, As @Alaa-Ben says I think it is ok to include these folders to gitignore. |
Thank you for the information! @shoma-mano |
|
@rozhkovs |
@shoma-mano I finally got to check this PR! Thanks for waiting! The changes work correctly, but there is unpleasant news: on iOS (iPhone 11) and especially on Android (Redmi Node 11 Pro), the performance is not satisfactory in my opinion. You can see that the animation occurs in jerks and there is a loss of frames, this is very clearly visible on phones where 120 hz. I believe this is due to the Reanimated library itself, and we are unlikely to be able to speed this up. I'm sorry for the little data, but this can be checked on a real Android device in debug mode. My device dropped to 30fps, this was not observed with There is a proposal to leave How do you see it? |
|
I mean, I don't want to just switch to Reanimated and lose the animation performance that we already have. |
|
Thank you for reviewing, @rozhkovs! How can I check the FPS? I have a Pixel 7, and while there's an option to display the refresh rate, there isn't an option to confirm FPS. I tried using Takoslots, but it doesn’t seem to support Android 14. Anyway, if there’s a performance drop, it is not ideal to use Reanimated as the default. |
|
@shoma-mano
Probably, yes. But it is better to have a real device that is in the lower or middle price segment. As one of the options, you can add more elements to the |
|
@rozhkovs |
|
@rozhkovs |
|
Hi @rozhkovs, @shoma-mano! Are there any updates on this PR? Since the bottom sheet, react-native-gesture-handler and reanimated are all standard libraries that common projects use, it would benefit a lot for this library to be compatible with them. To speed things up I'm cloning @shoma-mano repository to align everything to the latest versions and to test the changes out. I'll let you all know. Thanks! |
|
Sharing a few thoughts. At this point, I don’t see a strong reason to migrate the library to
I don’t have time to run these experiments right now. If anyone else has input, feel free to share. |
|
@rozhkovs if FlatList is the fundamental primitive, have you considered Legend List |

Thank you very much for your helpful response. #6 (comment)
I really appreciate it, as it has been very educational for a React Native beginner like myself.
I have removed the renderScrollView and confirmed that the callbacks in useAnimatedStyle and useAnimatedScrollHandler are working correctly within the worklet.
Please don't hesitate to let me know if there are any issues or further improvements needed for this PR.