React Native vs Xamarin: Which Cross-Platform Framework to Choose in 2020?

React Native vs Xamarin: Which Cross-Platform Framework to Choose in 2020?

Xamarin vs React Native – a brief history of the cross-platform frameworks

Xamarin had quite an interesting beginning. It began as a project rolled out to support coding in C# language on systems other than Windows. It has since evolved to provide full wrappers for all APIs of both Android and iOS. One codebase could easily get compiled and would run on both operating systems.
React, a web framework by Facebook, allows developers to create complicated UIs compared to previous technologies. When augmented with JavaScript, it is a complete web application development toolset. Earlier, developers used to create apps for mobile devices by embedding their web applications into a webview in the native application. But since the web application couldn’t talk to the native code, this wasn’t an ideal solution to the problem. React Native emerged as the perfect solution. The framework still functioned as React did – they wrote the same code using the same languages. The important difference between React and React Native was that the CSS and JavaScript code would get converted into the native code of the mobile platform which was targeted.
Xamarin, on one hand, was made for the purpose of coding and API compatibility. React, on the other, was designed to be an easy-to-use UI toolkit. Making small and reusable components is the heart of React Native. Xamarin cannot guarantee the ease and flexibility of the creation of customized control because its primary purpose is as a wrapper around existing controls.

Google Trends and survey results from 2019

The following graph shows the interest over time as defined by Google Trends for Xamarin and React Native in 2019 (Numbers represent search interest relative to the highest point on the chart for the given region and time. A value of 100 is the peak popularity for the term. A value of 0 means there was not enough data for this term).

xamarin vs react native 2020

In a survey conducted by Stackoverflow with 90,000 developers (in 2019), the following were the results when it came to React Native and Xamarin:

Xamarin vs React Native: Stackoverflow survey results

Xamarin –
1. 10th most popular among frameworks, libraries, and tools (6.5% of votes)
2. 15th most loved framework (48.3% of votes)
3. 11th most wanted framework (4.9% of votes)

React Native –
1. 6th most popular among frameworks, libraries, and tools (10.5% of votes)
2. 8th most loved framework (62.5% of votes)
3. 3rd most wanted framework (13.1% of votes)

xamarin vs react native 2020

xamarin vs react native 2020

xamarin vs react native 2020

Xamarin vs React Native: Comparison of features

Features of Xamarin –
1. Language: C#
2. Pricing: Open-source
3. Performance: Fully supports 64-bit mode and also provides the fastest UI as it allows to use native tools directly
4. Scalability: More scalable compared to React Native (gives a full set of widgets and provides native look-and-feel to applications)
5. Development environment: Visual Studio
6. Development speed: Controls and Layouts save a lot of time while building an app. Availability of Xamarin and NuGet plugins speed up the process as well
7. Top users: Facebook, Instagram, Airbnb, Walmart, Skype, Tesla

Features of React Native –
1. Language: JavaScript
2. Pricing: Open-source
3. Performance: No 64-bit mode for Android but provides custom UI designing frameworks which use fast native widgets under the hood
4. Scalability: Comparatively less scalable (need to manually style your application in order to give it a native look)
5. Development environment: Any IDE/text editor (e.g. Atom, Sublime Text, Visual Studio Code, Nuclide, Vim Editor, etc.)
6. Development speed: Hot Reloading lets instant reloading of the app without having to recompile the code. Over the Air (OTA) updates allow pushing an update to users over the air, without having to go through the approval process of the app stores
7. Top users: Slack, Siemens, Honeywell, BOSCH, Jetblue

Pros and cons of Xamarin

Pros –
1. Most native
2. Individual UI for different platforms
3. Great for apps that rely on using Native APIs heavily
4. Leverage of NUnit (framework for Unit Tests, native to C#)
5. Profiler to check performance for iOS
6. Easy for MVC and MVVM patterns
7. Amazing support

Cons –
1. The requirement of Visual Studio means you have to shell out money for licenses
2. APIs need to be updated to support the latest iOS/Android SDKs
3. UI Development for different platforms (Xamarin Native)
4. Heavy linking of codes and referencing between .NET frameworks and iOS/Android/Windows

Pros and cons of React Native

Pros –
1. Easy entry for developers because of JavaScript adoption
2. Learn once, write everywhere
3. Live updates (OTA)
4. No specific IDE requirement
5. Availability of 3rd party libraries

Cons –
1. No stable version
2. Not good for apps that rely on using native APIs heavily
3. UI Development for different platforms (Xamarin Native)
4. Does not support all native features in iOS and Android
5. No official APIs (Camera, Bluetooth, biometrics, NFC, sensors)
6. Bad UI/automation testing
7. Not compatible with 64-bit 3rd party Android libraries
8. Difficult to refactor
9. 3rd party libraries can’t catch up with frequent React Native updates
10. No multi-processing support
11. No memory sharing between native and JavaScript
12. Long initializing time
13. More time required on debugging

Conclusion

The choice between React Native and Xamarin ultimately comes down to the project needs or individual’s requirements and the availability/comfort level of developers. Both frameworks have their strengths when it comes to cross-platform development, and at Algoworks, we have dedicated teams available to work on React Native app developers and Xamarin app developers.

Contact us today if you have a project in mind!

References: Pixel Crayons, Coding Infinite, Ego CMS, Stackoverflow

Also See:

The following two tabs change content below.
Rachit Agarwal

Rachit Agarwal

Director and Co-Founder at Algoworks Technologies
Rachit is leading the mobility business development function, mobility strategy and consulting practice at Algoworks. He is an expert of all mobile technologies and has experience in managing teams involved in the development of custom iPhone/iPad/Android apps.
Rachit Agarwal

Latest posts by Rachit Agarwal (see all)

Rachit AgarwalReact Native vs Xamarin: Which Cross-Platform Framework to Choose in 2020?