Flutter in Mobile App Development — Pros & Risks for App Owners

Agnieszka Mroczkowska
droidsonroids
Published in
8 min readApr 24, 2018

What are Flutter’s pros & cons in mobile app development? Is Flutter a good idea for every app? In this article, you will find essential information about Flutter for App Owners, Product Owners and everyone who wants to develop a mobile app.

Google I/O 2018 dedicates a lot of attention to Flutter. About 25 talks will refer to this SDK! At the same time, the rate at which Flutter apps are published on Google Play continues to increase. And it’s just the beginning.

Flutter is becoming a hot topic and whether you will decide to use it, if you want to develop or improve your mobile app, you should be aware what Flutter is, and what pros & risks does it carry. Let’s start with basics.

What is Flutter?

Flutter is a Google’s mobile app SDK, complete with a framework, widgets, and tools, that gives developers an easy way to build and deploy visually attractive, fast mobile apps on both Android and iOS platforms (official Flutter website).

Flutter enables a smooth and easy cross-platform mobile app development. You don’t need to develop an iOS and Android app separately. All you need is one codebase for both platforms.

What’s more, Flutter:

  • Is free and open source
  • Is based on the Dart — a fast, object-oriented programming language which is in itself easy learn to
  • Provide its own widgets drawn with its own high-performance rendering engine. They are fast, pretty and customizable
  • Thanks to rich widgets, Flutter apps look and feel great (you can create your own custom app design, but also use ready UI elements following specific platforms’ guidelines)
  • The architecture of Flutter is based on very popular nowadays reactive programming (the same that React has been made)
  • It’s becoming a serious competitor to React Native, but also to native app development

Let’s go to the pros & cons of Flutter!

Why Flutter in Mobile App Development

Why Flutter? 7 top advantages for mobile App Owners

From the perspective of App Owner, crucial advantages are: Flutter speeds up mobile app development process, reduces the cost of app production, and helps your team to build a beautiful app UI with smooth animations. Let’s take a look at it deeper. We prepared for you the below lists with Paulina Szklarska and Karol Wrótniak — our Android Developers, who work are working actively with Flutter.

1. Faster code writing

For developers, Flutter means faster & more dynamic mobile app development. We can make changes in the code and see them straight away in the app! That’s so-called Hot reload which takes usually only (milli)seconds and helps teams add features, fix bugs and experiment faster.

Hot reload is very comfortable also in developer-designer cooperation when we want to improve or experiment with app’s look and check the effects on the spot. Other words, with Flutter, your designer or tester can work together with a developer on UI, making changes — for example, “Put it 2 pixels right”, “Make animation faster”, and see them immediately.

Why Flutter

Most types of code changes can be hot reloaded. But there is a list of changes that require a full restart: Hot reload Limitations.

Whereas in the case of native app development, the project needs to be rebuilt and that takes much more time. You have to wait for every single change sometimes even up to several minutes.

2. One code for 2 platforms

Developers write just one codebase for your 2 apps — for Android and iOS platforms. Flutter doesn’t depend on the platform, because it has its’ own widgets and designs. It means that you have the same app on two platforms. But — what’s important, if you want to differentiate your apps — it’s possible.

3. Less testing

If you have the same app for 2 platforms it means less testing! Quality Assurance process can be faster. Because of one codebase, the developers write automatic tests only once. What’s more, Quality Assurance specialists have less work to do, because they have only one app to check. Of course, if your apps have some differences, they need to be tested on both platforms.

4. Faster apps

Flutter apps work in a smooth and fast way, without hanging and cutting while scrolling. If you want to understand why and how it works from the technical point of vide, read this article.

5. Designs which your users will love

Flutter is designed to make it easy to create your own widgets or customize the existing widgets. Here you can browse a catalog of Flutter’s widgets, for example, Material Design widgets and Cupertino widgets.

6. The same app UI on older devices

Your new app will look the same even on old versions of Android and iOS systems. There’re no additional costs for supporting older devices. Flutter runs on Android Jelly Bean or newer, and iOS 8 or newer.

Why Flutter
Android 5.1.1
Why Flutter
Android 8.1.0

7. Perfect for MVP

