Phone and tablet with keyboad, devices for which you can create a new app using react native or ionic.

React Native vs Ionic

Kacper Kurek

React Developer

 

Mobile apps are turning into the principle vehicle of digital interaction as billions of people are using different types of devices, like phones or tablets every day to be on track. The introduction of new technologies, methods, and frameworks is allowing developers and designers to create revolutionary mobile apps.

 

Currently, mobile development does not mean just native iOS development using Swift /Objective-C or native Android development using Java/Kotlin anymore. The generation of hybrid, cross-platform, and progressive web apps is taking over the market. The introduction of new technologies, platforms, and frameworks is making possible for developers to create revolutionary mobile apps faster, cheaper, and more powerful. 

 

Cross-Platform App Development has gained a lot of popularity in recent times as it empowers engineers to create applications for numerous stages like Android and iOS, with one codebase.

 

What is React Native Framework?

 

React Native is the most famous Cross-Platform framework for mobile app development. Introduced by Facebook in 2015, it has one of the largest active developers community. React is a JavaScript library that is flexible, efficient, and declarative for developing user interfaces. This allows developers to build complex user interfaces from small and isolated pieces of code called components.

 

React Native uses 3 threads: UI ( the main application thread on which an Android/iOS app is running), Virtual (the background thread used by React Native to calculate the layout), and JavaScript ( the place where JavaScript code executes). The so-called bridge is responsible for communication between two threads - this is the core of React Native. This is a key aspect of the current architecture that allows threads to communicate asynchronously, and, as a consequence, it leads to a stable operation as the threads cannot block each other.

 

  • Multi-platform Development - enables using the same code base or a part of it (around 80%) between Android and iOS operating systems.

  • Shorter development time - this framework uses flexbox for layout, which works the same way on Android, iOS, and Web, so it makes it possible to transfer the experience from Web instead of learning different engines. that saves development time.

  • Live hot reloading - The idea is to keep the app running and to see new versions of the files that you are editing ‘alive’. This way, you don't lose any of your states, and this feature is especially useful if you are customizing the UI.

  • Close-to-native Performance - Even when JavaScript can not be as fast as the native code, in most of the cases, users will not see the difference as it’s slight and unnoticeable. 

  • Simplified UI - React Native is firmly based on creating a mobile UI. This framework lets you create truly native apps that don’t compromise users' experience. It provides a basic set of independent platform components, such as View, Text, and Image which are mapping directly to the platform’s native UI building blocks.

  • Strong developers community - The core of React Native is worked on full-time by Facebook's React Native team. But there are far more people in the community who make key contributions. Stack Overflow and Github are, of course, the main sources used for this purpose. 

 

Some of the top apps built with Reactive Native

 

Facebook Ads Manager

It was the first cross-platform mobile app built using React Native. As we mentioned before, React Native was created exactly by Facebook during one of their hackathons and their team is the main force behind the development of the RN framework. Therefore, other Facebook apps - Facebook, Facebook Analytics, Instagram are built with React Native too. 

 

Bloomberg

Bloomberg’s consumer mobile app for iOS and Android offers customers an interactive, streamlined experience with easy-to-access personalized content, live feeds, videos, and other features across Bloomberg Media.  With React, Bloomberg developers were able to rebuild the company’s consumer app more easily and quickly for both mobile platforms, and include innovative features as well.

 

Tesla

Tesla app is another popular mobile app built with React Native. It has a dark-themed UI that gives it an elegant appearance. A user can monitor Tesla charging progress, start and stop it from charging, as well as unlock and drive a car without the key.

 

What is Ionic Framework?

 

Ionic is a hybrid application development framework created is 2013 as an open-source SDK (software development kit) for hybrid mobile apps. Frameworks like Ionic use web technologies to write and render the app and require tools, such as PhoneGap or Cordova.

 

Those tools create mobile applications using Javascript, HTML5, CSS, and execute the same code no matter on what platform they run - iOS or Android. Currently, Ionic Framework has official integrations with Angular, React.js, or Vue support is being developed. It is worthy to note that this framework offers a wide range of conveniences for mobile application development, and cover over 3.7 percent of the whole mobile app market, according to AppBrain.

 

Apache Cordova plugins make Ionic more native-like functional. Cordova can be described as a tool for building mobile apps using web technologies by relying on its APIs instead of platform-specific ones.  By default, as long as Ionic is using WebView, it doesn’t have access to the device’s hardware APIs. Therefore, Cordova provides those APIs packed as plugins to gain access to the device's functions like a camera, gyroscope, or other sensors.

 

