An Introduction to Flutter: Android & iOS Apps


Flutter refers to a portable UI toolkit, or better referred to as a comprehensive app software development kit (SDK), integrated with widgets and tools created by Google.

It allows you to create beautiful, cross-platform mobile applications with native performance, all from one codebase. It is a dynamic, cross-platform framework, launched by Google in 2018 with all integrated widgets and tools, resulting in faster app development. You can also check out another article for how to install flutter in different operating systems.

In the beginning, Flutter was known as “Sky” and was supported only on the Android platform. As Flutter used the Dart programming language that had been around for a long time but was used only inside Google. Flutter was publicly announced at the Dart Developer Summit in 2015, at which time, Flutter was called “Sky”. During the key of Google Developer Days in Shanghai, Google announced the Flutter Release Preview 2, the last major release before Flutter 1.0. On December 4, 2018, Flutter 1.0 was released at the Flatter Live event, reflecting the first “stable” version of the framework. On December 11, 2019, Flutter 1.12 was released at the Flutter Interactive event.

Flutter is one of the most dynamically developed products for programmers today. This is the main reason that the huge community Google managed to gather in a very short period of time. Despite being a new technology, Flutter is stable and influential in its performance due to its active community. Flutter’s cross-platform mobile app development became popular over the past two years and, as statistics suggest, Flutter gained more than 25,000 stars within 1 year of its launch in 2018.

Flutter cross-platform app development is based on the DART programming language. DART is an object-oriented programming language supported by a set of modern UI features. Flirt Dart runs in a virtual machine with a just-in-time executive engine. Flutter provides reactive views without the need for any JavaScript bridge to communicate with the platform.

The pulsing framework is built heavily around the idea of ​​flutter. In flutter, widgets are used not only for the views of your app, but for the entire screen and even the app. Due to the widget experience, the UI and UX of mobile applications built using Flutter are impressive.

Flutter supports various IDEs and text editors which are DartPad, IntelliJ IDEA, Android Studio, Visual Studio Code (VSCode), Eclipse, Atom (dart-atom), Emacs (dart-mode), Vim. If you are looking for some flutter tutorials, you can find flutter examples at HERE.

Why Flutter?

Cross-Platform apps:

Developers just have to write the same code base for both applications (both Android and iOS platforms). So they can quickly improve application quality, design and speed. Flutter can also be extended to other platforms in the future.

Native Performance:

Flutter is the only mobile SDK that provides reactive views without the need for a JavaScript bridge. It uses DART with a programming language that compiles binary code directly. Compiling directly into binary code is the root cause that Flutter achieves high performance like other native languages ​​like Objective-C, Swift, Java and Kotlin. Flutter lets you access SDK, the native platform of Android and iOS, using Kotlin of your Java / Oblique / Swift code.

Fast Development:

Flutter provides a feature to the user or developer known as hot reload. Now, this feature helps the developer to change the source code even when running the application. They provide the ability to quickly change the source code without requiring any restart of the application and also without any loss.

UI Design:

The user can use the widget in two different ways to design or design a specific language. Such as the use of content design widgets helps provide them with the same Google language while the use of Cupertino widgets actually helps copy the same as Apple’s iOS designing interface.

Fast App Testing:

Testing of code is limited when developers use the same code in two different platforms because the developer only needs to run the test for another app. This reduces the workload of quality assurance experts as they need to test only one code used in two different platforms.

Easy To Understand:

As Flutter is based on Google’s in-house language – “dart”, which is a one-source and general-purpose language, developers of any level of knowledge may find this language comparatively very simple and easy to use. Huh. If you have some hands-on experience with Java or JavaScript, learning dart programming is not so difficult.


Libraries & Support Are Not As Rich As Native App Development Frameworks : 

Flutter being a young language it is supported by a new community. However, being built by Google, and having impressive support from Google, the flutter tends to be lower than the original application development for community support. When developers employ Flutter for mobile app development, it is not always possible to find the desired functionality and in this case, developers need to create custom functionality to build the app the way they want to build. This part often takes time and increases the overall time of development, resulting in the cost of developing the app through Flutter.

Flutter Relies On Google:

Although Flutter is open-source, being young and having a lace resource for app development makes it entirely dependent on Google for every project and without Google’s support of Flutter as a cross-platform app development technology The growth is hard to remember.

Flutter Application Size : 

Mobile app solutions built using Flutter are more than app solutions built using the native app development framework. With a larger APK size, larger space is required in storage and this may affect the popularity of the app solution. However, the Flutter community is working towards reducing the size of applications that have been developed using the Flutter App Development Tool Kit.

About Dart

Dart is a language developed by Google and is used to create mobile, desktop, server, and web applications. DART follows object-oriented programming concepts such as loops, classes, functions, methods, operators, and some exceptions such as throws and catches. The Dart framework uses the Skia C ++ engine which has all protocols, compositions and channels that make the application look like the original. Dart has a large repository of software packages that allow you to enhance the capabilities of your application.

DART is compiled “ahead of time” (AOT) in native code for many platforms. This allows Flutter to communicate with the platform without having to pass through a JavaScript bridge that switches a context. It also compiles native code which in turn improves app startup time. Another unique aspect of DART is that it can also use just-in-time or JIT compilation. JIT compilation with Flutter improves development tasks provides the ability to refresh the UI during development without the need for an entirely new build.

DART is a programming language that is easy to learn, with a familiar syntax. It is a programming language optimized for building user interfaces, such as spread operators for expansion collections, and customizing the UI for collections for each platform. Using DART we can write code using a flexible type system with rich static analysis and powerful, configurable tooling. We can also run backend code supporting our app, which is written using a single programming language with dart.

The Dart team created the Dartpad in early 2015, to provide an easy way to start using Dartpad. It is a fully online editor from which users can experiment with DART application programming interfaces (APIs), and run DART code. It provides syntax highlighting, code analysis, code completion, documentation and HTML and CSS editing. As reported by The State of Octovers, Dit based on data from users of its site by GitHub, a client-optimized language developed by Google for mobile, desktop, backend and web applications, grew 532% from 2018 Have experienced 2019.

Project Structure

lib: This is the first and main file that has been created. This is the file that contains all our code. It is also referred to as Dart’s package manager.

Pubspec.yml: It stores a complete list of packages that are necessary and important to use the application to run. One thing you should remember is that you are not allowed to use pub directly, but instead, you should use a command as “flutter pub as <package_name>”.

test: This file is for testing files or applications. You can run them through a run command.

iOS/ & android: This code is unique which means that it uses according to your OS (operating system). All icons and settings are automatically adjusted such as location and access to Bluetooth etc.

There are other files also, but the most important one is the veneer file because it contains the main.dart file which contains all our code. You can say that main.dart is the entry point for executing applications just like C ++. The entry point is the main () function.

Leave a Reply