Welcome to the Future of multiplatform development, Flutter.

Here, you will learn about everything Flutter just in glance. If you love what you see, feel free to start your Flutter journey on Flutter Official right away.

Table of Contents

Basics

  • Flutter is an open-source mobile application development framework created by Google
  • It allows developers to build natively compiled apps for mobile, web, and desktop using a single codebase
  • Flutter uses the Dart programming language

Getting Started

  • Install the Flutter SDK and set up your development environment by following the instructions here
  • Create a new Flutter project using the flutter create command
  • Run the app using the flutter run command
  • Use hot reload to quickly iterate on your code changes during development

The Flutter Framework

  • Flutter apps are built using a combination of the Dart programming language and the Flutter framework
  • The Flutter framework contains a rich set of pre-designed widgets and tools for building beautiful and responsive user interfaces
  • The Dart language offers robust support for asynchronous programming, making it easy to write efficient and performant code

Building a User Interface

  • In Flutter, the user interface of an app is built using widgets
  • Widgets are small, reusable pieces of code that define a structural element (such as a button or a text field) or a stylistic element (such as a font or a color scheme)
  • Flutter includes a large collection of pre-designed widgets that you can use to build your app's user interface, or you can create your own custom widgets
  • To build a user interface, you create a widget tree where each widget is a parent or a child of another widget
  • The root widget of the tree is typically a Scaffold widget, which provides a basic structure for the app, including a AppBar, a drawer, and a body
  • The body of the Scaffold typically contains a SingleChildScrollView widget, which allows the content of the app to scroll if it is too large to fit on the screen

Handling User Input

  • In Flutter, you can handle user input using text fields and buttons
  • A text field is a UI element that allows the user to type text into the app
  • To create a text field, use the TextField widget and specify the type of input (such as text, email, or password), the decoration (such as a label or a hint), and the controller (which handles the text input)
  • A button is a UI element that allows the user to trigger an action when tapped
  • To create a button, use the RaisedButton or FlatButton widget and specify the label and the onPressed callback function that is executed when the button is tapped

Working with Data

  • In Flutter, you can manage and manipulate data using collections and models
  • Collections are used to store and manage groups of related data items, such as a list of users or a list of products
  • Flutter includes several built-in collection classes, such as List, Set, and Map, which allow you to store and access data in various ways
  • Models are used to define the structure and behavior of data items, such as a user or a product