Flutter pros and cons : 2020 review

Flutter Pros and Cons : 2020 review (Updated 2021)

flutterlogo

What is flutter?

Flutter is a cross platform mobile developing SDK. Using which, one can develop a high performance app for both iOS and Android. In flutter everything is a widget. Once code base for both platforms and hence the app looks the same irrespective of device. The official language is Dart which in my opinion is combination of Javascript and C++.

If you like to play around with Dart, use dartpad

In flutter, UI design is achieved by code only. But if you come from a native worlds of app, then this will help you design the UI

Who should use flutter?

In my opinion, You need to be familiar with native programming tools like Android Studio and XCode which use Java / Kotlin & Swift languages respectively. Javascript developers especially the react family will have a quick learning curve.

whoShouldUseflutter

My word of advice is, don't simply dive into flutter... you will be lost in one of the widgets

Lets get into Pros and cons

I'm gonna be discussing the pros and cons alternatively because I don't want to leave this discussion on a high note (pros) or on a low note (cons)

 

1. Reusable Widgets!

Let's say if you have a text input with certain style, don't recreate it every time you need it, just simply define a class and implement an instance every time you need it. A huge performance benefit!

widgets

Con

If you are coming from a nodeJS family you can recall the phrase "callback hell" and in flutter, its a widget hell

2. Flutter Packages

Flutter is backed by google and they have one of their own apps (google analytics) designed with it

Google analytics - Android

Google analytics - iOS

 

There are vast number of packages available for any functionality you need. I personally used the camera permission and since I've developed Android Apps natively, it was easy to implement the permission. The packages available here comes with a nice rating widget. This will help you decide how well the package is maintained and its rank.

Con

If packages become obsolete or if the dev stops maintaining it, you are scre**d.

3. Hot Reloading & Hot Restart

One of my favorites! A big Pro for flutter. In native world you may have to wait up to a minute to load the changes but with flutter, it's barely 1 second. But some times, you need to hot restart instead of hot reload. If you are a beginner, this is confusing. Let me resolve it with an example.

Hot reload : For style changes, widget positioning etc

Hot Restart : New widgets, widgets that load values from constants or variables declared etc.

Con

No cons here!

4. Native vs Material

The widgets for example TextField which resembles a TextView (Android) and if you are thinking, they are the same.. you would be wrong. Flutter does a really good job simulating native elements. There are a ton of widgets to try it out in flutter

Con

Take it slow or get overwhelmed.

5. 3rd Party SDK

If you have a native android or iOS SDK, implementation needs a workaround. Check this article on how to implement it.

 

Con

And some times it simply not possible because of the hardware SDK. Something like a bluetooth card-reader.

6. Quick Turnaround

Dart is very easy language to understand if you already know Javascript / Python. Using a proper IDE (I use VS Code) with flutter extensions installed will make life easier. You can develop apps really quickly and the beauty is its for both platforms (ios & Android).

7. Easy Maintenance

Any app that is well maintained required lot of updates / upgrades. Also, for SEO, the app needs to be updated frequently if you want it to rank higher. Flutter is really cost effective since its really single code base.

 

Con

Sometimes you have to make platform specific adjustments. For example, to allow camera you need to edit "info.plist" for IOS & "manifest.xml" for Android. Building notifications is a hassle especially for IOS. But there are lot of resources you can rely on to get the functionality

About Siva_G

Web designer/developer. I love troubleshooting and creating beautiful templates.