Xamarin.Forms vs Xamarin Native
If you are new to Xamarin, one of the hardest things to understand in the early stages is which flavour of Xamarin to choose. Should you target specific platform UIs with Xamarin.Platform or write a single XAML UI with Xamarin.Forms?
Why are there two choices? How is the Xamarin newcomer supposed to choose? And why can it seem so difficult to get a straight answer?
What is Xamarin.Platform?
Let’s start by being clear that Xamarin IS native. It was born out of Mono, the original cross-platform version of .Net. By wrapping the standard Android and iOS platform APIs, they allow apps to be written in C#. In this form of Xamarin, user interfaces are created in the same way you would develop a Java Android app or a Swift/Objective-C iOS app.
This traditional way of writing Xamarin apps is officially known as Xamarin.Platform, but as it simply wraps the native APIs, it is also sometimes referred to as Xamarin Native or Native UI.
What is Xamarin.Forms?
Xamarin.Forms is a framework that runs on top of Xamarin.Platform allowing a single XAML or C# UI to be written to target several platforms at once.
Having once been considered a non-starter for high-profile customer-facing apps, Xamarin.Forms continues to grow in stature. Now with a XAML previewer, quick-start scaffolding and theming options and wide community support, Xamarin.Forms has become a serious option for any new project.
Forms is Fast, Native UIs give you control
The benefit of using Xamarin.Forms is greater than just the saving of having to build your UI over again for each new platform. The amount of context switching is massively reduced, and the barrier to entry for new developers is much lower, especially if you’ve done anything with XAML in the past. XAML is a lightweight UI technology and Xamarin.Forms lets you build Android, iOS and Windows applications quickly without having to know about Constraints, XCode, Adapters, Fragments etc. let alone having to master these or hand-off to a platform expert.
However, as with any abstraction layer, if it provides functionality that you don’t use, it may just get in the way. If you are building a highly customised application that doesn’t conform to the standard Xamarin.Forms controls and you find yourself consistently manipulating the underlying native controls using custom renderers and platform features, you may feel that you are better off going native the whole way.
The Pixel Perfect Layout Myth
It used to be said that you choose Native UI over Forms when you require pixel perfect design. I assume this slightly misleading phrase came about through the desire to have a simple rule of thumb to help new Xamarin developers. Unfortunately it has gained traction and seems to imply that in some way layout accuracy is the main difference. It’s just not that simple.
It is said that if you want pixel control you need to use Xamarin native, not Xamarin.Forms. But doesn't the relative layout give you that?
— Jesse Liberty (@JesseLiberty) July 1, 2016
So, which one is right for you?
If you feel like there isn’t great guidance on how to choose, it is because every situation is different. What really matters here is context. The real reason forms might not work for you is if you are not prepared to compromise on a particular UI design and it happens to be one that leads you away from the intended usage of the standard Xamarin.Forms controls.
Custom Renderers and layouts are easy to create, but like any framework, it can only be bent so far. If you have the experience to build your own Android and iOS UIs, you may reach a point where Forms is getting in the way.
Don’t make a Forms vs Native choice based on your expectations of future designs
Agile development is about embracing change, and you can’t be sure how your application design will develop over time. Don’t make a Forms vs Native choice based on your expectations of future designs. Instead, think about the culture in which you work, the skill sets and experience of your team and whether speed of development is considered important enough to compromise on design perfection.
If you don’t have the experience to be sure that Native UI is right for you, choose Xamarin.Forms.
You can think of Native UI as the advanced option. Here’s my suggested rule of thumb: If you don’t have the experience to be sure that Native UI is right for you, choose Xamarin.Forms.
Make Xamarin.Forms the default
If you’re not sure which to choose, the safest option is to start with Forms. It will be good enough for a large percentage of mobile apps. Even if you change later, you’ll have built some lightweight XAML pages and controls having quickly prototyped your app experience and put an early version of your app in people’s hands. The waste is likely to be greater and the experience less useful if you start Native and later choose Forms.
Xamarin Apps vs. Native Apps vs. Hybrid Apps
Today’s we are living in the age of mobile phones. Every one using mobile phones for various daily activities like chatting, sharing, shopping etc. Mobile apps have changed the way of browsing the web and doing online activities.
In the field of mobile application development, you have three options for developing the mobile apps — native mobile apps, hybrid mobile apps and cross-platform native mobile apps. Now the question is, when to use which one? In this article, I am going to discuss Native Apps, Hybrid Apps and Cross-platform Native Apps development using Xamarin.
Native Apps
Native apps development is specific to a mobile OS platform like iOS, Android or Windows. They can be developed using tools or SDKs and languages which are supported by a particular mobile OS. Like an iOS app can be build using XCode with Objective-C or Swift language, or an Android app can be build using Android Studio with Java language, or a Windows UWP or mobile app can be built using Visual Studio and C# language.
Pros of Native Apps
The main advantages of native apps development are as :
Code is optimized for the OS.
Code can run natively on the device without compiling or a web wrapper.
Code has direct access to device native APIs like Camera, Contact, Media etc.
Provides native user interface (UI).
Provides high performance.
Cons of Native Apps
The main disadvantages of native apps development are as :
They cannot run on cross platform mobile OS like iOS, Android or Windows.
There is no unified code base. You have to write code for each platform.
Hybrid Apps
This is a cross-platform mobile apps development which supports OS like iOS, Android or Windows. They can be developed by using HTML5, JavaScript and Cordova to access mobile native features. They can be deployed to a different platform by building them platform-specific SDKs, supported by a particular mobile OS.
You can also use the hybrid mobile apps development framework like Ionic, Intel XDK, Snecha, Kendo UI, PhoneGap etc.
Pros of Hybrid Apps
The main advantages of hybrid apps development are as :
Unified code base for all platform like iOS, Android or Windows.
Code run on each platform wrapped inside a native container.
Can access device native features like Camera, Contact, Media etc. using cordova plugins.
Cons of Hybrid Apps
The main disadvantages of native apps development are as :
Provides emulated user interface (UI).
Provides low performance as compared to native.
Limited access to platform specific features.
Xamarin — Cross-Platform Native Apps
Xamarin is an open-source, c# .NET based, cross-platform mobile apps development framework to develop truly native apps for iOS, Android or Windows. It builds native apps with high performance and native UI. It has access to platform-specific native APIs for each platform like iOS, Android or Windows.

