The purpose of this chapter is to give the reader a quick introduction to Flutter before installing it and starting to use it.
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.
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.
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.
The code you write in Flutter runs natively so it flies!
Flutter is free and Open Source.
Fuschsia is Google’s next Operating System for mobile devices. All of the apps for Fuschsia are being developed by Google in Flutter.
Google Flutter is open source and it comprises of several repositories hosted on GitHub here:
- Main repository.
- Sample code repository.
- This repository contains the source code for plugins developed by the core Flutter team to enable access to platform-specific APIs.
- The Flutter runtime, written in C++.
- Flutter Intellij
- The Flutter plugin for IntelliJ.
- Flutter Website
- io code.
The Flutter SDK contains all the elements you need to perform Flutter development:
We covered the Dart platform in the previous chapter.
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
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
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.
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.
- 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
How to Change the Channel
Once You Have Changed Channel You Should Do the Following
Update the Flutter software.