Choosing the right framework for Android development: which mobile development frameworks are chosen and why?

Ashwin Banwarie
21 min readJul 5, 2022

--

To complete my master’s degree in Information Sciences at the VU University Amsterdam, I did thesis research in the field of mobile development frameworks. The title of my thesis is “Choosing the right framework for Android development: which mobile development frameworks are chosen and why?” In general, I am optimistic about the entire research process. The past few months have been intensive and, above all, informative. I gained a lot of insight into the various mobile development frameworks. I also found the research topic very interesting because I have an affinity for mobile development.

I especially want to thank my supervisors, Dr. Sieuwert van Otterloo and Dr. Ivano Malavolta, for supervising my thesis research. In addition, I would also like to thank the mobile developers of Capgemini, Sogeti, Albert Heijn, and Bonbot for their contribution to the interviews. I would also like to thank all mobile developers who participated in the survey. Finally, I would also like to thank the creators of AndroZoo from the University of Luxembourg for the opportunity to use their dataset for my research.

Motivation

Mobile apps are being developed at an increasing rate to fulfill human needs. According to statistical data, mobile app downloads worldwide have increased dramatically in recent years. While in 2020, 218 billion apps were downloaded by users, that number increased in 2021 to 230 billion app downloads, an increase of 5.5%. In addition, the number of mobile apps available in the leading App Stores, Google Play, and Apple App Store has also increased in recent years. While in 2015, the number of available apps in the Google Play Store was 1.6 million, this number increased in 2021 to 3.5 million. Similarly, the number of available apps in the Apple App Store increased from 1.4 million in 2015 to 2.2 million in 2021. From the latter, it can be concluded that the demand for mobile apps among various users has been growing continuously over the years.

iOS and Android are the two large competing operating systems for mobile apps. Organizations must develop a mobile app for each platform to service all customers. This is challenging since each platform’s design, and development requirements are different. To solve this problem, various cross-platform mobile development frameworks have been developed by tech companies. Developing with cross-platform frameworks makes it possible to develop two apps in one code-based for both the iOS and Android platforms. This research aims to provide more insights into the various mobile development frameworks used within Google Play Store and whether developers indeed prefer cross-platform frameworks.

Problem definition

Mobile development frameworks are powerful toolkits for building robust mobile apps. Developers can choose different strategies to build mobile apps. For instance, developers can build mobile apps in iOS native, Android native, React Native, Flutter, Xamarin, Ionic, Cordova, Unity, NativeScript, Kotlin Multiplatform, etcetera.

iOS native can only be used to create iOS apps. Similarly, Android native can only be used to create Android apps. To develop a native app for the iOS platform, Objective-C or Swift can be used as a programming language, whereas for the Android native app, Java or Kotlin can be used as a programming language. React Native, Flutter, Xamarin, etcetera are cross-platform mobile development frameworks. Cross-platform mobile development frameworks are used to create apps that run on both iOS and Android platforms.

It appears that there are many different cross-platform development frameworks with their advantages and disadvantages. Since developers struggle to choose a particular framework that meets their needs, it is essential to clarify the deciding factors to make it easier for developers to choose a particular type of framework.

Research questions and research methods

To research this problem, the following two research questions were formulated:

  • RQ1: What are the most used mobile development frameworks for developing Android mobile apps?

To gain insight, I analyzed the current ratio of the frameworks used in the Google Play Store by applying reverse engineering. During this research, the top 50 free apps from the Google Play Store were selected from 11 categories, resulting in a dataset of 550 apps. The categories such as Finance, Lifestyle, Shopping, etcetera were chosen randomly. Data collection was performed using the dataset available via AndroZoo.

Also, app downloads and ratings were collected for each app from the Google Play Store. The data of the downloads in the Google Play Store are rounded to whole numbers. The median downloads of the apps developed per framework were examined to provide insight into the downloads. Due to this, the results were not influenced by outliers. For the app ratings, the number of stars per app was collected. Three categories have been created to determine how well the apps built in a particular framework are rated. The categories are good ratings (3.6-5.0 stars), fair ratings (2.1-3.5 stars), and poor ratings (0-2.0 stars). The number of apps was sorted per framework in the three categories, and based on this, a percentage was calculated.

  • RQ2: What are the deciding factors for developers to choose a mobile development framework for developing Android mobile apps?

