• Tomasz Soroka

Xamarin technology VS Flutter and React Native

In this episode, I will talk with Michał Ziółkowski - one of our Lead Mobile Developer. Michał has extensive experience in Xamarin technology. During the conversation we will answer three important questions:

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

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

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


Tom: Hi, guys. My name is Tom. I'm today witch Michael. Michael is our Lead mobile developer. And yeah, we were talk today mainly about xamarin technology and, we have we prepared a few questions here.

So let's start. Michael, many people don't understand that in xamarin, we have two different approaches, for development. One is xamarin native and the second one, the new one let's say something more modern is the xamarin.forms. Yeah. And, for many people only Xamarin.forms is the only way how we can develop in xamarin, but it's not true. So if you could tell us what is the biggest difference between xamarin.native and the xamarin.forms approached from your perspective?

Michael: So in xamarin.native we can create app using basic controls on different platforms, for example. IOS or Android. Tom: So we use the normal approach as we, do it when we develop in a native way. Yeah. So we have the same, access to the user interface. OK, good.

Michael: But on xamarin.forms we have something more we have a some controls prepare for xamarin group. Okay. We can use in one code and these controls are created on both platforms. Tom: OK. So in xamarin.forms we have additional layer where, we use the same let's say controls which are generated on each platform later as, user interface.

Michael: Yes. Something like this.

Tom: Okay. And so when do we develop application with xamarin.native we have probably better access to user interface layer and we can create more fancy layouts.

Michael: Yes, more advanced.

Tom: Okay, good. Michael: More specific to a platform we can use very specific controls for for platform. Tom: Okay. So, we can say that the, native way, for example, using MvvmCross in xamarin.native, we have better control over 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: Okay, good. So let's go to the question number two. And the question number two is, what is the main difference between Xamarin and between native development? Michael: Okay. So like the guy who create xamarin says xamarin.native. So it seems that the xamarin is a is run on the procesor. We don't use some code behind xamarin code in the procesor. 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.

Tom: Okay. Okay. Thank you very much and bye.


Kotlin Multiplatform Projects + Kotlin/Native = upcoming alternative to Xamarin?

Xamarin.Forms in the eyes of a programmer with extensive experience in Xamarin Native

Mobile App Development — Technology trends for 2020

If you have any questions, write in a comment! We will be happy to answer them!

► If you need help in software development visit: https://www.leaware.com/

► Find us on Facebook: https://www.facebook.com/leawarecom/

► Find us on Twitter: https://twitter.com/LeawareCOM

► Find us on LinkedIn: https://www.linkedin.com/company/leaware-com/?viewAsMember=true