By P.Saran(21USC020)
Introduction
Flutter is an open-source
UI software development kit created by Google. It is used to develop cross
platform applications from a single codebase for any web browser, Fuchsia, Android,
iOS, Linux, macOS, and Windows. First described in 2015, Flutter was released
in May 2017.
History
The first version of
Flutter was known as "Sky" and ran on the Android operating
system. It was unveiled at the 2015 Dart developer summit with the stated
intent of being able to render consistently at 120 frames per second. During
the keynote of Google Developer Days in Shanghai in September 2018, Google
announced Flutter Release Preview 2, the last major release before Flutter 1.0.
On December 4th, 2018, Flutter 1.0 was released at the Flutter Live event,
denoting the first stable version of the framework. On December 11, 2019,
Flutter 1.12 was released at the Flutter Interactive event.
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.
On May 12, 2022, Google announced the release of
Flutter 3 and Dart 2.17. This update expanded the total number of platforms
supported to six, including stable support for Linux and macOS on both Intel
and Apple Silicon processors.
On August 30, 2022, Flutter 3.3 was announced. This
release featured Objective-C and Swift interop and an early preview of a new
rendering engine called "Impeller" which aims to reduce stutter
caused by shader compilation.
On January 25, 2023, Flutter 3.7 was announced.
Framework architecture
The major components of
Flutter include:
· Dart
platform
· Flutter
engine
· Foundation
library
· Design-specific
widgets
· Flutter
Development Tools (DevTools)
Dart language
Flutter apps are written in the Dart language and make use of many of the language's more advanced features.
For better performance, release versions of Flutter
apps on all platforms use ahead-of-time (AOT) compilation, except for on the
Web, where code is transpiled to JavaScript. Flutter inherits Dart's Pub
package manager and software repository, which allows users to publish and use
custom packages as well as Flutter-specific plugins.
Flutter Engine
Flutter's engine, written
primarily in C++, provides low-level rendering support using either Google's
Skia graphics library or the custom "Impeller" graphics layer.[17]
Additionally, it interfaces with platform-specific SDKs such as those provided
by Android and iOS to implement accessibility, file and network I/O, native plugin
support, and more.
Foundation library
The Foundation library,
written in Dart, provides basic classes and functions that are used to
construct applications using Flutter, such as APIs to communicate with the
engine.
Design-specific widgets
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 allows the developer to use either set of widgets on either
platform, i.e. even Cupertino widgets on Android. Third party packages can be
used to automatically adjust the app's design to the current operating system.
IDE support
Flutter maintains official support for the following
IDEs and editors via plugins:
· Android
Studio
· IntelliJ IDEA
· Visual
Studio Code
· Emacs
· Atoms
Other IDEs can be used with community-supported
plugins, or by using Flutter tools from the command line. There are several
tools emerging in the market that have started to utilize official Flutter IDE
Framework and offer customized Graphical use interface builders.
Widgets
The basic component in a
Flutter program is a "widget", which can in turn consist of
other widgets. A widget describes the logic, interaction, and design of a UI
element with an implementation similar to React. Unlike other cross-platform
toolkits such as React Native and Xamarin which draw widgets using native
platform components, Flutter renders widgets itself on a per-pixel basis. There
are two fundamental types of widgets: stateless and stateful. Stateless widgets
only update if their inputs change, making them very efficient, while stateful
widgets can call the setState()
method to update an internal state and redraw. Although widgets are the primary
method of constructing Flutter applications, they can also be bypassed in favor
of directly drawing on a canvas. This feature has been occasionally used to
implement game engines in Flutter.
Useful
ReplyDeletegood
ReplyDeleteExcellent
ReplyDeleteGood
ReplyDeleteGood
ReplyDeleteGood
ReplyDeleteGood
ReplyDelete