To answer the research question, a survey and interviews were conducted. The interviews provide insight into the various deciding factors. The survey provides insight into the processes before choosing a framework, the rating of the various frameworks, and the advantages and disadvantages of the various frameworks.

Results

The results of RQ1 are presented in the sub-questions below.

  • What type of frameworks are used in the Google Play Store?
Fig. 1. Type of frameworks used in Google Play Store

The analysis shows that 74.4% of the apps are developed in Android native. The results indicate that most Android apps are still developed in a native framework, and 25.6% are developed in a cross-platform mobile development framework. The results suggest that after Android native (74.4%), the following cross-platform frameworks were used as mobile development frameworks: React Native (11.6%), Flutter (5.6%), Xamarin (2.9%), Ionic (2.4%), Cordova (2.2%) and Unity (0.9%). No other frameworks were found in the dataset of 550 apps.

  • How does the type of frameworks relate to the different categories?
Fig. 2. Type of frameworks in the Google Play Store in relation to the various categories

The results indicate that Android native is used the most in all categories to develop an app. In News and Magazines category, 90% of the apps are developed in Android native. It is also noticeable that React Native is used in all categories. Flutter is also used within most categories except in Travel & Local.

When analyzing the different categories, React Native is used the most (20%) in Finance and the least in News & Magazines (4%). In addition, it appears that Flutter is used the most in the category Lifestyle (16%) and the least in Music & Audio, Finance, and Communication (2%). Cordova is also used the most in the category Medical as a cross-platform mobile development framework (14%). Xamarin, Cordova, and Ionic do not appear in every category and are used relatively few in various categories (between 2–14%).

  • What is the relationship between the app downloads and the type of frameworks?
Fig. 3. Median of downloads in relation to frameworks

The results show the relationship between the median of app downloads developed in various frameworks. The results indicate that apps developed in Android native, and Flutter are the most downloaded (1.000.000). The results also show that apps developed in React Native are often downloaded (500.000). Apps developed in Xamarin, Ionic, and Cordova are downloaded the least (between 100.000 and 10.000).

  • What is the relationship between the app ratings and the type of frameworks?
Fig. 4. Ratings in relation to frameworks

The results show that apps developed in Android native are the best rated. Of the 409 apps, 325 apps (79.5%) have a good rating, of which 80 apps (19.6%) receive a fair rating, and only four apps (1.0%) have a poor rating. Since the apps developed in Android native are much more common than those developed in the other frameworks, the results indicate that Android native apps are the best rated by the users.

It also appears that apps developed in Flutter receive a relatively large number of good reviews (77.4%). Also, it is noticeable that the highest percentage of poorly rated apps occur in Flutter (9.7%) and React Native (4.7%).

Most apps developed in React Native and Xamarin receive above 60% good ratings. Apps developed in Ionic, and Cordova generally receive fewer good ratings (equal to or less than 50%).

A summary of the results of RQ2 is presented in the sub-questions below.

  • How do developers rate the various frameworks?
Fig. 5. Rating of various frameworks

In order to collect data , inspiration has been gained for the survey from the State of JavaScript. All respondents were asked the survey question: “Suppose you would have to start a new mobile project next week. Would you consider using the following frameworks?”. Each framework was assessed with the following options: would use again, would not use again, interested, not interested, and never heard. The satisfaction, interest, usage, and awareness score were calculated based on the provided options.

The results show that 95.2% are satisfied with the mobile development framework Flutter. 92.9% are satisfied with Android native, 82.4% with React Native, and 40% of the developers were satisfied with the mobile development framework Xamarin. Only 10% to 12.5% of the developers were satisfied with Ionic and Cordova as a mobile development framework.

Figure 5 also shows that most (86.4%) of the developers are interested in Flutter. 75% of the developers indicated being interested in Android native, 57.7% in React Native, 22% in Xamarin, and only 12.9% of the developers showed an interest in Ionic and Cordova.

In addition, most developers (63.6%) said they use Android native as a mobile development framework. Flutter is used by 47.7% of developers as a cross-platform framework, whereas React Native is used by 38.6%, Xamarin by 34.1%, Cordova by 22.7%, and Ionic by 18.2%.

Figure 5 shows that all developers are aware of Android native as a mobile development framework, whereby 97.7% are aware of React Native and Flutter as a cross-platform framework. 95.5% were aware of Xamarin, 93.2% of Cordova, and 88.6% of Ionic. Between 2.3% and 11.4% of the developers were unaware of the frameworks mentioned. The results show that most developers were familiar with the frameworks indicated in the survey.

  • How positive or negative are developers about the various frameworks?
