Flutter Pros and Cons 2022 - Summary and Recommendations

Rating: 4.25 / 5 Based on 16 reviews

Free product design tips
Join our newsletter and get insights that will change your product design perspective
By submitting your email you agree to receive the content requested and to LeanCode's Privacy Policy.
or follow us

Flutter is loved by many for its simple and fast development of high-quality cross-platform apps. With Flutter, you can create stunning natively compiled applications for the target platform to achieve the best performance. Let's take a closer look if Flutter is a suitable solution in every case, i.e., when developing mobile, web, and desktop applications.

  • Flutter has come a long way and, in its current state, is undoubtedly a great option for building mobile apps.
  • There are still some limitations for web and desktop apps, and each case requires an individual assessment.
  • Flutter is a revolutionary technology that makes it easy to create applications that work without any performance issues and look amazing at the same time.
  • When working with Flutter, the total costs are lower, the quality is higher, and it’s really hard to find a reason not to use it.

By reading this article, you can learn about:

  • Growing popularity of Flutter technology,
  • Flutter examples for small mobile app development,
  • Flutter examples for large mobile app development,
  • Flutter advantages for mobile apps,
  • Flutter disadvantages for mobile apps,
  • Add-to-App Flutter feature,
  • Flutter for web app development,
  • Flutter for desktop app development.

Is Flutter popular in 2022?

The mobile app market has been growing rapidly for many years now, so it’s no surprise that companies are creating new technologies to help release new projects faster and cheaper. Creating two separate mobile apps for Android and iOS is a time-consuming and expensive process. In order to simplify that, there are many frameworks that help create one app that runs on multiple platforms. 

One of the first attempts was Apache Cordova, with its release in 2009. It allowed for the creation of hybrid web applications using web technologies. After that, other options, such as Xamarin and React Native, started to pop up. In 2017, Google released to the public its own open-source framework for creating multi-platform applications called Flutter.

Since its first alpha release and throughout the stable releases, Flutter has constantly been gaining popularity and support from developers and companies of all kinds and in all regions. Well-known American Flutter users include eBay, Uber, and Google itself. On the other side of the Pacific Ocean, there are companies such as Alibaba, Tencent, and Toyota, which also appreciate this new technology. 

Is Flutter good for small mobile app development?

Flutter as a technology is very flexible, and it allows you to create a wide variety of apps - both small for startups and large ones for enterprises. It’s great for small applications since it allows for fast application development with the low-cost delivery of the final product. But let’s dive deeper into framework usability based on the smaller apps that we delivered with Flutter.

Mindy is the mindfulness app. For this project, we have chosen the Flutter framework for mobile app development and .NET Core for the server side. It allowed us to provide unique ease of experience similar to popular apps like Calm and Headspace, implement complex analytics with its own events, connect a metabase for data visualization, and set up a subscription-based business model. The project was delivered during the summer internship program, which proves it's an efficient solution.

Another example could be Quittercheck, which is a mobile and web application for the healthcare industry. It focuses on helping users quit smoking. The app was meant to be available on both iOS and Android. We used Flutter for mobile and .NET for the backend, and Flutter for Web for the web development of the admin app. Flutter made it possible to easily implement advanced payment integration with the shipping&procurement provider to fully automate the order process. Our client also wanted to onboard his own small team of engineers later, and having all frontend (both mobile and web) done in Flutter allowed the client to limit the competencies of devs required to develop the app further.

Is Flutter good for large mobile app development?

When it comes to big projects, Flutter is also a great technology since it’s a scalable solution that is proven in production by many, even in the Banking industry, which often has higher standards of used software and more complex needs. It’s trusted by banking companies such as Credit Agricole Bank Polska, ING Silesian Bank, Nubank, and Rosbank.

We interviewed senior executives from the three banks mentioned above and asked them how willing they would be to recommend this technology for banking apps. Their response was very positive, with the same score from all three banks of 9/10.