Pros of Xamarin — Cross Platform Native Apps
The main advantages of cross-platform native apps development are as :
Faster cross-platform mobile apps development.
Extensive code sharing (Upto 100% code sharing with Xamarin forms) for all platform like iOS, Android or Windows.

Code can run natively on the device without compiling or a web wrapper.
Code has direct access to device native APIs like Camera, Contact, Media etc.
Provides native user interface (UI).
Provides high performance (close to native).
Cons of Xamarin — Cross Platform Native Apps
The main disadvantages of native apps development are as :
Limited dynamic language and generics support.
Limited sharing of UI code across iOS and Android.
Limited .NET API support.
What do you think?
I hope you will have better understanding among Native, Hybrid and Cross-platform hybrid apps. I would like to have feedback from my blog readers. Your valuable feedback, question, or comments about this article are always welcome.
Take our free skill tests to evaluate your skill!
In less than 5 minutes, with our skill test, you can identify your knowledge gaps and strengths.
What is the difference between Xamarin.Forms and Xamarin Native? [closed]
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago .
I am confused between Xamarin.Forms and Xamarin native.
What is the difference between the two?
So what are the technical positives and negatives of using Xamarin.Forms over Xamarin Native?
![]()
3 Answers 3
Xamarin.Forms
- Create one UI for all platforms
- Use basic components that are available on all platforms (like Buttons, Textfields, Spinners etc.)
- No need to learn all the native UI frameworks
- Fast cross platform development process
- Custom native renderers give you the ability to adjust the appearance and feeling of controls
- It’s still a new framework and still contains bugs
- Especially Windows RT is not yet stable
- It’s sometimes slower than accessing the native controls directly
- Custom native renderers have boundaries and are poorly documented
Xamarin.Android, Xamarin.iOS, Windows Phone, Windows RT
- Create one UI per platform
- Easy ability to adjust the platform specific UI features and components
- Get the maximum out of your UI
- Cross platform development process is much slower
- You need to learn all native UI frameworks
- You may result in having duplicate code (as you describe almost the same UI in three different platform specific ways)
In addition to that Xamarin says on https://xamarin.com/forms:
Which Xamarin approach is best for your app?
Xamarin.Forms is best for:
- Data entry apps
- Prototypes and proofs-of-concept
- Apps that require little platform-specific functionality
- Apps where code sharing is more important than custom UI
Xamarin.iOS & Xamarin.Android are best for:
- Apps that require specialized interactions
- Apps with highly polished design
- Apps that use many platform-specific APIs
- Apps where custom UI is more important than code sharing
![]()
Aside from the points shown in the Xamarin Website, you should also consider:
Your team’s background
Does anyone in your team have a previous experience coding natively for Android or iOS (using Java or Obj-C/Swift)? This experience is reused in native Xamarin, but they’ll have to learn another platform to code in Forms.
The same is true if they know nothing about iOS/Android but know some XAML. Sure Xamarin.Forms are different from WPF/Silverlight, but knowing XAML surely helped me using Forms.
Performance
Xamarin Forms still has some issues, such as initialization time. You should consider whether or not this will be a problem for your final user. I wouldn’t bother to wait a while for a dashboard app that I use once in a while to open, but I’d be angry if the same happened to a messaging app.
Time until delivery
Since the code sharing is bigger when using Forms, you may expect a quicker delivery time.
Complexity of your app
Considering the previous point, using Forms you may stumble on some show stopper bug (it’s a very new technology after all) that will null the time gains. Consider the complexity of your application before choosing.
Xamarin Forms vs Xamarin Native: What Fits You Best?
A good knowledge of C# can be an excellent opportunity to expand the scope of activities and start creating mobile software. In the Microsoft ecosystem, mobile app development is completed with a help of the renowned Xamarin framework. Xamarin significantly reduces the entry threshold to this IT sphere for C# programmers because it does not require knowledge of platform-specific native languages such as Objective-C/Swift for iOS or Java/Kotlin for Android.
A problem that one may face before starting to work on a project is deciding which is better: Xamarin Forms (a tool for creating cross-platform software) or Xamarin Native (the creation of separate applications for each platform with a help of Xamarin.iOS and Xamarin.Android libraries). Let us review this question in more detail.