Fig. 6. Positive and negative experience

Based on the survey question mentioned in the previous paragraph, the positive and negative experiences of the developers with the various frameworks are visualized in figure 6. In order to collect data , inspiration was gained for the survey from the State of JavaScript. The options would not use again and not interested indicate that developers have a negative experience with the framework (this is visualized in red in figure 6), whereas would use again and interested suggest that developers have a positive experience with the framework (this is visualized in blue in figure 6).

The results show that 88.7% of developers had a positive experience with Flutter as a mobile development framework, whereas 86.4% and 65.9% of the developers had a positive experience with Android native and React Native. Only 31.8% of the developers had a negative experience with React Native, 13.6% with Android native, and 9.1% with Flutter. The results indicate that Flutter was experienced as the positivist mobile development framework with the least negative score compared to the other frameworks. Less than 30% of the developers appeared to have a positive experience with Xamarin (27.2%), Ionic, and Cordova (11.4%). 81.5% of developers had a negative experience with Cordova, 77.3% with Ionic, and 68.2% with Xamarin. The results show that the developers experienced Cordova as the negativist mobile development framework, with the least positivist score compared to the other frameworks.

  • Which deciding factors do developers consider the most when choosing a framework?
Fig. 7. Deciding factors when choosing a framework

The respondents were also asked to indicate the most important deciding factors when choosing a framework. Therefore, the survey asked the following question: “Suppose you have to choose the most suitable framework. Which deciding factors do developers consider the most when choosing a framework?” The developers could select multiple options. The results indicate that performance (86.4%), development skills (79.5%), development time (75.0%), target platforms (70.5%), app functionalities (features) (68.2%), and UX/UI (63.6%) are in the top six when it comes to the most important deciding factors that developers consider when choosing a framework. License cost (27.3%) and development cost (38.6%) were chosen by the developers as the least essential deciding factors when choosing a framework. 4.5% of developers (mentioned as other in figure 7) also indicated that they would consider support of IDE when choosing a framework.

For the sub-questions below, limited or no data could be collected during interviews and survey for the frameworks Unity, Cordova, and Ionic. As a result, no statement could be made for these frameworks.

  • For what purposes are the developers using the various frameworks?
Fig. 8. Purpose of using the frameworks

The respondents were also asked for what purposes they are using the frameworks, whereby multiple options could be selected. The results indicate that Flutter scores the highest for all the purposes compared to the other frameworks. 82.6% of the developers use Flutter for developing proof of concepts, 78.3% for developing new apps from scratch, 52.2% for rebuilding apps from other frameworks, and 47.8% for personal projects.

In addition, React Native also scores high in developing new apps from scratch (72.7%) and developing proof of concepts (63.6%). Moreover, developers use React Native the least for personal projects. Xamarin scores the lowest in developing new apps from scratch (43.8%). Android native is used the least for rebuilding apps from other frameworks (14.7%) and for developing proof of concepts (23.5%).

  • What impact does the framework have on the product and the development process?

To show the impact of the different factors, the deciding factors from figure 7 are described. These factors are subdivided into product and development process. With the product, the developed product is meant, in this case, an app developed for the user. The development process refers to the various processes required to develop an app. The impact of the various frameworks on the development process is also described. For the product and the development process, relative ranks were assigned to each factor per framework so that a comparison can be made on how well particular factor ranks per framework.

Fig. 9. Relative ranks of deciding factors on the product

Performance

  • Android native: Excellent performance as Android native apps are compiled using the platform’s core programming language and API. They are built for the Android platform without using layers. Android native apps use direct access to the hardware of the devices (GPS, camera, microphone, sensors, bluetooth, etcetera). In general, the best performance can be achieved with native apps. Rank: 5.0
  • React Native: Good performance as React Native communicates through a JavaScript bridge. The JavaScript bridge is between the React Native application layer and the hardware components, and each interaction with the device has to pass through that bridge, which affects performance. In terms of performance React Native is near-native. Rank: 4.0
  • Flutter: Very good performance as Flutter is slightly more efficient than React Native and Xamarin. Flutter renders the UI directly. It does not require JavaScript bridges. This allows developers to build complex apps without affecting performance and startup times. In terms of performance Flutter is close to native. Rank: 4.5
  • Xamarin: Good performance as Xamarin uses platform-centric hardware stimulation for apps. In terms of performance, Xamarin is near-native as the cross-platform capabilities are mainly about sharing the business logic and not the codebase. Rank: 4.0

