Building Apps with Google’s Flutter Framework: The Pros and Cons

The Release of Flutter

As smartphones continue to proliferate, it’s extremely important to make sure your software and apps are compatible across all devices. Fortunately, a new suite of development tools claims to make that easier than ever. Google’s new open-source UI software development kit Flutter has finally left beta with its stable 1.22.3 release. The Flutter toolkit promises easy and fluid app development across multiple platforms including mobile, web, and desktop all from a single codebase.

What is Flutter?

Flutter is built upon Google’s Dart programming language. First unveiled back in 2011, Dart has the essentials that any modern coding language should: it is class-based, object-oriented, and features built-in garbage collection. It is fully equipped to handle async and future options right out-of-the-box. It has a C-style syntax, so programmers familiar with Javascript should be able to learn the new language relatively quickly. It also supports interfaces, mixins, abstract classes, reified generics, and type inference. 

Dart is intentionally designed for ease of use. Unfortunately, easy-to-use does not also necessarily mean efficient. Compared to writing in the native code, Dart can be a bit slower as it continues to execute extra non-essential work in the background. Dart is to JavaScript what Python is to C++.

Widgets are Everything

With Flutter, everything is a Widget. From building layouts with Scaffold and MaterialApp widgets to Provider Widgets and BLoC patterns, Flutter is built entirely around widgets. The layouts do need to be hand built, but a number of particularly dedicated developers have created some layout playgrounds such as FlutterStudio that allow you to experiment, build, and print your code.

Flutter is incredibly popular, too. Their GitHub currently sits at nearly 8,000 open issues with nearly 40,000 closed as well as 107,000 stars. LinkedIn has reported Flutter as the fastest growing skill among software engineers. In a mid-spring update, Flutter announced they have surpassed 500,000 monthly users with more than 50,000 apps on the Play Store. 10,000 of those apps were uploaded in March 2020 alone. The numbers don’t lie; Flutter has clearly been received well by the software development community as a whole.

The Benefits of Flutter

So, exactly what advantages does Flutter bring to the table? First and foremost, Flutter allows developers to push out clean and professional products quickly. It also allows developers to create cross-platform apps using only a single body of code. It features a ‘hot reload’ option so developers can quickly test and experiment with different layouts through an emulator. Flutter even comes with a nice library of out-of-the-box widgets so developers can get an early iteration of their app up and running with minimal hassle before they fully customize it.

The Drawbacks of Flutter

Part of Flutter’s allure is its versatility. To highlight just how useful it can be, Flutter hosts a showcase of its biggest adopters to show off its capabilities. Among them are Square, BMW, Tencent, eBay, New York Times, Realtor.com, Google Assistant, and more. The New York Times utilizes Flutter for their beloved KenKen puzzle, while Google uses Flutter powered apps for their Assistant. Realtor.com has adopted Flutter for a specific use-case, A/B testing, in their development process. It’s also fair to assume that since Flutter is so new, many companies simply haven’t been able to transfer all of their code over at once. It is entirely possible that companies are testing the waters before fully committing to a transition with Flutter.

Flutter Hackathons

This year Flutter has gained a fair amount of popularity from Hackathons, where developers are under a tight deadline to collaborate intensively on software projects. Flutter does so well in these environments because it handles rapid iterations easily. Developers are able to spend more time creating a stable, feature-rich app instead of sinking time into writing standard boilerplate code.

A/B Testing

Part of Flutter’s iterative nature is the ability to run A/B tests to try new product features concurrently with native applications. For example, developers could test two different button layouts on an identical page to see which leads to higher interactivity and customer retention. By comparing and contrasting these metrics developers can learn which layout works best for their app and business. When one layout proves to be a good fit, that feature can then be written into the app permanently with stronger code.

Low-Risk Addons

Even if their app was coded on another platform, Flutter allows developers to utilize low-risk bolt-on features that add an increased range of capabilities for their app. From simple games like NYT’s KenKen puzzle to GPS tracking, video plugins, or even image-detection functionality, Flutter’s ability to fill in the cracks with feature-specific components makes it a valuable asset for any software developer.

Guest Blogger Image

At Lithios we value outside opinions. This blog was written by one of our guest bloggers.

Looking to Build Your Next App?