Blog For Devs

Ionic or React Native?

author Dumitru GlavanDumitru Glavan (@doomhz)

As usual, there is no easy answer to this kind of questions. Both of them will help you deliver a great mobile app in a small amount of time if you have a strong knowledge of JavaScript. Your app will run smoothly on iOS and Android and you don’t need to learn native dev with ObjectiveC, Swift or Java. Actually, 90% of the mobile apps can be hybrids I guess, at least that’s an easy win for me.

Ionic

I had a great experience with Ionic, I’ve managed to launch a decent app, with chats, pictures upload, authentication, push notifications and listings in about a month, starting from scratch. I did however worked with Angular 1 for about 2 years already…almost daily. It would have been even easier if I would have worked with Cordova before.

What I liked about Ionic is that there lots of tutorials out there that help you get to speed and their official docs and examples are amazing. Everything in one place, demos everywhere and you also get a proper boilerplate with default styles when starting your project. Everything is right there, all you have to do is just to plug in all the pieces together. Ionic Creator and Ionic Viewer are great tools for beginners btw. I would also recommend looking into PushWoosh and other third party services for notifications otherwise you have to struggle with the pain of iOS and Android security legacy.

React Native

React Native on the other hand provides better dev tooling and it’s not based on Cordova.

“With React Native, you don’t build a “mobile web app”, an “HTML5 app”, or a “hybrid app”. You build a real mobile app that’s indistinguishable from an app built using Objective-C or Java. React Native uses the same fundamental UI building blocks as regular iOS and Android apps. You just put those building blocks together using JavaScript and React.”

Yep, that’s exactly what it is - a hybrid but not really a hybrid… The UI and the animations feel a lot smoother and you don’t have the bugs from Cordova. The official docs are pretty good but not better than the ones on Ionic I think. Bootstrapping your first app isn’t hard either.

What’s annoying about React Native is that you don’t have all those pre-styled components so you have to build everything by yourself. In the beginning that might be scary. The Router might be harder to set up properly as well. It definitely takes more time to ship a decent app as a first timer.

But, if you want to get up to speed with your application, the easiest way is to plug in custom components. I found Native Base being a pretty good platform for that. In fact, if you plug in Native Base and add React Templates to it - you end up with an Angular/Ionic setup. So, no worries, you’ve got everything you need to start building your UI. Oh, Redux comes already pre-configured with Native Base (yay!).

Tutorials

Besides the official docs I love the courses from egghead.io. The React Native lessons are just great to start with. The course on Ionic is pretty good as well to start with.

Conclusion

Nope, there is no conclusion, please decide by yourself what’s the right language/tooling for you :p , I like both frameworks and I’m happy we’ve got this amazing, open source platforms. Write your app ones and run it everywhere, don’t spend time on writing ObjectiveC/Swift or Java anymore!