App functionalities (features)

  • Android native: Very mature to use features such as sensors (NFC), camera, GPS, microphone, and bluetooth. Rank: 5.0
  • React Native: Relatively mature for apps that use sensors (NFC), camera, GPS, microphone, and bluetooth. Rank: 4.0
  • Flutter: Relatively mature for apps that use sensors (NFC), camera, GPS, microphone, and bluetooth. Rank: 4.0
  • Xamarin: Relatively mature for apps that use sensors (NFC), camera, GPS, microphone, and bluetooth. Rank: 4.0

UX/UI

  • Android native: Excellent UX/UI as Android provides a variety of pre-built UI components such as structured layout objects and UI controls that allow developers to build the graphical user interface for apps. Android also provides other UI modules for special interfaces such as dialogs, notifications, and menus. Rank: 5.0
  • React Native: Good UX/UI as React Native implements native UI components, allowing apps to look like native apps and providing a high-quality user interface. Rank: 4.0
  • Flutter: Very Good UX/UI as Flutter offers an extensive library of pre-built widgets. Developers can also create their own widgets or customize pre-existing widgets. Rank: 4.5
  • Xamarin: Good UX/UI as Xamarin.Forms use standard interface elements and provide a library of templates that can be reused. Xamarin.iOS and Xamarin.Android can be used for manual customization if needed. Rank: 4.0

Development cost

  • Android native: Expensive because the apps are built for an individual platform, and code reusability is not possible. Rank: 3.0
  • React Native: Cost-saving because the apps are built for multiple platforms, and code reusability is possible. Rank: 4.5
  • Flutter: Cost-saving because the apps are built for multiple platforms, and code reusability is possible. Rank: 5.0
  • Xamarin: Cost-saving because the apps are built for multiple platforms, and code reusability is possible. Rank: 4.0

The relative ranks of development cost are influenced by license cost, development time, target platform, and code usability.

License cost

  • Android native: Open-source. Rank: 5.0
  • React Native: Open-source. Rank: 5.0
  • Flutter: Open-source. Rank: 5.0
  • Xamarin: Open-source. However, developers and enterprises still need to pay between $540 to $3000 per year for Visual Studio Professional/Enterprise, depending on the license used. Rank: 4.0
Fig. 10. Relative ranks of deciding factors on the development process

Development skills

  • Android native: Uses Kotlin or Java (typed) as a programming language. The availability of developers is high, and the learning curve is easy to learn. Rank: 4.5
  • React Native: Uses JavaScript (dynamic) as a programming language. The availability of developers is high, and the learning curve is very easy to learn. Rank: 5.0
  • Flutter: Uses Dart (typed) as a programming language. The availability of developers is limited, and it requires more time to learn the framework because it uses the new Dart programming language. Rank: 3.5
  • Xamarin: Uses C# (typed) as a programming language. The availability of developers is limited, and the learning curve is easy to learn. Rank: 4.0

A dynamic language like JavaScript has more issues during development because type bugs cannot be checked at compile time but only occur at runtime. However, typed languages like Kotlin or Dart do type checking at compile time.

Development time

  • Android native: Time-consuming because the app codes have to be written from scratch for individual platforms. Android native apps can only be used for the Android platform. Rank: 3.0
  • React Native: Time-saving because with hot and live reload feature, the development time can be further reduced. React Native offers a vast library of UI components, allowing for faster development time. Rank: 4.5
  • Flutter: Time-saving as it uses a single tech stack and shareable codebase that reduces the development time. Developers need to make only minor changes to release apps across various platforms because of a robust set of fully customizable widgets to develop native-like interfaces in a few moments. With the hot-reload feature, the development time is further reduced. Rank: 5.0
  • Xamarin: Time-saving as it uses a single tech stack and shareable codebase that reduces the development time. Developers need to make only minor changes to release apps across various platforms. With the hot-reload feature, the development time can be further reduced. Rank: 4.0

The relative ranks of development time are also influenced by the target platform and code usability.

Target platforms

  • Android native: Mobile (Android). Rank: 1.0
  • React Native: Mobile (Android, iOS). Rank: 4.0
  • Flutter: Mobile (Android, iOS), Web, Desktop (Windows, Linux, macOS), Embedded. Rank: 5.0
  • Xamarin: Mobile (Android, iOS). Rank: 4.0

