Advantages and disadvantages of using Flutter

Moonax - your digital partner
8 min readJun 16, 2020
Flutter advantages and disadvantages

Flutter became the most requested cross-platform technology on Stack Overflow. The reason is a single code base. It is easier to maintain: artifacts are centralized, there is no duplication of logic and edits of the same bugs for each platform. And people need less to support and create it — there is no need to maintain two native developers.

Benefits of using Flutter

Flutter has a number of advantages over its competitors. These advantages are inherent in the programming language and a set of development tools that allow Flutter to solve problems and disadvantages that other technologies cannot cope with.

Pros of Flutter:

  1. Dart
  2. Growing popularity
  3. High performance
  4. Mild learning curve
  5. One UI design
  6. Money and time economy
  7. Powerful community

Let’s now consider the advantages of Flutter:

Dart

It is no secret that programming languages ​​often experience problems bringing to common standards, and different versions of these languages ​​differ in functionality. Moreover, many developers are guided in these differences with great difficulty. But the Dart language was conceived from the very beginning as a tool for creating client apps, optimized and tailored for user interface development.

The benefits of using this language are:

  • there are no competing standards;
  • no imposition of language tools adopted by the developer community;
  • there are no oddities inherent in many programming languages;
  • no heap of completely incompatible design patterns;
  • finally, there is no need to have another tool-disaster among the standard functionality and tools.

Dart has a clean and incredibly powerful syntax that sets ideal conditions for creating a clear architecture and design of the application, not to mention ensuring coherence of programmers working together, durability, ease of maintenance, bringing to common standards, and much more than most other tools for cross-platform development. For those who have already worked with such popular languages ​​as C #, Java, and TypeScript, it’s easy to switch to Dart and start using it right away.

Growing Popularity

Flutter has outperformed React Native in both GitHub and Stack Overflow. Here you get a powerful supply of resources for training, more qualified developers who are ready to work on your app. And all this in the conditions of the rapid growth of the technology itself, which is rapidly developing and does not lose its relevance longer than those technologies that for many years basically remained at their previous level (for example, React Native).

Popularity of Flutter

This graph clearly shows how Flutter suddenly appeared out of nowhere and immediately burst forward. It leadership is likely to continue, it may turn out that you will not find developers who are ready to support cross-platform apps using other technologies. And although it may take a long time, such a prospect is quite real, because such metamorphoses have already occurred more than once in the community of software developers.

High Performance

Flutter apps are compiled into machine code using the graphics and visualization engine built into C/C++, so applications are very fast and high-performance. They are capable of stably delivering 60 frames per second on most devices and up to 120 frames per second on devices supporting Flutter.

Using Flutter gives a more noticeable increase in productivity compared to other cross-platform technologies. This was a decisive factor for the transition to Flutter many mobile app developers. It is worth emphasizing that we are talking about cross-platform (or platform-independent) technologies, where Flutter has a clear advantage over its competitors in performance and visualization while achieving such superiority is unrealistic when creating native apps.

Mild Learning Curve

Another reason for the rapid growth of Flutter’s popularity among developers (in addition to high productivity) was the availability of detailed documentation and a large number of examples. And this is very important for developers who want to learn a new platform, a set of tools, or a language.

And it is especially important for experienced programmers who already have an eye on them, and they can easily find errors in the language design or in the toolkit itself. They quickly become disillusioned with the new technology, when in the process of studying it is discovered that it has poor documentation or examples of solving basic problems contradict each other.

Flutter is valued for its clear documentation and friendly community of developers, bringing together experts and novices who are ready to help and share their experience, providing excellent working examples of their design models and development templates. A welcoming atmosphere reigns here, facilitating the easy development of technologies by a wide range of users.

One UI design

Flutter helps create great UI designs for Android and iOS mobile apps.

Using a single code base, you can develop only one user interface design and use it for both platforms. This will save you time and cost of the designer work. The Flutter cross-platform app usually follows the principles of Material Design, with minor changes for different platforms (which Flutter usually processes on its own) or makes the entire user interface look individual, with elements based on the best solutions taken from iOS and Android.

