Introduction
Flutter is an open-source UI software development kit created by Google. It is used to develop fully functioning applications for Android, iOS, Windows, Linux, macOS, Google Fuchsia and the web from a single codebase.
History
The first version of Flutter was known as Sky and ran on android operating system. This version was publicly unveiled at the 2015 Dart developer summit. In 2018, Google announced Flutter 1.0, denoting the first stable version of the framework. On March 3, 2021, Google released Flutter 2 during an online Flutter Engage event. This major update brought official support for web-based applications with a new Canvas Kit renderer and web specific widgets, early-access desktop application support for Windows, macOS, and Linux. This release also utilized Dart 2.0 that featured sound null-safety. On September 8th, 2021, Dart 2.14 and Flutter 2.5 were released by Google. The update brought improvements to the Android full-screen mode and the latest version of Google's Material Design called Material You. Dart received two new updates, standardizing lint conditions and marking support for Apple Silicon as stable.
The current stable channel of Flutter is 3.3.0 and the Dart version is 2.18.0
Dart platform
Flutter apps are written in the Dart language and make use of many of the language's more advanced features.
While writing and debugging an application, Flutter runs in the Dart virtual machine (In computing, a virtual machine (VM) is the virtualization/emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer) which features a just-in-time (In computing, just-in-time (JIT) compilation (also dynamic translation or run-time compilations) is a way of executing computer code that involves compilation during execution of a program (at run time) rather than before execution. This may consist of source code translation but is more commonly bytecode translation to machine code, which is then executed directly execution engine). This allows for fast compilation times as well as "hot reload", with which modifications to source files can be injected into a running application. Flutter extends this further with support for stateful hot reload, where in most cases changes to source code are reflected immediately in the running app without requiring a restart or any loss of state. For better performance, release versions of Flutter apps on all platforms use ahead-of-time (AOT) compilation (In computer science, ahead-of-time compilation (AOT compilation) is the act of compiling an (often) higher-level programming language into an (often) lower-level language before execution of a program, usually at build-time, to reduce the amount of work needed to be performed at run time).
Widgets (Everything is a widget in Flutter)
The Flutter framework contains two sets of widgets that conform to specific design languages: Material Design widgets implement Google's design language of the same name, and Cupertino widgets implement Apple's iOS Human interface guidelines. Flutter uses a variety of widgets to deliver a fully functioning application. These widgets are Flutter's framework architecture. Flutter's Widget Catalog provides a full explanation and API on the framework.
IDE support
Flutter maintains official support for the following popular Integrated Development Environment (IDEs) and editors via plugins: IntelliJ IDEA, Android Studio and Visual Studio Code.
Conclusion
Even though Flutter is still young, it is the most popular cross-platform framework to date. With the advantages it offers including hot reload, improved developer productivity, multi-platform support and its fast-growing community and the fact that it is backed by Google the most powerful company in the world, the future of Flutter is undoubtedly promising.