Maintainability (Updates of operating systems)

  • Android native: Always up to date with the latest version of Android. Rank: 5.0
  • React Native: Slightly delayed support for the latest platform updates. Rank: 4.0
  • Flutter: Slightly delayed support for the latest platform updates. Rank: 4.0
  • Xamarin: Slightly delayed support for the latest platform updates. Rank: 4.0

Availability of libraries

Code usability

  • Android native: Code reuse is not possible. Rank: 1.0
  • React Native: Code reuse is possible up to 90%. Rank: 5.0
  • Flutter: Code reuse is possible up to 85%. Rank: 4.0
  • Xamarin: Code reuse is possible between 80-90%. Rank: 4.0

Documentation and resources

  • Android native: Very clear and accessible as Android provides very detailed and easy-to-apply documentation. Developers can read standard documents, watch video training, or even complete lab exercises to master their skills. Rank: 5.0
  • React Native: Clear and accessible as there are sufficient documentation and additional resources (user-friendly documentation, guides, tutorials, and Q&A sites). Rank: 4.0
  • Flutter: Clear and accessible as it provides detailed and easy-to-apply documentation. Developers can read standard documents, watch video training, or even complete lab exercises to master their skills. Rank: 5.0
  • Xamarin: Clear and accessible as it has been on the market for a while and, therefore, provides quality documentation. Developers can dive into use cases, step-by-step tutorials, Q&As, snippets, videos, overviews, and other materials. Rank: 4.0

Other important deciding factors when considering a framework

The survey and interviews have indicated that other deciding factors are also important when choosing a framework. In the description below, the other deciding factors are shown. However, no rank has been assigned.

Developer community

  • Android native: Stars are not available on GitHub. There are 103K articles on Medium, while the framework activity is also descending on Stackoverflow. Kotlin is loved by 61.55% and Java by 47.15% of the developers.
  • React Native: There are 104K stars on GitHub and 17.8K articles on Medium, while the framework activity is moderate on Stackoverflow. JavaScript is loved by 61.55% of the developers.
  • Flutter: There are 143K stars on GitHub and 22K articles on Medium, while the framework activity is also rising on Stackoverflow. Dart is loved by 63.77% of the developers.
  • Xamarin: There are 5.6K stars on GitHub and 2.3K articles on Medium, while the framework activity is also descending on Stackoverflow. C# is loved by 61.96% of the developers.

Developer experience

  • Android native: Hot and live reloading is not possible. The code is easy to debug, and testing is supported in the framework (Unit, UI, screenshot tests, and performance testing). Official supported IDEs are Android Studio and IntelliJ IDEA.
  • React Native: Hot and live reloading is possible. The code is difficult to debug, and there is no official support in the framework. Testing is done by third-party tools and frameworks. Official supported IDEs are Visual Studio Code, Visual Studio, Atom, and IntelliJ IDEA.
  • Flutter: Hot reloading is possible. The code is easy to debug, and testing is supported in the framework (Unit, widget & integration testing). Official supported IDEs are Android Studio, IntelliJ IDEA, and Visual Studio Code.
  • Xamarin: Hot reloading is possible. The code is easy to debug, and testing is supported in the framework (Unit and UI testing). The official supported IDE is Visual Studio.

Discussion

The research contained some limitations. The top 50 apps from 11 categories were analyzed for the first research question. In total, a dataset of 550 apps. From the analysis of these apps, seven types of frameworks were observed. Due to the time available for this research and the time-consuming process of mining and analyzing the apps, it was not possible to investigate a much larger dataset. Perhaps if a much larger dataset of, for example, the top 500 apps of multiple categories in the Google Play Store were examined, other frameworks could be observed than those found in this research.

Similar research could be conducted for the iOS platform to get insight in the various mobile development frameworks and why developers are choosing for a particular framework. A test app could also be developed in multiple frameworks. As a result, the factors such as performance, UX/UI, development time, etcetera can be explicitly measured per platform so that the differences between the various frameworks can be observed on both Android and iOS platforms. Conducting a good experiment can be time-consuming, which could be a research by itself.

This research indicated that 74.4% of the apps are developed in Android native, and 25.6% are developed in cross-platform frameworks. 11.6% of the apps are developed in React Native, making it the most used cross-platform framework in the Google Play Store. It is expected that Android native will remain the largest in the coming years. However, the differences are becoming smaller because the cross-platform frameworks are continuously improving, and the popularity of some frameworks, such as Flutter and React Native, are increasing.

