Introduction To Flutter.io: Overview

What Is Flutter.io?

Flutter is a powerful framework designed and maintained by Google. I want to create some mobile apps with this framework and document the process of these apps. This is a new framework, released in May 2017, and is written in C, C++, Dart, and uses the Skia Graphics Engine. It’s still in Beta, v0.10.2.

What Is C, C++, Dart, and the Skia Graphics Engine?

C is a middle level programming language that sits just above the machine level code. C programs are incredibly portable so it’s one of the most popular languages around. C is also a procedural programming language which means that it does not support classes and objects. C forms the core of the C++ programming language, and is essentially what allows your higher-level programs to run on your computer.

C++ is both a procedural langauge, and an object oriented programming language so unlike C, it’s primary use is to support classes and objects. C++ is fast, efficient, and is powerful for creating GUI and 3D graphics applications.

Dart is another object oriented programming language somewhat similar to Java. Dart is highly portable and Dart mobile apps can run natively on iOS and android.

Skia is an open source 2D graphics library sponsored and maintained by Google.

Benefits Of Using Flutter

  • Quick and Efficient Prototyping
  • Develop for Android and iOS from one codebase
  • Significantly less code needed than developing purely for Android
  • Hot reload with Android Studio’s AVD manager on virtual devices to see immediate changes on your app
  • Beautiful design for your app by using Material Design and Cupertino
  • Easily integrate with Google’s other software products like Cloud Platform, Firebase, and more

A Real World Flutter Example: Chat App

Here is a real world example of a guy who built and launched Ven Chat: a successful chat app with Flutter in less than a week. As of the making of the video, the app has over 500,000 users. In the video, Ven Chat creator, Faisal Abid, walks through the libraries and strategies that he used in development.

Faisal is an experienced Google Developer and Android Developer. He also wrote Flutter for Android Developers on Flutter.io, so again he really has the chops to build these apps efficiently.

Don’t expect the same timeline or quality of application for your own app especially if you’re relatively new to building complex apps, but nevertheless this is a great example of what can be accomplished with Flutter.

He claims that writing the app with Flutter vs. Android resulted in having to write and maintain roughly 60% less code.

Some key Flutter Widgets that he used are:

Some additional libraries that he used are:

Other popular apps written with Flutter include Alibaba, Google Ads, and App Tree.

| Here is the showcase of notable apps written with Flutter |

Using The AVD Manager In Android Studio Without An Intel Processor

An issue that I ran into while setting up Android Studio for my Flutter application was enabling the hardware acceleration feature which is required to test your app on virtual devices.

Testing your app on virtual devices in Android Studio requires your computer to use an Intel processor in order to use hardware acceleration through the virtual device by default. There’s a way around this if you have an AMD processor in your computer. For those of you trying to setup a virtual device with an AMD processor, here are the requirements:

  • Recommended — AMD Ryzen processors
  • Android Studio 3.2 Beta+ — download
  • Android Emulator v27.3.8+ — download through Android Studio SDK Manager
  • X86 Android Virtual Device — Create Android Virtual Device
  • Windows 10 April 2018 Update
  • Enable “Windows Hypervisor Platform” through Windows Features — just type in “Windows Features” in your Windows search bar

If you have any further problems getting an AVD setup on Android Studio with an AMD processor go check out this page.

Originally published at austinhoward.tech on November 16, 2018.

Software Engineer & Writer.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store