August 27, 2019

Xamarin vs React Native – in Search for the Ideal Cross-platform Development Tool

Magdalena Rucińska

Magdalena Rucińska

SHARE
technology(73)

Recently Liki Mobiles Solutions has taken on board cross-platform development tools and discussed React Native. It is one of the newest technologies, and not so long ago it was still considered as a bit unknown. This time we decided to compare React Native (slightly less recognized yet) with Xamarin, which is more stable and well-settled technology within the mobile market. Which technology is better, more efficient and time-saving? What problems, if any, can we face while using them? Is it for everyone? Which one is more popular? We asked about opinions and led short interviews with Krzysztof W., who has experience in using React Native and Dawid Ż., who works in Xamarin on his daily basis. They shared their own experience while working with these technologies and expressed their preferences. We decided to compare the two technologies in terms of a few categories, and we asked the following questions:

1. WHAT’S THE DIFFERENCE BETWEEN REACT NATIVE AND XAMARIN?

Krzysztof:

React Native is used to create useful applications. It’s mostly based on the reusable components, we can later take advantage of in different projects. It definitely speeds up the development process. With Xamarin, there is a similar situation, but the main difference is the language we use for programming. There’s JavaScript for React Native, while for Xamarin, the most basic language is C. Both React Native and Xamarin work in the same way. You create one code for two platforms (Android and IOS). Of course, sometimes you have to write your own components additionally, like in a native language. I’ve heard that in Xamarin there’s less work with this process, although to my mind it’s still more complex than in React Native. However, as a result, they both have good performance in terms of how the applications work. The outcome is that the applications are just like the native ones, so actually it doesn’t matter if you use Xamarin or React Native, as their assumptions are the same.

Dawid:

Xamarin and React Native are cross platform solutions and they are marked by efficient and intuitive programming on both iOS and Android. With Xamarin, we must remember to differentiate between Xamarin Native and Xamarin Forms. The first one allows us to create more native applications with addition of using C# as programming language on the given platform, the other lets us use XAML when developing one user interface across all platforms. It’s important to choose between those when we design our application, if we are looking for the tools that help us to create multi platform application we should go with Xamarin Forms.

2. WHAT ARE THE MAIN BENEFITS OF REACT NATIVE AND XAMARIN?

Krzysztof:

The main advantage of React Native is that every JavaScript developer can do this. It’s sufficient to spend couple of weeks to get the fluency, if you are familiar with JS.

Dawid:

C# is my background. I have started using it for mobile apps about 2 years ago, so for me, Xamarin is the technology which made my life as a mobile developer much easier. I could use my skills successfully from the start and use MVVM framework style.

Even though C# and JS are not extremely different and it wouldn’t be a problem for some developers to switch between then if they wish to, it would still take a lot of time. Here we can use that time to develop, and this is a big advantage, so the benefits of using cross-platform tools such as Xamarin are clear – it’s possible to start working on the project without wasting time on learning another language which is time-consuming.

On the other hand we can share the hardware between developers, so we can reduce some costs. Debugging iOS applications can be done using a single Mac device. In Xamarin we have also access to more native compilation options like JIT (Android only) and AOT, so our application can run faster.

3. WHICH ONE IS MORE POPULAR?

Krzysztof:

There’s is undoubtedly a big hype over React Native and React itself. Now it’s considered the superfamous technology. It is even proved by statistics. I think it happens so because it’s developed by Facebook which stands behind creating React technology. Xamarin has been bought by Microsoft, so maybe the target group is more serious and that’s the reason why it’s not so common. Besides, another thing is that frontend becomes extremely popular. It’s somehow prioritized these days. And obviously, if you want to develop frontend you need to know JS, and if you know JS, you can effortlessly use React Native. Another thing is that (if you have JS basis) it’s easy to start writing your first application in React Native. In Xamarin the first steps might be slightly more difficult. What is more, C is quite an old language. That’s why, developers who know C are like unicorns, it’s not easy to find one.Undoubtedly, it can be hard to find good JS developer, too. But I think, the possibility grows, as there’s wider range of developers using this language.

Dawid:

There’s always some hype over the new technologies. Everyone is interested in something which causes some stir and has some modern approach, despite the fact there is extremely hard to get some support when we experience problems. The lack of examples and not clear documentation doesn’t help either. Nowadays it no longer refers to Xamarin, because it’s already recognized technology, with communities that have been using it for a long time and can share their knowledge. I would say current Xamarin or Xamarin Forms is a very stable platform.

4. WHAT PROBLEMS CAN WE FACE?

Krzysztof:

These two technologies are comparably good, and for me, especially React Native doesn’t have much disadvantages, but if I have to choose, maybe debugging in Xamarin can be somehow problematic. React benefits are that you can quickly check the results – you just reload the application or apply hot reload. This process is quite quick and it saves a lot of development time. Of course, I must add that everything depends on how skilled is the developer in given technology. By this I mean if someone is an expert he shouldn’t face any problems with neither React Native nor Xamarin.

Dawid:

We are talking about multi platform solutions, so those are always problematic. It was the same with first versions of Xamarin Forms. The phases of application life cycle on specific platforms are different, and here we can face some architecture problems. Now after some years of evolving, Xamarin Forms is more mature technology and I can say those initial problems are already solved. What can also help is a good design for a mobile application, so those iOS/Android specifics are taken in account from the start of development.

5. TO SUM UP

Krzysztof:

We can do pretty much everything with both technologies. We are restricted only by our creativity. I prefer React Native, because I’m JS developer and I love the fact of doing superfast applications, but all in all, Xamarin isn’t any worse.

Dawid:

I see Xamarin as well-developing technology currently owned by Microsoft. It’s integrated part of Visual Studio 2017, so if you have access to it and the Community Edition is available for everyone, you can at the same time start programming in Xamarin. It’s a free, open source technology, with a big potential.

Did you like the material? Share it with friends and colleagues.

Meet the author

Magdalena Rucińska

Magdalena Rucińska

Feel free to contact us!

We will answer all your questions and find the best solution for your project.

FrontendHouse logo on cookie banner

We use cookies in order to personalize site experience.