Skip to main content

Select your location

Flutter: when is it right for mobile app development?

Magnifying glass over screen with Flutter logo

Guide to Flutter in 2022

Next up in our series of deep-dives into mobile app technology is Flutter, the cross-platform solution with low-level rendering for top performance on both iOS and Android. 

We caught up with Swav Kulinski to discuss the technology first introduced in 2017, from its application to web and mobile, to the outcomes for which it is most suited as an app technology.

Your comprehensive guide to mobile technology in 2022

Download the Mobile Technology report now

What is Flutter?

Flutter is a platform for creating rich visual applications for any platform: mobile, desktop, web and others. Created initially as a cross-platform solution for iOS and Android, now it can target macOS, Windows, Linux, Web, Raspberry Pi and even in-car infotainment systems. 

It achieves this unparalleled portability by providing its own drawing stack, which can be deployed universally. Having complete independence with how drawing is implemented, Flutter has been able to provide the most advanced and up-to-date UI paradigm.

What skills are required to develop a Flutter application?

Flutter uses Dart, which is a language developed by Google for client-side applications. It is a pragmatic language that takes a lot of concepts from other languages, making it familiar to anyone who has worked with Java, Kotlin, JavaScript or Swift. At the same time, Dart tries not to include concepts that would make it harder to learn. All this makes for an easy transfer of knowledge from any other language.

What advantages does Flutter have over other mobile technologies?

Flutter took long strides to rethink how UI is constructed, measured and displayed. This investment has paid off in a number of ways. 

The first noticeable advantage of Flutter is that it has a very fast development cycle. One of the goals of the Flutter team at Google was to enable developers to have instant feedback. Unlike other technologies where this capability was forcefully retrofitted later, Flutter’s Hot Reload is an offspring of its core functionality.

This is true also in UI Testing. Unlike most of the toolkits that rely on third parties to conduct UI Automation Testing, Flutter has its own testing framework that takes advantage of core functionality. UI tests in Flutter are much more reliable and easy to write.

As mentioned earlier, Flutter can work outside of mobile as easily as on mobile devices. It is currently a preferred way to develop applications on Ubuntu Linux Desktop and can also work on macOS and Windows. 

Perhaps the most interesting ability Flutter has is that it can work on IoT devices like RaspberryPI, even without an operating system as an embedded device. We’ve recently heard the news that Toyota is using it in its cars as infotainment software. This is thanks to the fact that Flutter’s rendering engine is independent of operating systems.

What are the disadvantages of Flutter?

When it comes to disadvantages, they all boil down to the fact that Flutter’s language, Dart, doesn’t nicely interop with other languages. This stands in contrast to languages like Kotlin, which can be compiled into other languages or has interfaces to work with other languages. Dart stays independent. This means that there isn’t a simple way to reuse an existing non-Dart codebase.

Flutter will start to diminish its advantages if we try to use it with too many platform integrations. There are many existing plugins that solve interoperability with the host hardware and system, but the more we use them, the more likely we are to be maintaining a native platform code and not the Dart/Flutter code. This is true for any cross-platform solution, but since Flutter is so fast, the penalty applied by using native code tends to be more visible.
Flutter code
Flutter code

In which scenarios would you recommend Flutter?

Almost any greenfield mobile project is a good start for a Flutter mobile app. Flutter starts to show off its perks once we add a lushful UI, a need for rapid design research, being consistent across multiple platforms and their system versions, reaching for web and desktops.

I wouldn’t recommend it when there is an existing codebase written in Kotlin or Swift that’s worth using; it is more likely to be an incentive to stay with React Native and use existing code as a foundation for modules.

It is also not the best idea to create hybrid apps with Flutter. Despite the fact that it is technically possible, we lose most of the advantages of Flutter in this scenario.

Explore the Mobile App Technology Report 2022

If you want to find out more about how you can make mobile work harder for you and better for every one of your users, download our report and explore mobile app technologies today. 

Get in touch if you have any questions about Flutter or other solutions and stay tuned for more deep-dives in our mobile app technology series

Share this article

Show me all