Our clients often ask us about Flutter, wanting to know the following:
- What is Flutter?
- What business value Flutter brings?
- Is Flutter a good fit for my business?
- Should I decide on Flutter app development?
Flutter became very appealing to the product teams for its simple and fast development of high-quality cross-platform apps. Yet, choosing the right technology for your project is a strategic decision from the business perspective, and you need to understand what are Flutter advantages and disadvantages for your business before you give it a go.
In this article, you will learn:
- What is Flutter, and why is it becoming so popular?
- What are the good examples of startups in Flutter?
- What are the examples of enterprise applications in Flutter?
- Flutter advantages and disadvantages for mobile apps development
- What is the Add-to-App feature, and if I can use that for adding Flutter to my native app?
- Is Flutter suitable for web development?
- Is Flutter suitable for desktop app development?
Let’s start with the basics. What is Flutter?
The whole magic comes from the fact that with Flutter, you can create stunning and fast native applications for iOS, Android, Web, PC, Mac, Linux, and others from one code base. Yes, you’ve got it right. Flutter Developer writes a single line of code, and it compiles (i.e., transforms) to the native application for the given operating system, which we call a platform.
Thanks to that, you no longer need separate iOS and Android teams to build a mobile app for the two most popular mobile platforms. You just need Flutter Developer(s) who will do the job for all platforms - cross platform development. Thanks to that, you can ensure the following:
- A great performance because the final apps are native; they have the native speed, quality, and look-and-feel;
- A great design as Flutter helps you to take full control over the interface, building pixel-perfect applications exactly how the designers wanted them to be; Flutter UIs are built with an imperative, object-oriented Dart programming language;
- The total costs of ownership are lower; if you want to build one simple feature, then instead of 1x iOS and 1x Android developer, you only need a 1x Flutter developer.
All of those benefits can be achieved for the huge majority of cases, with some notable exceptions. So let’s examine if Flutter is a suitable solution in every case, i.e., when developing mobile, web, and desktop applications.
The evolution of cross-platform technologies
Flutter is not the first of its kind. 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 were many frameworks that help create cross platform applications - ones that run on multiple platforms.
One of the first attempts was Apache Cordova, with its release in 2009. It allowed for the creation of hybrid web apps 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, the Flutter framework has constantly gained popularity and support from developers and companies of all kinds and regions. Well-known American Flutter users include eBay, Uber, and Google itself. On the other side of the Pacific Ocean are companies such as Alibaba, Tencent, and Toyota, which also appreciate this new technology.
Flutter has also been growing in terms of popularity among developers and, in 2021, has surpassed React Native, its closes competitor. The main advantages of Flutter over React Native and the reason why this has happened are the ease of adding native features if needed (e.g., when a native SDK is necessary) and the huge and constantly growing Flutter community.
Is Flutter suitable for startups?
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 Flutter apps that we delivered.
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. Flutter allowed us to provide unique ease of experience similar to popular apps like Calm and Headspace and set up a subscription-based business model. The latter was possible due to the ease of integration with the native SKDs for in-app payments, both for Apple Pay and Google Pay solutions. What is more, the initial part of this project was delivered during the summer internship program, which proves it's an efficient solution.
Another example of ease of development is Welliba, the application for measuring employees' mental health. This German scaleup based in Hamburg delivers a complex HR system, which allows for self-tests and personal monitoring of its users. Flutter proved to be very efficient in building a Design System based on a complex set of forms and inputs which are reusable to conduct various tests and questionnaires. This project is also an example where junior in-house developers on the client’s side were gaining an experience in Flutter while delivering new features assisted by LeanCode’s team.
Is Flutter good for enterprise application development?
When it comes to enterprise 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 Bank ÅšlÄ…ski, 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 and cross platform mobile apps. Their response was very positive, with the same score from all three banks of 9/10.
At LeanCode (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 POSme. POSme is a product tailored for managing marketing-related processes among the company’s salesforce. MASXPEX, the biggest privately owned company in Poland, needed a tool to streamline communication between the sales representative and marketing department. Flutter proved to be very efficient for building a rapid MVP and for enabling a quick time-to-market for further extensions.
Take a look at our White Paper: Flutter for Enterprise, where we summarized best practices for building enterprise applications in Flutter.
Flutter advantages - mobile app development
As mentioned earlier, Flutter has many advantages that make it stand out in the market. Here is the list of the 10 most important Flutter advantages for mobile app development:
1. As a cross-platform tool, it enables you to build apps for different platforms operating systems like iOS, Android, Web, PC, Mac, Linux, and others from one codebase, and this brings huge savings over the lifetime of a project.
2. 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 “performance overlay” that allows you to check which actions are expensive to render and then easily optimize them;.
3. 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).
4. 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.
5. 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.
6. 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.
7. 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.
8. This popularity and the fact that it has surpassed other cross-platform frameworks make finding a Flutter Developer easier, so in the long run, it should be easy to build the in-house team if needed.
9. It’s Google’s 2nd most popular open-source project, and with over 154k stars on GitHub (June 2023), it’s the most popular mobile framework available.
10. Google is investing a lot in Flutter and rewriting its flagship applications on this framework.
There are other specific advantages related to how you can build your application architecture or build enterprise applications using Flutter, and we cover them in other blog posts on LeanCode Blog.
Flutter disadvantages - mobile app development
Still, despite all the positive implications of choosing Flutter, there are still some drawbacks of which you need to be aware. Most of them are related to the case of creating a web up from the Flutter code, so they don’t really belong in this section. However, we have observed that many of our clients who have chosen Flutter for mobile development wanted to use it also for the website since this is fairly free, provided the mobile apps are already built using Flutter. Scroll down if you want to see how Flutter works with the web and what problems you can expect.
- In terms of mobile development, you need to be aware that in rare cases of new OS releases accompanied by some new platform-specific features, they may not be available instantly on Flutter. There is a delay between adding something to the operating system and making it available in Flutter, 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.
At LeanCode, we have already built 60+ Flutter projects, and it only once happened that we were not able to implement a specific feature using Flutter. It was the case with Apple AppClips. This feature is intended to demonstrate the app's features without downloading it; however, we think that this is Apple’s workaround to help developers avoid building the web versions of their apps, and as explained before, Flutter does that relatively for free. So from the business perspective, this goal can be achieved in an even more user-friendly way.
Since its birth in 2018, Flutter has grown to be extremely powerful and competitive. Any problems related to its previous editions have been resolved, and Flutter is becoming the default choice for building new mobile applications worldwide. The only arguments against Flutter are currently related to the fact that Google may stop supporting it for internal reasons. Those are purely political arguments. Still, in this worst-case scenario, you need to remember that with the scale Flutter has already achieved, this gap will surely be filled by other community members.
Is it possible to add Flutter to the existing app?
But what if you already have a native mobile application? Now once you know all the arguments in favor of Flutter, you may have some second thoughts after choosing the native approach. You need to understand that your choice was right, and only recently, Flutter gained enough maturity to convince established players to move their apps to Flutter.
How to migrate your native application to Flutter? Obviously, the most comfortable scenario from the technical perspective is a green field project where you can start everything from scratch. Yet, this would mean that the development of the current app will most likely be withheld, and this is not acceptable for the business.
The good news is that even if you have a natively built mobile app, you can still use Flutter to add new features. This feature is called Add-to-app and may be considered an advantage when you want to start your migration. The Add-to-App feature allows you to create new features and rewrite other parts of the native app development in Flutter while 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 add-to-app can be used in your case, you can use our audit service, and we will check that for you.
You can also review our guidelines for using the Add-to-app feature in our article “Add-to-app: the overview and challenges,” which is based on a case of migrating a native banking app to Flutter.
Flutter for web app development
The current state of Flutter for the web is ambiguous. On the one hand, the the Flutter development team assures that 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 always a viable solution. For sure, it’s not a one-to-one replacement for technologies such as React, Angular, Vue, or Svelte. So as it is often in the technology world, it depends on your particular requirements.
Firstly you need to ask yourself if your product is mobile-first or if you want to focus on building just a website for a start. If the former is true and the webpage is just an add-on to your mobile application helping you to handle some edge cases, then go for it. As an example, we can tell you the story of a fintech app for our French client Alternative Loans Technologies. In their onboarding KYC process, there was a need to upload certain financial information (i.e. P&L and Balance Sheet). From the UX perspective, this is not so easy to do when you operate on mobile. Therefore there was this idea to build in parallel the web version of an app to redirect them to the web for those users who failed to upload their documents when onboarding in the mobile app.
Yet, if your primary focus is the web, and you don’t plan to build mobile apps in the foreseeable future, or the case for your mobile apps is weak, i.e., there will be no reason for the users to use your app regularly, then use the traditional web technologies.
Secondly, if, based on the arguments above, there is a business justification for using Flutter for the web, then you need to consider the main blockers from the technology perspective. First of all, Flutter for web does not support the SEO and discoverability of your website. This may not be a big problem for the cases where the website requires login, so the Google bots will not be able to penetrate it no matter what technology is used. The other problem is with the application size. Flutter for rendering (i.e. generating) the website requires the Flutter engine, which size is about 1.5MB. In some rare cases, when you need to secure the highest speed of website loading or your website will be loaded in regions with a poor network, then this can become an issue.
All in all, Flutter for web can be a good choice for your overall strategy, especially if your main cases are handled through mobile applications. In those cases, Flutter for web is a great solution. Yet, don’t rush with this decision, and make sure you are familiar with the disadvantages of Flutter for web, which were listed above.
Flutter for desktop app development
From the perspective of the Flutter roadmap, Flutter for desktop is even younger than Flutter for web. It shares some infancy problems, such as a lack of packages, and adds some more issues.
Flutter for desktop supports Windows, macOS and Linux so that everyone can use apps written in Flutter on their computers. Flutter for Desktop has a very promising perspective because there are few technologies for building desktop apps. What makes this perspective even more promising is the fact that there are no major blockers for Flutter for Desktop, as they were with Flutter for Web (e.g., the lack of SEO support).
If you want to develop your Flutter for Desktop app, you can schedule a consultation with us to explore this opportunity further. We deliver all Flutter app development services.
Conclusions
Flutter is taking the market by storm, especially for mobile application development. Flutter app development has numerous advantages, including cost efficiency, faster app development, short time-to-market, and ease of organization of a team. Flutter is becoming a default choice for new, green-field projects, but it can also be used as an Add-to-App with existing applications written in native languages.
If you are unsure if Flutter is a good solution for your future application, we will gladly advise you. Schedule a call with us to check if Flutter can be a good option for your application development plans, or reach out to us to receive the estimation of your app development.