Flutter is Google's UI toolkit for building beautiful, natively compiled mobile, web, desktop, and embedded applications from a single codebase. It is an open-source technology available for developers and designers free of charge. It was announced in 2015 at the Dart Developer Summit. Originally, it enabled the development of Android mobile operating system applications, supporting content rendering at up to 120 frames per second. The first stable version appeared in 2017.
Xamarin, on the other hand, is an older technology than Flutter. It has been around since 2011 and became part of Microsoft in 2016. The current form of Xamarin was created by Mono developers as a solution for building cross-platform applications. Development in Xamarin was based on the same language, allowing code to be shared across all supported platforms.
Initially, each platform's user interface (UI) was not reusable. The solution appeared in 2014: Xamarin.Forms was born. Xamarin.Forms delivered an abstraction layer above the various platforms' UI concepts. Thanks to this, developers were able to reuse most of their code across all platforms. In 2016, Microsoft bought it out and integrated it into the NET platforms.
Flutter and Xamarin are both cross-platform mobile application development frameworks, so what makes them different?
The two biggest differences between Xamarin and Flutter are the languages used and how the interface is rendered. In Xamarin, the UI is implemented using XAML with C# support. In Flutter, logic and the entire UI are handled by a modern, powerful language—Dart. Also, the way the UI is rendered is significantly different. However, when comparing the two, Flutter services offer clear advantages regarding UI performance and rendering, which are handled by the Skia rendering engine in real-time. In contrast, Xamarin translates a tree of native controls, leading to slower performance.