Google introduced a user interface framework Flutter 2 , which marked the transformation of the project from a framework for developing mobile applications into a universal framework for creating any type of software, including desktop and web applications.
Flutter is considered as an alternative to React Native and allows you to release applications from a single codebase for different platforms, including iOS, Android, Windows, macOS and Linux, as well as applications to run in browsers. Mobile applications previously written in Flutter 1, after switching to Flutter 2, can be adapted to work on the desktop and the Web without rewriting the code.
The main part of Flutter code is implemented in Dart language, and the runtime engine for executing applications written in C ++. When developing applications, in addition to the Flutter native Dart language, you can use the Dart Foreign Function interface to call C / C ++ code. High execution performance is achieved by compiling applications to machine code for target platforms. At the same time, the program does not need to be recompiled after each change – Dart provides a hot reload mode that allows you to make changes to a running application and immediately evaluate the result.
Flutter 2 claims full support for building Web applications, suitable for production deployments. Three main scenarios for using Flutter for the Web are mentioned: developing standalone web applications (PWA, Progressive Web Apps), creating single page web applications (SPA, Single page apps), and converting mobile apps to web apps. Among the features of development tools for the Web are called the use of acceleration mechanisms for rendering 2D and 3D graphics, flexible layout of elements on the screen and the CanvasKit rendering engine compiled to WebAssembly.
Desktop Application Support is in beta and will stabilized this year in one of the following issues. Support for development using Flutter has been announced by Canonical, Microsoft and Toyota. Canonical has chosen Flutter as the main framework for its applications and is also using Flutter to develop a new installer for Ubuntu. Microsoft adapted Flutter for foldable multi-screen devices such as Surface Duo . Toyota plans to use Flutter for in-car infotainment systems. Flutter is also used to build a custom shell for Google’s microkernel operating system Fuchsia.