| To summarize this article: The author really enjoyed using React Native up until he hit some performance issues related to loading large images on certain versions of Android. He doesn't go into what specifically the performance issues were, any techniques he used to profile his app, what third party libraries he tired or anything. Performance issues happen all the time with native apps that don't use React Native. Optimizing is a core part of what a software engineer does. Giving up on weeks of learning without a good reason seems like a poor choice to me. As it so happen's I have been working with a colleague of mine who just fixed a React Native performance issue relating to images on Android on older devices. The author might want to check out the following article: https://facebook.github.io/react-native/docs/performance.htm... Our particular issue was solved by the following: "This is especially true when you have text with a transparent background positioned on top of an image, or any other situation where alpha compositing would be required to re-draw the view on each frame. You will find that enabling shouldRasterizeIOS or renderToHardwareTextureAndroid can help with this significantly." Apart from the above, this article is pretty shallow, which is sad because I would love to read a good article on React Native's performance. Perhaps I will write one if people are interested. |
Their (and their image library Fresco's) problem is that they make heavy use of object-finalizers, which is an error in Java and especially Android.
I reported a couple of bugs, but got dismissed:
https://github.com/facebook/react-native/issues/8711
https://github.com/facebook/react-native/issues/8780
https://github.com/facebook/fresco/issues/1363
I found this rather frustrating.
I also found out that using plain java-serialization/string over the JS/Java bridge is twice as fast compared to their homegrown memory-management written in C. Again, a bugreport, again, dismissed.
https://github.com/facebook/react-native/issues/10504
It seems that Facebook's Java programmers don't know Java very well.