At LeanCode (as the software development company), we had the opportunity to create the mobile app “CA24 Mobile” with Flutter for Credit Agricole Bank Polska, along with other business partners. This Bank wanted to bet on more innovative and modern technology. The one that would accelerate their product and strategy development. In one year, they have developed and made available to their customers a completely new application with many features that were missing in their previous app. This was possible because of Flutter technology. Flutter also enabled the implementation of a complex design system and animations.

But it’s not the only enterprise project that we helped deliver. Another case is the MASPEX Content Box. ContentBox is a product tailored for the content creation process at Maspex - a Polish multinational food company. MASXPEX needed a tool that streamlined the communication between the marketing and brand managers and the interactive agencies, media houses, and PR agencies. We used React, .NET, and Flutter for mobile. When we were releasing the app, the entire communication was managed within more than 30 brands with its use. It proves that Flutter as technology is mature enough for any kind of production-ready project.

Flutter advantages - mobile app development

As mentioned earlier, Flutter has many advantages that make it stand out in the market:

  • It’s Google’s 2nd most popular open-source project, and with over 143k stars on Github, it’s the most popular mobile framework available - its biggest competitor, React Native, has only 104k stars. 
  • With such a big (and still growing) community and backing by Google, it’s safe to assume that Flutter is the best option when it comes to mobile app development.
  • Performance is also one of the strong points of Flutter. Even though it’s quite easy to maintain it at a high level, in cases when there are problems with optimization, you can use a “performance overlay” that allows you to check which actions are expensive to render and then easily optimize them. 
  • Flutter’s exceptional performance works great with impressive support for animations. Everything is smooth and easy to use, with a stable refresh rate of 60/120 frames per second (depending on the device). 
  • If you want to use some platform-specific features, Flutter has you covered as well - thanks to easy-to-use platform channels that allow for direct communication with the native platform, you don’t have to worry about being locked out from using native features.
  • Thanks to Flutter’s huge library of packages, well-thought APIs, and great widgets provided out of the box, the team can write new features faster and cheaper with less code.
  • There are other strong points of Flutter when it comes to the user interface as well. The way it’s constructed allows designers to create one uniform interface that will look exactly the same across all supported platforms. At the same time, Flutter doesn’t restrict you and allows for platform-specific customization if you need it.

Flutter disadvantages - mobile app development

There are, of course, some cons as well. However, despite all those things, we still believe that it’s worth giving Flutter a chance since it’s a great technology that can help you grow your project faster and easier.

  • There are size differences when you compare Flutter to native options, which may be really important if you target some specific markets like the least developed countries. The basic app for Android in Flutter is over 3 times bigger than the equivalent in Kotlin. If access to a stable network connection is limited or very expensive, it may be a deal-breaker for some people. On the other hand, growing the application reduces this size difference, so it actually depends on a particular project.
  • Web support also isn’t that great - it has great potential but isn’t going to replace web apps in technologies such as React in the foreseeable future. Especially for the web portals that rely heavily on the traffic generated by SEO and web positioning. This is still a sensible solution for adding the web interface to the existing mobile app and allowing the users to manage their service using flutter for web.
  • What is more, one of Flutter's strong points, if not handled properly, can change into a weakness - Flutter apps on iOS usually follow Material Design instead of Human Interface Guidelines. The unified interface for iOS and Android creates great savings, but if the UI/UX designers are strongly attached to the behaviors of one platform, the users from the other will find the interface less intuitive. Therefore finding a proper balance and making the UX/UI design platform agnostic is a key to successfully using that advantage
  • There is also the case of some new platform-specific features. Between adding something to the operating system and making it available in Flutter, there is a delay, and it may require native implementation on your own before the Flutter team does it. Yet, out of all cross-platform frameworks, native implementation on Flutter is definitely the easiest one, and the fact that Flutter offers this alternative solution as a default for integrating all external libraries makes it very competitive.

Is it possible to add Flutter to the existing app?

