Javascript is not faster than Java. So, The animations built in java will be faster than the animations build in React Native. By using some smart hacks, We can give native-like experience using react-native. You can see noticeable performance difference only when you are making complex animations. Recently, I faced performance issues when I was trying to implement PickerIOS in javascript.
Sriraman
Software Engineer @ LifeOn24
I started React Native when they released
0.14. I had faced lots of issues when I started. But, those issues have been solved on the subsequent releases. I'll list down some of the problems which I faced during development.Frequent releases
React Native is following a 2-week train release. Every two weeks, There will be a new release. Every version will have something which you really need. Initially, There were lots of breaking changes. It took lots of time to upgrade from one version to other. Later, Facebook released Codemod. It was helpful to reduce the time and effort needed to upgrade to newer versions.
ListView
Initially, I was using Out of the box ListView provided by React Native. It took more time to load and RAM. Then, I get to see the following paragraph in React Native Documentation.
I started using SGListView which is the memory minded implementation of ListView by Shaheen Ghiassy. Memory consumption was reduced drastically. But, It didn't solve the whole problem. The performance was not good like Native ListView implementation.
I got a situation to show the list of all songs from the mobile. In that use case, I had to load more than 2000 rows with some image in the list view. I started searching for others solutions since the performance was not good. I get to know that recycling the views are the only way to get high performant ListView. Then I found the List View Experiment by Tal Kol. If you want to know more about it, Check Recycling rows for high performance react native list views . It also didn't work properly for my use case. So, We ended up creating this big listview in native itself.
Background Services
I couldn't run background services in Javascript. I heard that it is possible to start the JSCore in the background without showing the UI. I tried to do it but, I couldn't achieve it. I get to know that running the JSCore in the background will be more expensive. So, I stopped trying it. Now, We are doing all the background processes in Java and Swift itself.
I have lots of good and bad experiences with React Native. I'll share those experiences as Stories or Blog posts soon.