What I like About Developing Apps with Flutter

logo_500
Adamo Software
  • Date Published
  • Categories Blog
  • Reading Time 5-Minute Read

Flutter has received a lot of compliments due to its flexible, simple, open-source, compared to Android. Let’s check out Flutter’s capabilities when it comes to developing apps.

The first version of Flutter, called Sky, was revealed at the 2015 Dart developer summit. From that moment, Flutter has received a lot of compliments due to its flexible, simple, open-source, compared to Android. In this article, I will review Flutter in developing apps.

What Is Flutter?

Flutter is a mobile UI framework by Google, which is used to develop cross-platform mobile apps in a short time. It allows you to build beautiful and high-qualified native apps on both Android and iOS from a single codebase. Flutter is a free, open-source framework.

Google has its SDK called Android and releasing Flutter is considered as Google’s strategy that pushes the mobile app development industry to a new level.

What Is Dart?

Most of Flutter’s advantages come from Dart – a programming language created by Google. Compared to other languages, Dart proves its outstanding strengths in building an app:

  • Easy to learn: Dart is quite similar to Java and JavaScript but added very few new concepts and syntaxes. Dart has a proper inheritance system like Java, a static typing system including generics like Scala. Moreover, Dart also uses mixins to support a kind of multiple class inheritance.
  • Consistent: Dart brings consistency in extending an existing programming language with new features. It is created in a minimalist way with the ecosystem (tools, libraries…) and is smaller than JavaScript or native Android/iOS.
  • Multiple purposes: Mobile app development is not the only purpose of Dart. You can use it to write the backend. Dart has transpilers to use in a browser. AngularDart is an example of Dart’s support for the Angular framework.

However, Dart has no functional APIs. Developers who get used to Java 8’s stream API may struggle with it.

Why Flutter?

Flutter vs. Java and Swift

If you want to develop an app that runs on multiple platforms, Flutter is the best one. In general, developers need to write an app several times, once in Java for the Android version and once in Swift for the iOS version. This process is a waste of time and effort for developers. However, Flutter’s apps run on engine render Flutter (written by C++) and Flutter Framework (written by Dart). All are packaged by the SDK to be ready to run on every platform.  When building a Flutter app, a new engine will run Flutter’s codes and they are enough for Flutter to work on Android and iOS.

Flutter vs. Other Native Cross-Platform Frameworks

It’s undeniable that there are several solutions for cross-platform apps such as Ionic, Cordova, React Native or Xamarin. However, Flutter proves its outstanding strengths over others. Flutter doesn’t translate TypeScript (C#) code into iOS/Android elements. It works as a game engine which layouts widgets and renders them to a canvas. Thus, Flutter is faster and less lagging than hybrid frameworks.

What I like About Flutter

  • It has a lot of built-in components: In Flutter, you can find a collection of widgets for layout, styling, animations and UI components that follow Material Design and Cupertino (iOS-flavor). It’s easy to build an app without finding any poorly-maintained widgets from a third party.
  • Fast and smooth: It’s common to see other hybrid apps with rough navigation sliding, lagging page transition, and incorrect text style. Compared to them, the Flutter app is faster, smoother and pixel-perfect. You can feel changes in scrolling, buttons, tabs and more.
  • Future choice: Google continuously posts blog articles and videos about Flutter to promote it. Google is ready to bring Flutter in developing many apps, especially Google AdWords. Maybe Flutter will replace Android in the future so it’s profitable for software companies that work on it.
  • Good tooling: Flutter’s built-in tooling is great. The intuitive CLI of Flutter is integrated with IntelliJ (Android Studio) and Visual Studio Code.
  • Open-Source: Flutter is available on GitHub.
  • Building apps is faster: The hot reload function of Flutter allows you to test, build UI, add features and fix faster.
  • Access SDK native’s features: Flutter allows you to reuse Java, Swift and ObJc code to access SDK native’s features on iOS and Android.

What I Don’t Like About Flutter

One of the biggest problems with Flutter is the size of the apps. They are quite large because these apps are packaged with an engine. A Flutter app can be up to 46MB when installing. Meanwhile, an app is generally 6 – 7MB on Android. If Google can handle these problems, Flutter will be a competitor capable of beating Android.

How I Started Learning Flutter

Learning how to use Flutter is not a hard task if you have a method. Before learning Flutter, I researched Dart in Dart.dev to get used to Dart’s syntax and concepts. Then, I accessed Flutter.dev to build an app.

This year, Google published the Flutter version 1.0. This framework will be a big step towards the release of the Fuchsia operating system in the future. With the first successes of Groupon, Hamilton, Alibaba, Tencent, etc., we hope that Flutter will reduce stress for developers in building high-qualified cross-platform apps in the future.