Skip to content

xscotophilic/learning-flutter

Repository files navigation

dart

  • Dart is a client-optimized language for fast apps on any platform.

  • Dart as a language, is very robust. Having been created by Google, its primary purpose was to leverage C-based Object Oriented Programming languages like C#, and Java. As it is also a general-purpose programming language, it compiles fast and is concise.


Flutter

  • Flutter is an open-source UI software development kit created by Google. It is used to develop cross platform applications for Android, iOS, Linux, Mac, Windows, Google Fuchsia, and the web from a single codebase.

  • Flutter is an open-source mobile SDK (Software Development Kit). An SDK or devkit functions in much the same way, providing a set of tools, libraries, relevant documentation, code samples, processes, and or guides that allow developers to create software applications on a specific platform. SDK: Tools to compile your code to native machine code + develop with ease.

  • It is used to develop cross platform applications from a single codebase. A codebase is a source code repository or a set of repositories that share a common root, Here we do not need to write different code for IOS and ANDROID to run a same App.

  • In flutter, App's UI is a Widget Tree! The widget tree is how you create your UI; you position widgets within each other to build simple and complex layouts. A smart approach is to attempt and maintain the widget tree as shallow as possible.

Flutter and Dart

Flutter and Dart

Architecture of Flutter

Flutter is designed as an extensible, layered system. It exists as a series of independent libraries that each depend on the underlying layer. No layer has privileged access to the layer below, and every part of the framework level is designed to be optional and replaceable.

archdiagram

To the underlying operating system, Flutter applications are packaged in the same way as any other native application.

  1. A platform-specific embedder provides an entrypoint; coordinates with the underlying operating system for access to services like rendering surfaces, accessibility, and input; and manages the message event loop. The embedder is written in a language that is appropriate for the platform: currently Java and C++ for Android, Objective-C/Objective-C++ for iOS and macOS, and C++ for Windows and Linux. Using the embedder, Flutter code can be integrated into an existing application as a module, or the code may be the entire content of the application. Flutter includes a number of embedders for common target platforms, but other embedders also exist.

  2. At the core of Flutter is the Flutter engine, which is mostly written in C++ and supports the primitives necessary to support all Flutter applications. The engine is responsible for rasterizing composited scenes whenever a new frame needs to be painted. It provides the low-level implementation of Flutter’s core API. The engine is exposed to the Flutter framework through dart:ui, which wraps the underlying C++ code in Dart classes.

  3. Typically, developers interact with Flutter through the Flutter framework, which provides a modern, reactive framework written in the Dart language. It includes a rich set of platform, layout, and foundational libraries, composed of a series of layers.

by Google.

How is Flutter/ Dart "transformed" to a Native App?

transformed

Image source: https://academind.com/

Note: Because I utilised commercial font-families, I won't be able to upload it here. Please modify/remove font families from pubspec.yaml and Theme in Main.dart. Simply remove the font family lines.


If you enjoy my work, You can help me with donation on

Buy Me A Coffee or patreon

Thankyou!

About

You do what you love, and that's the only reason why I continue to study.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages