At first, let me introduce myself - my name is Konrad and I work with 314 for 6 months now. In my daily work I focus on React and React Native Development, but I've also had a chance to work with several other technologies - like for example Ionic. The purpose of this post is to express my thoughts about React Native and make a little comparison between Ionic and React Native.
What is React?
What is React Native then?
Hybrid Native apps with React Native
When we know what is it, it's time to say why it is different than, for example, Ionic.
With React Native we don't create a hybrid app but a real native mobile application which uses the same UI views as an app written in Java or Swift. The code is written in JSX and pure JS and then compiled into two separate native apps for iOS and Android.
Apps created with Ionic are hybrid, which means that they run inside a native component called ’Web View’ and render HTML with CSS inside of them. Such an approach gives them the possibility to run everywhere with minimum work effort, at the cost of performance.
Writing in React Native has also more features, such as access to mobile system elements like the camera or GPS. In Ionic, we have to get access to it through Cordova or a system similar to it.
React Native has a very strong community and is powered by Facebook, which unfortunately means that it also has poor documentation.
Ionic, on the other hand, has many more questions and replies on StackOverflow, a great documentation and a lot of examples, but has less stars on GitHub than React Native.
What else did I find fantastic about React Native?
I'm a frontend developer, so I like it when my changes appear immediately in the application view layer without waiting for compiling. In React Native, the app is compiled once and then it has the hot reloading feature, what means that the view changes instantly after saving the progress.
Apps in the development mode can be easily connected to ‘Chrome dev tools’ and debugged outside of an emulator. Of course, a development console can be also run in your favorite terminal.
Why I choose React Native
I chose to learn React Native because it looks like an awesome solution for creating mobile applications without changing my specialization, and also because I already knew React, which I prefer over Angular. After spending a few months with this framework, I can say that an app written in React Native can have really great performance if the code is written using solid JS patterns.