Xamarin Native includes Android/iOS/Windows platforms, which use C# code as back-end, and provide an easy and effective way to develop mobile applications by using Visual Studio or Xamarin Studio. Initially Xamarin was not free but nowadays the developers will use it for free and develop native applications with C# back-end code, using Xamarin platform. Later, Xamarin.Forms comes into the picture and it is very useful to develop mobile applications on different platforms. Here, the developer will write the code only once and it should be executable over the different mobile platforms including Android / iOS/ Windows.
Xamarin Native is fully developed and stable, so it will provide the user the same experience as the native platform, where Xamarin.Forms is not fully developed and it has some limitations over Xamarin Native. I have concluded some points based on my understanding and experience on Xamarin Native and Xamarin.Forms and the points are shown below.
- UI Lagging
We are using XAML to create UI in Xamarin.Forms, so Xamarin.Forms will compile and convert the code , which is platform specific.
- Third Part Library support
Xamarin Native environment has a variety of UI and third party components libraries, both iOS and Android. There are certain third-party libraries which are used, especially UI components, that make life easier on your target platform (including some that we’ve created internally). Unfortunately, using these libraries on Xamarin is non-trivial. Even though Xamarin offers bindings for some of the more popular libraries, some developers would need to provide bindings for themselves and this is not as easy as Xamarin makes it seem.
- Cache Management
Xamarin Native has a stronger mechanism to clear the cache. In Android, we have certain events/ methods , which clears the data when the device is running out of memory. In iOS, the garbage collector will clear the data when it is not in use.
- Non-Portable .NET Libraries
Some of the third party component libraries will not support Xamarin.Forms apps, as it only supports native environments.
- As per my understanding, Xamarin.Forms apps are not good for large quantities of data and it is also not effective for frequent data updates.
- Native environment is best for the apps which have an interaction with native behavior such as calls, Bluetooth, Wi-Fi etc.
- Prefer the Xamarin Native environment, where we require more custom UI elements like viewpager, expandable list etc.