3 ms·
In terms of poor performance: while it is possible to get good performance, the naive implementation of features might give you (accidentally) bad performance.
by chrisa 9y ago
In terms of poor performance: while it is possible to get good performance, the naive implementation of features might give you (accidentally) bad performance.
For example: if you have a list of 1,000 things, you might put them in a scroll view first; but that will lead to very bad loading and scrolling performance (it will with straight native code as well). Instead, you should use FlatList (https://facebook.github.io/react-native/docs/flatlist.html https://facebook.github.io/react-native/docs/flatlist.html) which is built to be performant on long lists (by reusing components, etc).
There are also a few additional considerations that you don't have when writing pure native code. One example is that if you send a lot of data (like a huge image) over the JavaScript bridge, then that can really slow down app performance. There are ways to get around that however, but it can be easy to accidentally do things like that which hurt performance (and those types of slowdowns might be confusing and difficult to track down).
So yeah, it's not perfect - but it's the best cross platform development tool I've used, and most potential issues have workarounds (once you learn what's causing the issue).