• Tomasz Soroka

Xamarin technology VS Flutter and React Native

In this episode, Michał Ziółkowski - one of our Lead Mobile Developers, will talk about Xamarin technology. We will answer three important questions:

  1. What is the biggest difference between Xamarin.native and Xamarin.forms?

  2. What is the main difference between Xamarin and native development?

  3. How could you compare Xamarin technology to newer technologies like Flutter or React Native?


Tom: Michael, many people don't understand that in Xamarin we have two different approaches to development. One is Xamarin native and the second one, more modern one is Xamarin.forms. Yeah. Tell us what is the biggest difference between Xamarin.native and Xamarin.forms from your perspective?

Michael: In Xamarin.native we can create apps using basic controls on different platforms, for example IOS or Android.

Tom: So we use the approach as we normally use when we develop in a native way. We have the same access to the user interface.

Michael: But on Xamarin.forms we have something more. We have some controls prepared for Xamarin group, we can use them in one code and these controls are created on both platforms.

Tom: OK. So in Xamarin.forms we have an additional layer where, we use the same controls which are generated on each platform later as user interface?

Michael: Yes. Something like this.

Tom: So when we develop an application with Xamarin.native, we have probably better access to the user interface layer and we can create more fancy layouts?

Michael: Yes, more advanced. More specific to a platform, we can use very specific controls for the platform.

Tom: Okay. So, we can say that the native way, for example, using MvvmCross in Xamarin.native, we have better control over the whole, interface. Everything then in the Xamarin.forms, which is more close to hybrid technologies like a IONIQ like, React Native.

Michael: Yes, I can say that.

Tom: Let's go to question number two. What is the main difference between Xamarin and between native development?

Michael: It seems that the Xamarin is run on the processor. We don't use some code behind Xamarin code in the processor. Okay. So it's the native. So and the big difference is that we can use a C# language to create a application for both platform. For example, for IOS and Android. So we can reuse code on both platform. And this is the biggest change that we can if we create the application on IOS, on Andorid or in native way.

Tom: OK. So if I understand it correct. When we use xamarin approach, then we have a C# language. So we have one language for both platforms. Still, we have the same access to user interface like in native way, but we don't have to use Java or kotlin on Android and, Objective-C or, or SWIFT on IOS. So we can save time. We can save money. But from the, user perspective, we can create everything. What we can do when we use native technologies.

Michael: Yes.

Tom: Okay. But this is when we use xamarin.native like xamarin MvvmCross approach. If we do it with xamarin.forms then, it's not so it's also possible. But, but regarding user interface, we have more let's say we are not able to do as many things with user interface like In xamarin.native.

Michael: Yes, that's corect.

Tom: OK, good. And the question, number three if. Because xamarin technology is quite we shouldn't say old. But it is on the market for many years. And sometime ago it was overtaken by Microsoft. So this is very mature technology. And how could you compare it witch, let's say newer technologies like flutter, like react native. Some people says that: no, we are not going with xamarin because it's old. We will develop something with react native or flutter. Yeah. So how could you compare it? A xamarin with react native, for example, or with flutter. Michael: So like I said before, there's xamarine native. So it's on the procesor. If I should compared to the Flutter, it's Flutter is, very similar. Becouse We use dart language to write code. And I don't know what exactly it works, but it's it can be very similar. We don't have some kind of framework to run Flutter code but the, other of the technology like react they use some kind of framework to our code .

Tom: Okay. Michael: So it's it shouldn't be very good. Maybe it's good to create a sample, but to create a long term support, APIs - not good way. Tom: Yeah. As you as you said and one of the examples is airbmb and they develop to their application in react native and after a few years they decided to switch to the native way because the application was too big and it was very hard to maintain maintain it with react native, so from our perspective and our products react native, it's also very good technology. But, for specific products. Yeah. So if you need to deliver something fast, something what is not complicated. And, if your developers are well skilled in JavaScript in CSS, then probably it's better to go with react native. And of course, we also do such projects. If you need to have something big, develop and maintain in long term perspective, then in many cases xamarin is better. Yeah. Am I right?

Michael: Yes.