Introduction to Google Flutter

Google Flutter -

Introduction to Google Flutter

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