Flutter

Mobile Development with Flutter YES or NO?

Development of mobile applications is becoming more popular by the day. The number of users using handheld devices continues to grow, and in terms of marketing, it’s usually better to install your software products on users’ devices, where customers will see your logo every day, rather than offering your product on a website that can be easily forgotten.

Since mobile development is a very important aspect of software development and is likely to be in the years to come, it is advisable to routinely revise the tools and means of mobile development in order to be able to develop software in an efficient manner.

About Flutter

Flutter is a software development Framework which uses the programming language Dart and is backed by Google. It is used to develop Apps for multiple platforms simultaneously and delivers native Apps for each of the supported frameworks. According to the official Flutter website, the supported platforms include:

  • Android API 19 & above
  • iOS iOS 9 & above
  • Linux Debian 10 & above
  • macOS El Capitan & above
  • Web Chrome 84 & above
  • Web Firefox 72.0 & above
  • Web Safari on El Capitan & above
  • Web Edge 1.2.0 & above
  • Windows Windows 7 & above

The above list shows that with Flutter you have a single code base and can support almost all devices on the market. With the web version, you can also deploy your software product to all other future platforms.

Many believe that Flutter is a framework used mainly by hobby developers to create small and simple products. But the truth is that companies like Google itself, the Alibaba Group, Ebay, BMW, etc. are using Flutter for a number of their development projects. The list is getting longer by the day.
You can find a detailed list of companies using Flutter on the official Flutter website.
Now let’s dive into the pros and cons of developing with Flutter.

Pros

1. Dart

In order to take advantage of the endless possibilities of the Flutter framework, you first need to familiarize yourself with the Dart programming language.
Dart was first released in 2009 and as Lars Bak, one of the software engineers of the Dart team, has explained, the basic goals for its development was to create a language that is:

  • Structured yet flexible
  • Familiar and natural
  • High performance

I believe that all the above goals have been accomplished, especially when it was adapted for the Flutter framework.
The syntax of Flutter is closely inspired by JavaScript. Therefore, the process of adapting it is not going to be a difficult task if you are familiar with JavaScript.
Here is an example of a dart code snippet from my latest Flutter app, Tyle.

//deselect all other options if the question is not multiple choice
updateAnswers(Answer selectedAnswer){
setState(() {
if(!widget.question.is_multiple_choice){
for(Answer everySingleAnswer in widget.question.answers){
if(everySingleAnswer == selectedAnswer){
everySingleAnswer.selected = true;
} else {
everySingleAnswer.selected = false;
}
}
} else {
selectedAnswer.selected = !selectedAnswer.selected;
}
});
}

2. It’s Efficient

With the Flutter framework, you are able to develop software products for most popular platforms with only one code base. This is an advantage that many startups would greatly appreciate. In this regard, the development time especially of the MVP would be reduced manifold.
Another advantage in this regard is that the codebase of the platforms can be separated at will. So, if there is a need to further develop the app for native platforms, the native output can be used and development can continue without having to start from scratch.

3. Community

Nowadays it is almost impossible to create software products efficiently without the use of libraries. So it does make a huge difference whether there are a greater number of users for a framework or not. The more developers there are, the greater the number of reusable components. Since the number of Flutter developers is increasing significantly, there are many libraries that can be imported and used. This makes life much easier.

Cons

1. It is new

Flutter has not been around for that long. The first version of Flutter was released in May 2017 and the first stable web version was released in 2021. So, although the community is growing and many companies are starting to use Flutter, there are still some drawbacks to using Flutter, as the community is not yet as large as many of its competitors. React Native, for example, has been around since March 2015.

2. Dart

Don’t be surprised to find Dart in both the “Pros” and “Cons” sections. That’s just the way it is when a framework uses a programming language that hasn’t been on the market that long. While Dart is a great language, it’s still not as well-known as a programming language like JavaScript, which has been around for more than two decades. React Native, a direct competitor to Flutter, uses JavaScript. For fast learners, it’s no problem to learn Dart in a couple of weeks, but learning a new programming language still does takes some time.

3. Model-View-Controller

Flutter does not always strictly implement the MVC pattern that many software developers are used to. There will be a little more spaghetti code when using Flutter, but this development structure makes development a little faster. Remember that it is important to document and comment your code to make it more readable.

Conclusion

Flutter is a programming language that I definitely like. The possibilities of Flutter are endless. Although there are some drawbacks to using it, I think it’s one of the best options you have for creating software products and apps efficiently. Since learning Flutter, I’ve been more concerned with app ideas rather than the actual technical feasibility. This helps me continue to innovate instead of thinking about technical obstacles I might face when developing apps that need to run on multiple platforms. All in all, It’s a beautiful framework. My advice is to give it a try. You will not regret the time you spend learning it.

Leave a Reply