blog posts


Flutter : Why did I choose Flutter to start programming?

Over the years, flutter with many frameworks with the slogan “Multi-Platform” and “Write once and get multiple outputs” is there. I, who for many years built Android applications using Java. I was looking for an excellent way to develop faster and good performance. Still, every time I began utilizing these kinds of frameworks (like React Native or Xamarin, etc.). And I realized that their slogans are just words and do not work.

I was pessimistic about all these frameworks and somehow lost hope. Many people even asked me about Flutter. I said that this is one like the others and it’s useless. The exciting thing is that everyone says that Flutter is fantastic and a masterpiece, and there are many other definitions.

But when I told them, do you have a sample? The answer was no (just hearing Flutter is good). And Because I had the same experience and praise from React Native. I used to say that these guys did a Hello World project with a filter. They got the atmosphere, and they sound great!

Until one day, when I was sole and had free while. I told him to go and see this Flutter, which everyone says is excellent, whether he can follow his slogans or not! In my experience, I never judge a framework by developing a simple application until I write a proper account with it. I can not comment on its advantages and disadvantages.

The first project with Flutter – attractive

In short, I know the power of Flutter in the implementation of the user interface is hidden. I go to implement the most complex and beautiful design. During a performance like this, It was as if I had found my lost half after years.

Everyone who has background in mobile programming (IOS and Android), visiting the overhead method, will discover how hard and difficult it is to execute such a plan. But it is impressive to understand that understanding and enforcing this procedure with a filter for me, who was comprehending at the time as it, took only two days.

Television project with filter – a heavy challenge in 3 weeks

After this project, I realized that Flutter is very different from the previous famous frameworks and creates a revolution in developing mobile and web applications and even desktops.

So I started doing more in-depth research to see how it worked. I was researching when I received an exciting job offer from Telubion and became a team member there. It was attractive because they had 14 million installations and the Alexa 3 rank in Iran, which is a great work experience.

There I made a suggestion to the Technical Director (CTO) that we use Flutter, and the benefits my advice was good, and in just three weeks, I rewrote the entire program with Flutter and finally published it.

This project was so hard and overwheming for me. On the other hand, it was precarious because of no program in Iran with 14 million active installations with a fledgling framework like Flutter.

What is a Flutter?


Why is Flutter a tool for UI development?

Unlike other popular mobile application development frameworks, Flutter does not convert your UI implementation code to Native platform code. Instead, it implements all UI components from scratch and is powered directly by a 2D graphics engine. 

Skia’s name is Famous. But other parts of the application, such as working with platform APIs (such as Bluetooth, camera, or file manager), are fully implemented with native infrastructure. For this reason, Google introduces Flutter as a Ui framework.

In my experience, the rendering speed of sophisticated user interfaces and animations was even faster than native on Android. Flutter is because the GPU and the Skia graphics engine perform considerable rendering operations.

What is Skia?

Skip is a 2D Open Source Library that runs on various platforms with different hardware and software. Skip works like a Graphics Engine. Interestingly, applications such as Google Chrome, Firefox, Android, Flutter, Chrome Os, and many other platforms use Skia to run animations and render.

What is the language of Dart?

Dart is a language under development by Google to develop client-side software, but you can also build back-end web and desktop applications. Dart is a fast Garbage Collection compiler object-orient language with a C-like writing style. This language can compile in both machine language and JavaScript.

Dart language has unique capabilities that were very attractive to me. For example, you can compile it in two ways JIT (JUST IN TIME) and AOT (Ahead Of Time) directly in machine language!

  • JIT: means run time. You use this compiler when developing and testing the app. It works to create a virtual machine and compile your code in machine language at runtime. One of the capabilities is that changes to the project are taken into account after a shift by saving the code. You can also easily debug. The software execution speed in jit is much lower than AOT due to compile runtime. For this cause, it is only qualified for the software development and testing stage.
  • AOT: You should use this type of compilation when your software development and testing phase are complete, and you want to publish your application or back-end code. This compiler reviews your code and then translates it directly into machine language in one phase. For this reason, after compiling by the AOT method, the speed of starting and running your software will increase dramatically.

Flutter learning path

To learn Flutter, you must follow this path:

  1. Introduction to Computer Basics: Concepts such as how the compiler works, or more specific topics such as the operating system, CPU, Memory, and work.
  2. Mastering the concepts of objectivism
  3. Dart Tongue
  4. Familiarity with how the Flutter framework works
  5. Familiarity with the concepts of State Management and Widget
  6. Gain expertise in various areas of the Flutter framework, such as software architectures, state management, plugins, and more