React Native v Xamarin Forms - Choosing Cross Platform App Environment

13,775

disclosure: I'm not a Facebook or Microsoft employee, I'm not involved with either platform, I'm a web developer that just started learning how to develop with react native.

react native

built by facebook and open sourced - it currently (as of October 2015) supports iOS and Android only. It is similar to Xamarin on the fact that the UI components you build are converted into native components, and DON'T run inside of a web view, such as in other frameworks (e.g: Cordova); the advantage is that native components are more responsive than web components.

Apps should be able to share the business logic code, and most of the UI components, but as the team behind react native puts each platform has its own distinct interface, and your app should account for that, and as such it allows and encourages you (it doesn't enforce you though) to write your app UI interface for each platform.

All the code is written in Javascript (not Java), running in a nodejs process, with the UI described using XML elements, and styled with a pattern that is similar to CSS, but internally parsed as Javascript.

Your app will run in two threads, the main thread where most of the UI will run, and the nodejs thread where your business logic will run. This have some implications when you architect your application.

The framework is mature enough for you to build production ready applications, but the cross-platform components officially supported still needs to increase. The community is also building great cross platform components that you might want to use, most if not all of them are free.

what is the team behind react native working now? (based on the talks I've watched online):

  • fixing the workflow of assets - currently if you modify an asset, first you have to do it in a different place for each platform supported and in order to see the change when developing you have to recompile the app.
  • increasing the number of react native UI elements (specially for the android platform)

In summary these are the points you need to consider:

                 Xamarin                     React Native

built by:        Xamarin                     Facebook
language         C#                          Javascript (nodejs)
age              mature                      (prod ready), but not mature
community:       good support                good support
platforms        iOS, Android, Windows       iOS, Android
cost             FREE (open sourced)         FREE (open sourced)
Share:
13,775

Related videos on Youtube

Hughgo
Author by

Hughgo

Windows and Linux developer

Updated on June 06, 2022

Comments

  • Hughgo
    Hughgo almost 2 years

    I have been looking at Xamarin Forms for building a cross platform App. We would like a framework which targets iOS, Android and Windows Phone. It seems like a nice product, but the license cost may cause us a problem with our business model and also licensing for Windows Phone development is unclear.

    I have come across another framework called React Native which claims to be able to build cross platform apps. I wondered if anyone could give me an idea of its strengths and weaknesses, in particular, relative to Xamarin Forms if possible. One thing is that it uses Javascript, which may not scale well (either in terms of code maintenance or execution performance). But I would be grateful for input from anyone who has looked closer at React and has formed some objective opinions about its usefulness.

    https://facebook.github.io/react-native/

    Thanks.

    • Pascal_AC
      Pascal_AC about 9 years
      From what I've read about react native is that it's not a "Write once, run everywhere" framework. So you still have to code 2 Apps but you can use the same language for it and don't have to learn two. But it should feel like a completely native app and run faster than the other Cross Platform frameworks.
    • tkers
      tkers about 9 years
      Also keep in mind that React Native is not available for Android yet. The development team mentioned that it would still take ~6 months.
    • Marcos Abreu
      Marcos Abreu over 8 years
      For anyone looking into this question, Lapixx comment above was true at the time he wrote, but as of September/2015 Facebook has updated React Native, it now supports Android as well as iOS, for a complete review see my answer bellow.
  • Alexey Zimarev
    Alexey Zimarev over 8 years
    Since when Xamarin is Microsoft?
  • Marcos Abreu
    Marcos Abreu over 8 years
    @AlexeyZimarev - thanks for pointing out my mistake, even though Xamarin is based on Microsoft technology and it has a good partnership with Microsoft, it was developed by independent developers and Xamarin is a company on its own.
  • thicolares
    thicolares about 8 years
    Update: Microsoft just bought Xamarin :) wired.com/2016/02/…
  • Konrad Morawski
    Konrad Morawski about 8 years
    It's 2016 and I wouldn't say Xamarin is "mature". This is obviously relative, but Xamarin Studio crashes, or does weird stuff (like: all menus greyed out all of a sudden, you can't quit other than by a keyboard shortcut), on a daily basis. Hardly acceptable for a professional use product, let alone one costing this much. Xamarin.Forms is at "promising alpha" quality level in my opinion. I hope Microsoft shoves a car full of money into this and really sorts things out for good
  • davehauser
    davehauser about 8 years
    As of today Xamarin is also free and open sourced
  • Kagami Sascha Rosylight
    Kagami Sascha Rosylight over 7 years
    As of today React Native also supports Windows :D blogs.windows.com/buildingapps/2016/04/13/…
  • David B.
    David B. over 7 years
    As of today React Native is awesome! (who knows about tomorrow since it changes so fast...)