As a standard, these plugins work well, but sometimes you may get an unexpected error or conflict even in ordinary situations, fo example, the native Facebook authorization. These problems can be resolved by cleaning/rebuilding the project, and then, updating the plugin which gave an error or replacing it with an alternative one.

 

From the UI point of view, Ionic provides a catalog of standard elements:  inputs, lists, cards, buttons, toggles, segments, a row, and column grid, and others. All these elements change app appearance to look native on iOS and Android, moreover, developers can customize it even more if it's required. 

 

The main benefits of Ionic Development

 

  • Multi-platform Development  - a single codebase across various platforms Hybrid apps can run anywhere the web runs. You can build and deploy apps that work across multiple platforms, such as native iOS, Android, desktop, and the web as a Progressive Web App.

  • Quick development and time to market - in comparison with native iOS/Android apps developers can build the app for both iOS and Android at once (with some minor restrictions such as platform support for plugins and styling)

  • A wide range of components and plugins  - a rich library of front-end building blocks and UI components; hundreds of most popular app icons are available here. Moreover, plugins allow having access to phone features, such as l GPS or camera. For more plugins, you can also check the Cordova plugins list that can be sorted by the platform availability. 

  • Easy-to-learn tool - front-end developers can quickly understand the basics of Ionic or choose between different environments that this framework supports. Ionic app builder called Ionic Studio is designed to combine all development components into a single environment, which simplifies the application development process.

  • Testing convenience  - browser built-in testing and debugging tools which make the whole testing process convenient and fast.

 

Some of the top apps built with Ionic

 

Marketwatch

MarketWatch gives its users access to the latest business news, financial data, and market information. The app also provides an opportunity to create a watchlist and track stories related to the customer’s stock picks. Thanks to Ionic, the engineers found that 95% of the code can be used for iOS and Android apps at once. Enhanced functionality has been added through proprietary plugins, including Omniture, Facebook, Twitter, and Urban Airship.

 

Untappd

Untappd is a social discovery and check-in network that gives users the ability to easily find nearby craft beers and bars, see what beers are trending, as well as see where friends are drinking. To create a hybrid app, Untappd team took Untappd’s existing UI skin and translated it, using Ionic’s UI kit. Next, they used elements like Toggles and Checkmarks to make the app look more native.

 

Sworkit

Sworkit offers over 100+video demonstrations for yoga workouts, stretching, cardio, and others without any equipment. This app has been featured in the app marketplace (both Play Store and App Store) multiple times under the Health and Fitness segment.

 

 

What is the main difference between React Native and Ionic?

 

The technology stack is the dominant factor that will determine your choice. Ionic and React Native both use JavaScript, but take different approaches to render the application.

 

Framework

React Native

Ionic

Languages

JavaScript and Custom UI Language / Interpreter

HTML, CSS and JavaScript

Code Reuse and UI elements

For iOS and Android the same UI codebase can be used, but in case of web application development UI is different

UI elements are shared across any platform, in accordance with the native look no matter where they are deployed

Testing in the process

The result is instantly displayed in the emulator or real device due to live hot reloading

The same - app prototype is directly updated as soon as you make changes

Performance

Great performance, close to native

Usually worse in comparison with RN. Performance issues may be caused while using too many callbacks to the native code

 

React Native is a user-oriented framework that allows you to quickly download applications. The main reason for using React Native is pretty clear: that developing a team can write one set of code (JavaScript code, to be precise) and, afterward, enjoy the native-close performance of their own React mobile applications.

 

Using Ionic is justified if you have extensive experience using web technologies, Angular and JavaScript libraries. To get all the benefits of Ionic, you should first consider security and optimization measures. This will help you avoid most of the disadvantages of the platform described in the table. As it was mentioned, in terms of performance, choosing Ionic for mobile games or other applications that require intensive use of the phone hardware can not be considered as a good idea.

 

Bottom line

 

Ionic is a good solution for creating an elegant user interface that doesn’t require a lot of time, however, it has some performance issues compared to environments like React Native. For this reason, React Native is a few times more popular on the market. While both provide a solid foundation and help developers create a great application, your team choice depends on your overall vision and ideal functionality of your mobile applications. 

 

Besides, both options should be also evaluated based on factors that are more important for the app, such as customization, platform independence, access to phone hardware features, and not only. Would you like to evaluate your project and choose the best framework for it? Give us the details here and get in touch with UIG mobile app development team!

 
Easter egg ;)