Xamarin, React Native, Ionic: Cross-platform Mobile Frameworks Simple Comparison
Tags: xamarin, ionic, reacnative
Published: 2018-08-11 14:19:42

---
title: Xamarin, React Native, Ionic: Cross-platform Mobile Frameworks Simple Comparison
published: true
description: 
tags: Xamarin, Ionic, ReacNative
cover_image: https://cdn-images-1.medium.com/max/1600/1*NsWIf383pjPinLrwMF7mkg.png
---
Cross-platform development involves the use of special utilities (frameworks) to create an application based on the JavaScript family of languages. The whole structure and logic of the application is created with the help of such tools in JavaScript, and then turns into a native trigger element. 

##Xamarin
 
This platform was [purchased by Microsoft in 2016](https://blogs.microsoft.com/blog/2016/02/24/microsoft-to-acquire-xamarin-and-empower-more-developers-to-build-apps-on-any-device/). 

**Features:**

Developers are invited to C # as a programming language. Xamarin is based on the application of the Mono platform.

All platform APIs are provided through C # layer classes.
It can re-use UI components on Android and iOS - Xamarin.Forms.

This solution can be a good idea if you have a ready-made C # -programmers team that needs to be switched to Mobile-development. It's also worth noting that due to the fact that Mono is used, performance does not suffer as much as when using JavaScript frameworks. Perhaps, one of the best frameworks for implementation of projects loaded with functional. However, it should be noted that there may be discomfort in the development of mobile [applications in terms of tools](https://docs.microsoft.com/en-us/xamarin/tools/), Android Studio and Xcode offer more rich functionality. 

##React Native

**The framework is:**

It is a logical continuation of React only in mobile development.
JavaScript is used as the programming language.
UI is native for each platform; UI as a function of the current state.
The basis for the FLUX pattern. 

UI is allocated to separate components to provide [state rendering](https://github.com/Flipboard/react-canvas). It is very important to properly organize the data-flow, as well as to establish interaction between the components. This is necessary for a good organization of the structure of the cod. Once you learn how to write for the web, you can easily start using the same approach only for mobile devices. Since the UI is isolated, you can achieve a large re-use of the code between the Mobile and the web solution. 

##Ionic 

**Features:**

Angular based framework; rendering is [carried out in WebView](https://developer.android.com/reference/android/webkit/WebView). Orientation to mobile devices with a large number of controls, targeting mobile devices. If necessary, use the platform API, you need to use additional plugins. Obviously, lower speed of work in comparison with ReactNative and NativeScript. 

As practice shows, in most cases in [cross-platform mobile development](https://svitla.com/blog/major-cross-platform-mobile-development-tools) JS-solutions are most effectively used as part of the dedicated application functionality working with native components; implementation of testing hypotheses associated with mobile applications. Complex cross-platform solutions are used in the "long", for the implementation of components like SIP-drain, mathematical calculations, graphics libraries. 

##Conclusion

The future of hybrid solutions, sometimes from the native Ul-components cannot be discarded, then it can to put business logic into cross-platform C / C ee libraries. Or it is important to make some pop-up window, or the settings screen, which can be easily implemented in JavaScript. Fortunately, there are no super universal solutions, why, fortunately? Thanks to the diversity of the world that it is possible to feel new technologies and find the most suitable solutions, and also to bring elegant approaches from neighboring technologies to the solutions being developed.