Do you need MVP (Minimum Viable Product) for your app to show it to your investors? Flutter will be perfect, especially if you have little time.

If you want to see some apps built with Flutter, check the Flutter Gallery app which is a demo of some of the Flutter features, widgets, and vignettes.

Flutter Gallery
Flutter Gallery
Flutter Gallery
Flutter Gallery
Flutter Gallery Screen
Flutter Gallery

Does Flutter has any cons? 2 risks for mobile App Owners

1. Flutter is still in beta

In April 2018 Flutter beta 2 has been announced. Flutter team hasn’t released the stable version yet. “Our APIs are stabilizing, and we continue to improve parts of the system based on user feedback. Some key features are not yet ready for broad deployment” — we read on the official Flutter website.

So it means, that we can expect changes and improvements that can demand in the future changes in our code if we ship app before the stable version of Flutter is ready.

2. Libraries & support — impressive, but still not so rich as for the native development

Google support for Flutter is impressive and there are many helpful libraries with functionalities ready to be implemented. But still Flutter is new, and not every functionality which you need can be found in libraries. It means, that your developers would need to build them by themselves which can be time-consuming.

Here you can find Flutter Packages — a list of features ready to be added to your app. What’s important these packages are checked, analyzed and rated for factors like health, popularity, and maintenance.

However, we can expect that the support for Flutter will improve in a rapid paste. What’s more, Flutter team actively involved in supporting Flutter users by frequent solving and answering requested issues.

3. Continuous Integration support

Since Flutter is still in beta it is not widely supported by CI platforms like Travis or Jenkins. So to achieve automatic building, testing, and deployment your development team needs to use and maintain custom scripts like that one. However, Bitrise.io is the exception where you can find ready to use build step.

Flutter a good idea for every kind of mobile app?

There are a few cases when you should consider if Flutter is the best solution:

  • Progressive Web Apps & Instant Apps
    They need to be small, and Flutter apps — even optimized — are bigger than native ones. The overhead varies from few to 20 megabytes depending on whether it is a release or development build.
  • Apps which communicate with any hardware via Bluetooth
    This kind of features like BLE connection must be developed separately for iOS and for Android. You can develop them natively and add them to the main Flutter app. In this case, it’s hard to say if it will save your time.
  • Apps demanding rare, little-known native libraries
    If in your app development you expect using any specific and rare native libraries and they are not already in Flutter repository, it is possible but complicated. Developers would have to implement the custom platform channels by themselves separately for both Android and iOS. And that’s what can take time.

Wrap up & our recommendation

In our opinion, Flutter has much more advantages for business and development teams, than risks. It’s a great chance to build beautiful, high-performance and outstanding mobile apps which fit your custom needs and requirements. It’s worth to consider using Flutter especially if you want an app for iOS and Android.

And what’s more, it can save your time & money. The major risk comes from the fact, that Flutter is still improving and is not 100% completed. So if you want to use Flutter, consider if you want to wait till stable version release. It’s hard to say when it will be ready. Hopefully, it’s only a matter of months.

Why Flutter

Why asked also our friend — Tomek Polański — for his opinion about Flutter. Tomek is a Senior Android Developer at Groupon and at the TOAST — Android Developer Meetup #17 he made a presentation: “I convinced Groupon to Flutter. Do the same with your company”. Here’s what he said:

Flutter is perfect for creating a customized application experience. Times and times again it was shown that award-winning applications (MWC’s Glomo Awards, TIME’s Best Apps of the Year and the Webby Awards Mobile Apps) focus on delivering beautiful custom experience rather than pixel perfect native iOS/Android look — and Flutter delivers on it.

On the one hand, you have the ability to create simple UI rapidly and on the other, Flutter is a powerful tool to create beautiful custom application thanks to its extensibility. The thing that I’ve found positively surprising is that we have communicated that developing applications in Flutter is much faster than native, product people were still astonished that’s true in practice.

We wish you good luck with Flutter! And if you already have tried it out, share your impressions and leave a comment :)

Useful links about Flutter

Articles:

Resources:

--

--

Agnieszka Mroczkowska
droidsonroids

Tech writer on digital product development: collaborating with developers, QA engineers, and Scrum Masters to clarify technical and business nuances