UI Design on Flutter

Saving Money and Time

Crisis conditions will help Flutter: more and more companies will see this technology as an opportunity to quickly go online and expand their influence on electronic platforms. Flutter’s MVP applications can actually be created in 2–3 months, and full-fledged development will cost on average 30% cheaper than creating two native applications. So the framework will save two important resources — time and money.

The project is different for the project: somewhere Flutter can save 15% of the budget, and somewhere up to 50%. Another important advantage of technology is that its use reduces the time-to-market indicator. Delivery of new features in production is faster, which means that the product receives a significant head start for development and can bring more money.

Powerful Community

Another major benefit of the SDK is the rapidly growing and vibrant community. Google and company fans provide excellent support for developers and users. Flutter has structured documentation and a large number of real cases and examples of the implementation of the main tasks of mobile development. You can find all the necessary information and share experience on the resource https://flutter.dev/community.

Shortcomings of using Flutter

There are no uncompromising solutions, and Flutter is no exception. Here are a few reasons why Flutter might not be the best tool for a particular app.

Cons of Flutter:

  1. Flutter Developers Flaw
  2. A limited set of tools and libraries
  3. Massive file size
  4. Weak iOS features support
  5. Lack of password manager support

Let’s now consider the disadvantages of Flutter:

Flutter Developers Flaw

It may seem that everything is perfect in working with the framework. A significant difficulty is to assemble a development team. Any business project will inevitably face these risks for objective reasons:

  • The labor market for this technology is only being formed. At the time of writing this article, no more than 200 resumes were posted on work sites for the Flutter keyword for all CIS countries, while Android developers’ offers in Ukraine alone were 7–10 thousand.
  • Most job seekers are new to Flutter. This is because there is simply nowhere to get real experience — there are few projects on the framework.

Gathering a strong team of more than 5 developers on a Flutter project is a difficult task that takes time. One of our banking clients at the development stage had such a problem when switching to an inhouse. As a result, the team was assembled, but it was worth a lot of effort. So for some time, you have to put up with a distributed team.

Limited Set of Tools and Libraries

Flutter is a new cross-platform app development framework. Many Flutter functions are in alpha and beta testing and may not always work properly. In addition, you can’t get the necessary functions in the current library in some cases, because the platform is still being finalized. Flutter will take some time to create the necessary tools, expand functionality and develop the community.

Massive File Size

Modern users do not want to sacrifice their favorite song or game in favor of the next application, so one of the main tasks of the developer is to create the smallest application size. In order to minimize code size, programmers go to different tricks: they do not use animations, reduce images, and use a minimum of packages and libraries.

The framework shows poor results. 4 MB Flutter app, on other platforms it has a weight of 500Kb. Perhaps Google will fix this shortcoming, but until it takes effect.

Weak iOS features support

The fact that Flutter is a Google product makes the quality of support for iOS applications worse. If most of the SDK functions on Android work correctly, then there are problems with iOS. For example, when photographing on Apple devices, the application deletes all EXIF ​​data. Because of this, the photo is displayed with the wrong orientation, without location, without date, without the correct gamma. Today, iOS special features (VoiceOver, Guided Access, Captioning, and Audio Description) are practically not implemented.

Lack of Password Manager Support

Using your own, not native widgets has its drawbacks. For example, there are problems using certain Android and iOS features. Flutter applications currently have problems with autocomplete input fields. This is especially noticeable if you need to implement password extraction from built-in or third-party password managers. This issue is described in detail (https://github.com/flutter/flutter/issues/13015) but has not yet been resolved.

What applications can be developed on Flutter?

In short, any. Now Flutter is widely used to create apps in Alibaba, Yandex, Airbnb, Uber, and other large companies.

Using Flutter, you can create applications for:

  • retail (loyalty programs, catalog, online store);
  • banks and fintech (work with small business);
  • suppliers and franchisees;
  • large business (contact centers, courier control, organization of internal processes).

Originally published at sannacode.com

--

--

Moonax - your digital partner

We’re a full-cycle web and mobile development company with Agile approach and expertise that helps to solve your business’s challenges.