The Difference between Xamarin Forms and Xamarin Native
First, let us review the fundamental differences between development using Xamarin.Forms and Xamarin.iOS/Xamarin.Android.
Xamarin.iOS and Xamarin.Android: What are they?
The Xamarin framework is based on the concepts and tools of the Mono open source project. The company itself was founded by the engineers who developed Mono. Thier toolset includes C# compiler, implementation environment, Common Language Runtime, and .NET libraries. The goal of Xamarin creators was to make deploying C# applications to operating systems and platforms other than desktop Windows possible. For this, the framework is equipped with various platform-specific compilers. Their outputs result in the efficient applications (their performance does not rely on the technical specs of the browser rendering engine) that have direct access to native APIs.
The actual platform functionality is implemented using Xamarin.iOS and Xamarin.Android. These are the C# object libraries that give developers access to iOS SDK and the Android SDK, respectively. They wrap the APIs, native for these mobile platforms, allowing accessing the required functions through the standard C# toolkit. In fact, in Xamarin developers employ the same action algorithms as in the case of working in native languages.
Experienced developers note that about 75-80% of the codebase can be reused between native app versions—which is very important in the backend development.
Xamarin.Forms: What are its Capabilities?
Xamarin.Forms is a complete array of instruments for the creation of cross-platform software. It works on top of the Xamarin.iOS and Xamarin.Android libraries and allows writing front ends in C# and XAML and may even share this code between implementations. Applications created with Xamarin.Forms are fully endowed with all the characteristics inherent to the best cross-platform solutions. In particular, they allow developers to save time and money (about 80-95% of the code is cross-platform, the remaining 5-20% contain commands to establish connections with native APIs).
What to Choose and When?
And now let us compare Xamarin Forms vs Xamarin Native and find out which option, and in which situation, it is better to choose.

