With the advent of React Native, NativeScript etc.. why should one learn Ionic? Do you use it? Please share your perspective. :)
This is (roughly) the exact same decision as "angular vs react"; they're built on top of those, respectively, after all. Which makes this a religious question and, thus, the only answer I can give is: use whichever you like best, both of them are definitely viable.
Me and most of my colleagues prefer ionic, for what it's worth. I've never liked react, but I can't put my finger on why.
I have been developing in ionic for a while now and I recently switched to react native. Following are the pros and cons of using Ionic over other mobile app development framework in 2018 IMO:
TTM (time to market):
Development in ionic is really fast. It is by far the fasted tool I have personally used to create a mobile app and get it out there. Ionic team have done a great job in providing most used ready made components. You will hardly find yourself looking for UI component or icons that has already not been bundled in the framework.
Real Cross Platform development:
Since ionic apps are nothing but html/css/js running inside a webview, you really have to code your app just once. Unlike React Native; you don't have to worry about platform specific details. If you code your app in Ionic it is guaranteed to run on all the platforms.
Cordova Plugins:
Great community around cordova. Ionic provides what they call Ionic native, which is essentially a wrapped around thousands of available cordova plugins. If you develop for ionic, you can use all the existing cordova plugins out there.
Great tooling and support:
Ionic team have developed great tools around framework. Cli, debugger, ionic pro (similar to expo) etc..
Performance, Performance, Performance
This was my main (and probably the only) reason to switch to RN. Since Ionic apps are essentially web apps running inside a webview; there is limit on how much performance they can extract out of the platform. Once your app grows and you start realizing the lags and frame drops as you navigate across the apps. Even the end user would start noticing that they are actually browsing a web app rather then a native app. This could drive your users away.
So, as you guessed it's basically a trade off at the end of the day. If your app is more static and doesn't do much dynamic things like making a network call to fetch 500 items from wire and re-render them based on user input then go with Ionic. If, however your app will need do intensive computation and will need more cpu/gpu then go with RN.
time to make ionic apps for ios+ android = t code sharing = 100% performance 50%
time to make native for ios+android = 2t code sharing = 0% performance = 100%
time to make react native for ios+android =1.5t code sharing = 50% performance = upto 90%
Max Little
Coder and Cyclist
Dylan Fernandes
Java Developer
It depends on your end goal. There are pros and cons for each. For example, Ionic's documentation is well developed, the apps are easy to test, and it has tons of ready made components. However, it runs off of the mobile browser, which can slow the app down. React Native renders through native components and runs faster, but the testing and emulation is slower.