Flutter | The Comming future

flutter Nov 01, 2019

Introduction to flutter

Google Flutter has only been available since 2017 but it is making waves because it takes a different approach to cross-platform mobile app development. Google is currently working on the successor to its Android operating system called Fuchsia and it is writing it using Flutter. So, Flutter is very important to Google.

You write user interfaces using Google Flutter user interface widgets, not the native iOS or Android UI widgets shipped with their retrospective SDKs. A Flutter app made using Flutter Widgets will look exactly the same on iOS as it does on Android because it will use the same Widgets from the same library. Flutter comes with many widgets, including those that mimic Google’s Material look & feel and those that mimic Apples iOS look & feel.

Google Flutter uses its own high-performance rendering engine to draw these widgets and they have been designed to work on all mobile platforms. Also, these widgets are extendable.

You write the application code in Google’s Dart language and it is compiled ahead-of-time into machine-code for native-like performance, thus offering a performance advantage over React Native.

There is no bridge between the user interface and the application code.

The only downside that is currently obvious is that developers will have to learn Dart, rather than reuse their existing JavaScript expertise


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 Android and iOS devices. Developers write code in a single codebase that works on both platforms.

Why Flutter

Dart is a general-purpose programming language which was created by Google in 2011. Like Java and C#, it has a similar syntax to ‘C’.

Unlike conventional languages, Dart has been optimized to be deployed to run on a variety of platforms:

Within a Web Browser

Dart provides an SDK, which provides command-line tools to transpile Dart source code into JavaScript. This has been developed so efficiently that the resulting transpiled JavaScript is more efficient than its hand-coded equivalent!

You can try out Dart in your web browser by Navigating to https://dartpad.dartlang.org/. You can write your own code or run the sample code. See the ‘Sunflower’ sample below.

As Interpreted Application

The Dart SDK includes a Virtual Machine. A virtual machine is a sandbox in which code may run without directly communicating with the underlying operating system. This enables Dart code to be invoked from the command-line, using the ‘dart’ command-line tool in the SDK. This code is compiled on demand just-in-time as it runs.

Using Dart in this way is a great way to write server-side applications and it performs at a similar level to Java / .Net.

Hot Reloading / Hot Replacing

If the developer is running the Dart application in the Dart virtual machine from the command-line (interpreted), the JIT compiler can reload the code when the underlying source code changes, often while preserving the application state (variables) whenever possible. So, the developer can write and run the code at almost the same time. This makes application development very fast indeed. Yet at the end of the development process, the code can be com piled using the ahead-of-time compiler and deployed as a native application.

Flutter Development (Debug Mode)

When you are developing a Flutter Application, most of the time you run it in Debug Mode and the code is JIT compiled & interpreted. This mode is known as ‘check’ or ‘slow’ mode. Under this mode, the assertion functions, including all debugging information, service extensions, and debugging aids such as “observatory,” are enabled. This mode is optimized for rapid development and operation, but not for execution speed, package size, or deployment.

Once your app is written you can build it to run in Release Mode as a native application and it will perform much better.

As Native Application

Dart code can be compiled ahead-of-time so that the code may be deployed as machine-code.

Flutter was mostly written using Dart and runs natively. This makes Flutter fast, as well as customizable (as the Flutter widgets were written in Dart).

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

Neeraj Dana

Experienced Software Engineer with a demonstrated history of working in the information technology and services industry. Skilled in Angular, React, React-Native, Vue js, Machine Learning