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?
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?
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?
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.
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?
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.
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
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.
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.