You should know that they both try to solve the same problem of facilitating development cross-Platform using web technologies.
React Native tends to be faster because it uses the native components always. But it has a longer learning curve because it runs away from what people are used to (uses JSX). Of course it depends on what you are used to. If you know Angularjs, it already makes it easier. The fact is that there is no glaring difference to one side or the other.
Ionic is a hybrid and non-native technology. It tries to reproduce the behavior of each platform and may or may not turn to the native components, even if you use something native, it will be indirectly, so not only will the performance be lower, but it doesn’t always look like you’re using something done for that operating system. If you start using plugins to improve the experience, begins to complicate the development.
React Native is very native, still using web technologies, and produces a better user experience.
Being native helps in performance and UX.
You tend to develop a little faster with Ionic, made the application, works even so on "all" platforms. It takes a little more effort with React Native.
Perhaps the main difference is that Ionic is "write Once, deploy Everywhere and React Native is "Learn Once, write Everywhere", at least that’s what they say.
Be sure to consider other possibilities that might be better than these for your case. It’s that usual thing, there is no clear winner. You have to take both, experiment until you find the right one for each project.
The decision is whether it will cost cheaper, in theory, or whether it will offer a better product, in theory.
It is worth remembering that we also have in this "fight" Nativescript, which has a proposal similar to Reactnative and can also be used in conjunction with Angular environment. Between Ionic and NS, NS is already taking the lead. Now between NS and RN, I believe it is more a matter of preference.
– celsomtrindade
I didn’t know it until then, but I’ll take a look. But these days I read an article that seems to be very promising and that might diminish a little this world of native Apps, so in the future it may be that neither React Native nor Ionic nor Nativescript but PWA. https://medium.com/@marcosflorencio/Progressive-web-apps-futuro-b1ea15277aeb
– LuKs Sys
PWA is a concept and can already be used. But still this one it will have some limitations, since it is nothing more than a Website rendered differently. But to access some native mobile functions, you still need an app. At least so far. The question is, how much time and money spent on app creation will be more advantageous to you? If it’s just to say you have an app, it’s worth rethinking the project. But nice article!
– celsomtrindade
@celsomtrindade, Is React Native only an intermediate language (in the JS case), which is converted into the platform language and then compiled? Or is javascript running even over a js VM (like V8 or browser headless) that has a wrapper for native UI code?
– Junior BnuSC
@Juniorc-Sharp-Asp.Net take a look at the response of the bigown, she answers that you question
– celsomtrindade
@celsomtrindade, is not exactly what I asked, but searching better, I found what you wanted to know, is in: https://www.quora.com/What-are-the-key-difference-between-ReactNative-and-NativeScript/answer/Valentin-Stoychev
– Junior BnuSC
@Juniorc-Sharp-Asp.Net we can say RN is 99% native and that 1% is in VM ;)
– Ívini
That article (click) is quite illuminating!
– Fábio Roseira