Xamarin allows us to deliver native Android and iOS applications based on the very same shared C# codebase, using the same IDE, and the same APIs. Xamarin wraps the Android and the iOS APIs with its own API written in C#. In addition, most likely that some of the Xamarin’s API is implemented directly and separately on each one of the platforms. Those who are not well familiar with the buggy native applications development for iOS and Android will be impressed. However, the reality is different. The pace in which the iOS and the Android platforms evolve is so fast that we will always have some sort of a gap between the Xamarin’s capabilities and those capabilities we have when developing in Java/Kotlin for Android or ObjectiveC/Swift for iOS. In addition, having the Xamarin’s layer on top of the Java layer (in case of Android) and the ObjectiveC/Swift layer (in case of iOS) most likely adds more bugs to those that already exist. Given the growing popularity of the successful hybrid applications option I doubt if Xamarin has any future in the long run (when dealing with cross platform mobile applications development).
Xamarin (Bright?) Future