{"id":1508,"date":"2022-02-01T07:23:59","date_gmt":"2022-02-01T07:23:59","guid":{"rendered":"https:\/\/blog.amt.in\/?p=1508"},"modified":"2022-02-01T07:23:59","modified_gmt":"2022-02-01T07:23:59","slug":"introduction-to-flutter","status":"publish","type":"post","link":"https:\/\/blog.amt.in\/index.php\/2022\/02\/01\/introduction-to-flutter\/","title":{"rendered":"Introduction to Flutter"},"content":{"rendered":"<p>Flutter\u00c2\u00a0is an\u00c2\u00a0open-source\u00c2\u00a0mobile application development SDK\u00c2\u00a0created by\u00c2\u00a0Google. It is used to develop applications for\u00c2\u00a0Android\u00c2\u00a0and\u00c2\u00a0iOS, as well as being the primary method of creating applications for\u00c2\u00a0Google Fuchsia.<\/p>\n<p>The first version of Flutter was known as &#8220;Sky&#8221; and ran on the\u00c2\u00a0Android\u00c2\u00a0operating system. It was unveiled at the 2015\u00c2\u00a0Dart\u00c2\u00a0developer summit, with the stated intent of being able to\u00c2\u00a0render\u00c2\u00a0consistently at 120\u00c2\u00a0frames per second.\u00c2\u00a0During the keynote of Google Developer Days in Shanghai, Google announced Flutter Release Preview 2 which is the last big release before Flutter 1.0.\u00c2\u00a0On December 4th, 2018, Flutter 1.0 was released at the Flutter Live event, denoting the first &#8220;stable&#8221; version of the Framework.<\/p>\n<p>The major components of Flutter include:<\/p>\n<ul>\n<li>Dart\u00c2\u00a0platform<\/li>\n<li>Flutter engine<\/li>\n<li>Foundation library<\/li>\n<li>Design-specific widgets<\/li>\n<\/ul>\n<p><span id=\"Dart_platform\" class=\"mw-headline\">Dart platform:<\/span><\/p>\n<p>Flutter apps are written in the\u00c2\u00a0Dart\u00c2\u00a0language and make use of many of the language&#8217;s more advanced features.<\/p>\n<p>On Android, and on\u00c2\u00a0Windows,\u00c2\u00a0macOS\u00c2\u00a0and\u00c2\u00a0Linux\u00c2\u00a0via the semi-official\u00c2\u00a0Flutter Desktop Embedding\u00c2\u00a0project, Flutter runs in the Dart virtual machine which features a\u00c2\u00a0just-in-time\u00c2\u00a0execution engine. Due to\u00c2\u00a0App Store\u00c2\u00a0restrictions on dynamic code execution, Flutter apps use\u00c2\u00a0ahead-of-time (AOT) compilation\u00c2\u00a0on iOS.<\/p>\n<p>A notable feature of the Dart platform is its support for &#8220;hot reload&#8221; where modifications to source files can be injected into a running application. Flutter extends this with support for\u00c2\u00a0stateful\u00c2\u00a0hot reload, where in most cases changes to source code can be reflected immediately in the running app without requiring a restart or any loss of\u00c2\u00a0state.\u00c2\u00a0This feature as implemented in Flutter has received widespread praise.<\/p>\n<p><span id=\"Flutter_engine\" class=\"mw-headline\">Flutter engine:<\/span><\/p>\n<p>Flutter&#8217;s engine, written primarily in\u00c2\u00a0C++, provides low-level\u00c2\u00a0rendering\u00c2\u00a0support using Google&#8217;s\u00c2\u00a0Skia\u00c2\u00a0graphics library. Additionally, it interfaces with\u00c2\u00a0platform-specific\u00c2\u00a0SDKs\u00c2\u00a0such as those provided by\u00c2\u00a0Android\u00c2\u00a0and\u00c2\u00a0iOS.<\/p>\n<p><span id=\"Foundation_library\" class=\"mw-headline\">Foundation library:<\/span><\/p>\n<p>The Foundation library, written in\u00c2\u00a0Dart, provides basic classes and functions which are used to construct applications using Flutter, such as\u00c2\u00a0APIs\u00c2\u00a0to communicate with the engine.<\/p>\n<p><span id=\"Widgets\" class=\"mw-headline\">Widgets:<\/span><\/p>\n<p>UI design\u00c2\u00a0in Flutter typically involves assembling and\/or creating various widgets. A widget in Flutter represents an\u00c2\u00a0immutable\u00c2\u00a0description of part of the user interface; all graphics, including text, shapes, and animations are created using widgets. More complex widgets can be created by combining many simpler ones.<\/p>\n<p>However, the use of widgets is not strictly required to build Flutter apps. An alternative option is to use the Foundation library&#8217;s methods directly, interfacing with &#8220;canvas&#8221; commands to draw shapes, text, and imagery directly to the screen. This property of Flutter has been utilized in a few frameworks, such as the open-source Flame game engine.<\/p>\n<p><span id=\"Design-specific_widgets\" class=\"mw-headline\">Design-specific widgets:<\/span><\/p>\n<p>The Flutter framework contains two sets of\u00c2\u00a0widgets\u00c2\u00a0which conform to specific design languages.\u00c2\u00a0Material Design\u00c2\u00a0widgets implement Google&#8217;s design language of the same name, and\u00c2\u00a0Cupertino\u00c2\u00a0widgets imitate Apple&#8217;s\u00c2\u00a0iOS\u00c2\u00a0design.<\/p>\n<p>The above is a basic about Flutter. Watch this space for more updates on the latest trends in Technology<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Flutter\u00c2\u00a0is an\u00c2\u00a0open-source\u00c2\u00a0mobile application development SDK\u00c2\u00a0created<\/p>\n","protected":false},"author":1,"featured_media":1510,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[285,284,7],"tags":[286,287,18],"class_list":["post-1508","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-flutter","category-open-source-mobile-application","category-techtrends","tag-flutter","tag-open-source-mobile-application","tag-technology"],"_links":{"self":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts\/1508","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/comments?post=1508"}],"version-history":[{"count":1,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts\/1508\/revisions"}],"predecessor-version":[{"id":1509,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/posts\/1508\/revisions\/1509"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/media\/1510"}],"wp:attachment":[{"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/media?parent=1508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/categories?post=1508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.amt.in\/index.php\/wp-json\/wp\/v2\/tags?post=1508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}