This research has also indicated that Android native is the best solution for developing high-volume apps. This is because users can get the best performance and UX/UI in Android native. It is also possible to build the most complex app features in Android native when using sensors, microphone, camera, etcetera. The cross-platform frameworks can be used when users are satisfied with close to native performance and UX/UI. Also, the development cost is low when developing apps for multiple platforms with cross-platform frameworks. For companies with a small budget that need an app, the best solution would be to develop an app in a cross-platform framework. It is also interesting for start-ups to build MVP (Minimum Viable Product) apps in a cross-platform framework and quickly bring it on the market. If the app needs more complex features after a while, then the app could be rebuilt in Android native.

When looking at the cross-platform frameworks, many apps have been developed in React Native. This is probably because React Native was launched in 2015, and at that time, it was the best cross-platform framework based on the strengths described in the results.

React Native also originates from the React.js framework, which is famous for developing web applications. As a result, they have excellent integration with each other. Many web developers with JavaScript skills are also available, making React Native famous among them. Flutter was launched in 2018, and given its strengths described in the results, this is a better framework than React Native and thus a significant competitor for React Native. Also, it is currently the most popular framework among developers.

Cordova and Ionic score the poorest as a framework on the various results. These are mainly web-based apps that render in the form of an app on a device. As a result, apps developed in Cordova and Ionic have poor performance, UX/UI, and app features compared to apps developed in other frameworks.

Conclusion

It can be concluded that about three-quarters (74.4%) of the developed apps are built in Android native. In addition, it was noticed that most apps are built in Android native (>55%) in almost all categories. About a quarter of the apps is developed with cross-platform frameworks (25.6%), such as React Native (11.6%), Flutter (5.6%), Xamarin (2.9%), Ionic (2.4%), Cordova (2.2%) and Unity (0.9%). From the latter, it can be concluded that React Native is the most used cross-platform. This is probably due to the strengths described above and because React Native has been on the market since 2015. React Native is also a mature framework with a large developer community. When analyzing the categories, it is noticeable that React Native and Flutter are also used in almost all categories.

When analyzing the relationship between app downloads and the type of framework, it can be concluded that apps developed in Android native, and Flutter are downloaded the most (median 1.000.000). In addition, it can be concluded that apps developed in Cordova are downloaded the least (median 10.000).

Concerning the app ratings and type of frameworks, it can be concluded that apps developed in Android native generally receive the best ratings from the users. It can also be concluded that Flutter and React Native apps receive a lot of good ratings, but most of the poor ratings also occur in these frameworks (between 4.7% and 9.7%).

Considering the strengths and weaknesses in the results, it can be concluded that if performance is the most crucial aspect for the user, then apps should be developed in Android native. The user also receives the best UX/UI, and the most complex app features can also be used, such as sensors, microphone, camera, etcetera, without affecting the user experience. In situations where apps are developed for consumers for multiple platforms (iOS, Android, etcetera), the development cost and development time are higher during the development process in comparison to Flutter, React Native, and Xamarin.

If performance is not the most crucial aspect for the user, then apps can be developed in cross-platform frameworks such as Flutter, React Native, and Xamarin. Each framework has its advantages and disadvantages, but in general, it can be concluded that Flutter is the best cross-platform framework. Flutter scores the best on most of the deciding factors based on product and development process in comparison to Xamarin and React Native. In terms of performance and UX/UI, Flutter is close to native. In addition, there is a shorter development time, which means that the development costs are much lower than Android native and the other frameworks when developing apps for multiple platforms. There is also the possibility to develop apps for multiple platforms such as Android, iOS, Web, Desktop, etcetera.

When comparing React Native and Xamarin, React Native scores better than Xamarin on most deciding factors based on product and development process. The development time is also lower for React Native than Xamarin, which means the development cost is also lower. Although React Native and Xamarin are both open-source, Xamarin uses Visual Studio as an IDE for which license costs must be paid for commercial purposes.

React Native is recommended for organizations that already have web developers and are looking for a cross-platform framework for mobile development. The framework is very easy to learn for web developers because it is JavaScript-based and very popular among them. Hence, web developers can develop mobile apps easily and fast with React Native. Thus, the development cost is also low when developing apps for multiple platforms. In terms of performance and UX/UI, React Native is near-native.

--

--