Xamarin is a very well known cross-platform for mobile app development, because it is flexible. It can be used to develop native Android, iOS, MAC and Windows application at the same time. Xamarin makes it possible to use .NET or C# to produce these applications. That means a single shared C# codebase is enough to develop mobile apps for all of the platform. You can also use other Microsoft features (for example LINQ) with it.
What is the benefit of using Xamarin? A developer must be informed about the new methodologies, lifecycles or SDKs of each platform. So it is quite difficult to become expert on all of them. But with it, the developer just needs to know one framework, .NET, to work on different platforms.
For example, a developer has worked with .NET for years. Now that developer construct application for iOS and Android, which is a very common scenario.. The developer may not have time to learn Objective-C and Java for developing the apps. In this case using Xamarin can solve many issues. It will produce both mobile applications at the same time. The developer doesn’t need two separate languages or framework to do same functions in iOS and Android. It can be a time and cost saver.
With Xamarin, we can develop apps for different platforms with the same codebase. That means there is no need to implement the same logic for different platforms. So, less code is written. Less code written means less errors and less errors means more applications can be developed in a shorter time frame,
Xamarin also never hides the uniqueness of a platform. If and Android app is developed, the User will never feel it has been developed in non-Android platform. The same holds for other platforms. It maintains the special features of each platform. It never forces an implement anything which does not exist in that platform which may create confusion for the Users.
In summation, if there is a time and budget constraint when multiple apps need to be developed, Xamarin is a useful solution.