Why Xamarin Native?
Despite the fact that Xamarin Native approach is more resource-intensive, it is still chosen in the vast majority of cases (this is a reason why it is also called the traditional approach). Let us clarify the reasons to choose this approach:
- The futureapplicationemploys a large number of interactive elements and dynamically updated content. Cross-platform applications are much less efficient in performance than native ones, so in the comparison of Xamarin Forms vs Xamarin Native performance, apps created with the latter are notably more efficient. This fact can negatively affect the user experience when it comes to creating applications with capacitive graphics, as well as, with numerous interactive elements (for example, in the case of gaming software) with Forms. Thus, you simply have no choice but to resort to the traditional approach. In this case, the entire front end for each platform will be made using native routines and the rendering speed will not give you any problems.
- There is a need to provide the smallest possibleappsize. These days, the leading mobile software developers are waging a kind of «cold war» on the size of software products they create. It is not just that «small» applications load faster. Modern people are trying to capture as many moments from their life as possible with photographs and videos. This means that if some of them for some personal reasons (for example, to provide additional privacy) do not decide to use the cloud to store media files, then most of the smartphone storage will quickly get occupied and little space is left for applications. Due to the fact that, when working with Xamarin.Forms, a fairly large amount of code has an abstract implementation, the size of the resulting application would be notably larger than «almost native» one, which can be obtained with Xamarin.iOS and Xamarin.Android. That is why Xamarin Native’s approach is more desirable, if the future application would be rather capacitive.
- TheUIof the application should feel as native as possible. When creating a user interface for a specific platform, there is no question that it should follow the platform design guidelines. The two most common mobile platforms — Android and iOS — have fundamental differences in design (for more details check another of our articles). These two mobile OS’s differ significantly in the presentation of navigation elements, action bars, toolbars, buttons, instant notifications, etc. If the created software product will use these elements, building them with Xamarin.Forms would be quite hard. Therefore, in this case, the choice in favor of Xamarin Native is obvious.
Why Xamarin.Forms?
Despite numerous advantages, the Xamarin Native approach is not always the best choice. Below we will describe in which cases using Xamarin.Forms would be more appropriate:
- Little experience of development team in the creation of the mobile software. If the decision to use Xamarin for mobile development was mainly due to the fact that the development team decided to master a new niche (which means that they do not have a reliable knowledge of working with mobile platforms), it would be better to start with Xamarin.Forms. In this case, almost 90% of the time allocated to work on a new project will not be something new and rather would look like the usual process of developing software in C#.
- Limited timeframe and budget. The money and time required to develop a mobile application are two key points that most concern the product owners. Mobile development is a process that requires serious financial and time investments. Consequently, the planning should be treated very thoughtfully. In particular, if we are talking about a project that needs to be implemented as soon as possible (for example, if an MVP is created), or if the customer has limited funds, Xamarin.Forms here will be the only possible way out of the situation (note that this does not mean that the product will be of poor quality).
- The simplicity of scaling and further maintenance. When 80-95% of the code is common between platforms to which an application would be deployed, such software is much easier to maintain and scale. This fact is an undeniable advantage for those customers who plan to further refine the functional and, in general, somehow transform their solution (again, in the case of MVP, Xamarin.Forms is an ideal choice).
All in all, on top of all the mentioned above, the Forms technology is constantly in the state of rapid development, has a well-structured documentation, and a large community that even provides readymade components.
If your solution is expected to feature standard or almost standard user interface, which is a sufficient enough option in most cases, and not to require the highest possible performance, Xamarin.Forms will be the best choice of the developmental framework.
Summary
Let us summarize the results of comparing Xamarin Forms vs Xamarin Native. When you plan to work on a project for a mobile platform, both of these solutions can be a beneficial choice. However, if you do not have the proper level of expertise in working with this framework, to create a commercial product it will be better to contract professionals. Applikey Solutions, for example. Our team has tremendous experience in developing, deploying, and maintaining the mobile solutions for a wide variety of industries. Therefore, we can easily implement your project. To get in contact with our staff, simply fill out the form on the website.