Xamarin lets you build native apps for Android, iOS, and macOS using .NET code and platform-specific user interfaces.
With Xamarin Native you can expect to save about 30% to 40% of your development time as you can share business logic, data and presentation layer between your Android and iOS code, however this still leaves all of the UI being platform dependent, which is a major disadvantage compared to other cross-platform frameworks like React Native or Flutter. With Xamarin Forms (or the upcoming MAUI update) you can share the UI layer as well, but we experienced that it was hard to customize to reach a pixel-perfect design.
Xamarin is backed by Microsoft and while the community behind Xamarin is sizable, developers are hard to come by from our experience.
Why is this technology on hold?
As we have more confidence and experience in React Native and believe that there is more value to found in Flutter moving forward, we no longer recommend to use Xamarin for new mobile projects.
Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.
Shared codebase for multiple platforms
Deploy to mobile, web and desktop with minimal effort
Complete control over UI: use the provided widgets from the Material or Cupertino theme, or create your own widgets. Have a single style over platforms, or create a native-looking UI for each platform.
Developer delight: fast development cycle (<1s Hot Reload), advanced IDE (Android Studio, IntelliJ or VS Code)
React Native is like React, but it uses native components instead of web components as building blocks. So to understand the basic structure of a React Native app, you need to understand some of the basic React concepts, like JSX, components, state, and props. If you already know React, you still need to learn some React Native specific stuff, like the native components.