Introduction
The purpose of this chapter is to give the reader a quick introduction to Flutter before installing it and starting to use it.
What is Flutter?
Flutter is not a language (like JavaScript, for example). Flutter uses Dart for its language.
Flutter is Google’s mobile SDK / UI framework that enables developers to build native apps that run on a wide variety of devices. Developers write code in a single codebase that works on both platforms.
High Productivity
Flutter was written for high productivity, to get apps out fast.
- You can change your code and hot reload the changes, without any kind of delay.
- Flutter includes the UI Widgets you need.
- Flutter works with most IDEs.
High Quality
The included Flutter UI Widgets work seamlessly and conventionally with the target platform. Scrolling, navigation, icons and fonts match the target system.
- When you write an Android app with the Flutter Widgets it looks like a normal Android app.
- When you write an iOS app with the Flutter Widgets, it looks like a normal iOS app.
High Performance
The code you write in Flutter runs natively so it flies!
It is Free and Open
Flutter is free and Open Source.
Fuschsia
Fuschsia is Google’s next Operating System for mobile devices. All of the apps for Fuschsia are being developed by Google in Flutter.
Flutter Source Code
Google Flutter is open source and it comprises of several repositories hosted on GitHub here:
https://github.com/flutter/flutter
- Flutter
- Main repository.
- Samples
- Sample code repository.
- Plugins
- This repository contains the source code for plugins developed by the core Flutter team to enable access to platform-specific APIs.
- Engine
- The Flutter runtime, written in C++.
- Flutter Intellij
- The Flutter plugin for IntelliJ.
- Flutter Website
- io code.
Flutter SDK
The Flutter SDK contains all the elements you need to perform Flutter development:
Dart Platform
We covered the Dart platform in the previous chapter.
Flutter Engine
The Flutter Engine is the runtime for on which Flutter applications run. It provides graphic rendering support, as well as providing an interface (through the Flutter core libraries) to the Android or iOS SDK layer below.
It was written in C++ and is on github here: https://github.com/flutter/engine
Foundation Library
The Foundation library, written in Dart, provides basic classes and functions which are used to construct applications using Flutter, such as APIs to communicate with the engine.
It was written in Dart and is on github here: https://github.com/flutter/flutter/tree/master/packages/flutter/lib/src/foundation
Flutter Release Process
When developing day-to-day with Flutter, Google’s engineers work in the ‘dev’ branch.
Every month, the ‘dev’ branch is rolled into the ‘beta’ branch.
Every quarter, the ‘beta’ branch is rolled into the ‘stable’ branch.
https://github.com/flutter/flutter/wiki/Release-process
Flutter Channels
When working with Flutter, you can decide on what version of Flutter you wish to work on. Most people work on the ‘stable’ channel, which provides the developer with the ‘stable’ version of Flutter.
However, you have the option of working with more of a 'bleeding edge' version of the software.
Available Channels
- master - bleeding edge
- dev - latest, fully tested
- beta - most stable dev build of the month
- stable - most stable dev build of the quarter
How to View What Channel You Are Setup On
flutter channel
How to Change the Channel
flutter channel
Once You Have Changed Channel You Should Do the Following
Update the Flutter software.
flutter upgrade