Not everyone may know that adding Flutter to an existing app is possible. The feature called add-to-app may be considered another advantage. Flutter provides great value for people who want to start a new project from scratch and for those who have an already existing app and want to migrate it. The Add-to-app feature allows you to create new features and rewrite other parts of the app in Flutter while still keeping your existing project. 

Of course, you can also rewrite your entire app at once to make it use Flutter entirely. It may be a good idea if your app isn’t that complex, but at the same time, it is outdated and needs an update. With such migration, you can easily improve the UI and fix issues that occur in the app. If you have a project and you want to verify whether the add-to-app can be used in your case, you can use our mobile app audit service, and we will check that for you.

Flutter for web app development

The current state of Flutter for the web is ambiguous. On the one hand, the Flutter team ensures it’s stable and production-ready since version 2.0 in early 2021. In reality, even though it’s becoming more and more stable with each update, there are still some problems that prove it’s not a viable solution depending on your particular requirements. It’s not a one-to-one replacement for technologies such as React, Angular, Vue, or Svelte. 

When it comes to SEO (Search Engine Optimization), it lags behind mentioned options, and it doesn’t seem like it will change anytime soon. The user experience on the web by default is not what users are used to and may result in annoyance or confusion. The loading of Flutter websites also takes a lot longer than that of a normal web application because Flutter is extremely big for a website. There is a separate version of the rendering engine that uses HTML, but its performance is worse, and the interface may be inconsistent. 

Another problem is with packages that often just don’t work correctly on the web, or they have no web implementation at all. This problem was more prevalent in the past, but it still affects some of the packages.

The best solution in most cases is to use one of the technologies that are dedicated to web support. Flutter shouldn’t be your first choice to create a website (at least not right now), but rather an option to make the features of your mobile app available via the web browser. 

Yet, if you are building a service consisting of mobile applications in Flutter, the chances are that with a little additional effort, you can get the benefits of the web experience. It would be highly recommended for B2B apps, which don’t rely on SEO services and smaller portals with access after login. 

Flutter for desktop app development

Flutter for desktop is even younger than Flutter for web. It shares some problems with it such as lack of packages and adds some more issues. One of those is a lack of support for platform views which makes it impossible to work with packages that display Google Maps or video player. Moreover, it doesn’t support working with multiple windows, which is a basic feature on a desktop.

Flutter for desktop supports Windows, macOS, and Linux so that everyone can use apps written in Flutter on their computers. Unfortunately, with such big problems, it’s not a viable solution right now, but in the future, after it grows a little bit more, Flutter for computers may be as revolutionary as it is for mobile.

Conclusions

Flutter has come a long way and, in its current state, is undoubtedly a great option for almost any app. It’s a revolutionary technology that makes it easy to create applications that work without any performance issues and look amazing at the same time. When working with Flutter, the total costs are lower, the quality is higher, and it’s really hard to find a reason not to work with it. There are a lot of interesting things that are yet to come to Flutter, and it’s interesting how the support for platforms other than mobile will improve.

If you are not sure whether Flutter will be a good solution for your future application, we will be happy to advise you. Contact us via a short form.

Free product design tips
Join our newsletter and get insights that will change your product design perspective
By submitting your email you agree to receive the content requested and to LeanCode's Privacy Policy.
or follow us
Rate this article

4.25 / 5 Based on 16 reviews

Read more

Matej Rešetár, during Flutter Warsaw #16, talked about using Flutter for the web and explained to avoid the most common issues. Find out more about making mobile apps run on the web with Flutter by watching the video and reading participants' questions.
Slide presented during Flutter Waraw #16
Big announcement! LeanCode is open-sourcing Patrol – a new Flutter-first UI testing framework that revolutionizes the way we test our Flutter apps. Patrol is written in Dart, which makes it familiar to all Flutter developers. Check out what it can do so far.
Patrol - Flutter-first UI Testing Framework
A new version of iOS 16 and Android 13 came out. Let’s have a quick look at what it means for maintainers of existing apps that want to support the newest operating systems fully and for developers of those mobile apps. We summed up breaking changes and new features.
Android 13 and iOS 16 operating systems