Application & Cross-Platform

Is Flutter an alternative to consider for App Development ?

Homepage Is Flutter an alternative to consider for App Development ?

Flutter for App Development = Not Mature Yet, Many Pros & A Couple Of Cons

The challenges facing R&D managers are varied but they often come down to a common question: how can I do more with less? Little wonder, then, that new efficiencies in app development are always welcome and one that has caught attention in recent months is Flutter app development. A Google-backed open-source framework, Flutter powers cross-platform app development from a single code base. Release on iOS, and Android simultaneously and leave the stress and cost of keeping multiple code bases updated? That’s a clear cost and time-saving.

In this article I’ll explain what Flutter is, share some examples of companies that have already embraced Google Flutter for app development, demonstrate some of the quick wins that Flutter app development delivers, and make the case for choosing Google Flutter for your next app development project.

 

What is Google Flutter?

Flutter is an open-source framework developed by Google that allows you to design multi-platform applications from the same “codebase” with performance close to native applications.

Google Flutter got started in May 2017 with its first alpha version supporting Android and iOS. Following this early success, Google has since extended Flutter to Windows and macOS, and Linux is under development. Its community is growing and actively participates in the evolution of the framework, particularly for Linux.

Flutter sets itself apart from its competitors by building its graphical interfaces not with a markup language (XML, HTML) like most other frameworks but with a programming language.

The components that will make up your app are called Widgets. A widget is the basic element for creating graphical interfaces and it has the mission to display itself on the screen and match the elements it contains. They can intertwine with each other and it is through this comingling them that you can create widgets with complex behaviors. There are all sorts of buttons to allow the user to interact with the app, layout widgets (to place other widgets vertically or horizontally) and to develop a material design application. You get the idea: in Flutter everything is a widget!

By making it possible to build a single application for both Android and iOS, Google Flutter kills two birds with one stone, reducing cost and development time as well as reducing the complexity of project management because there is no need to manage two concurrent development teams on two different platforms.

Examples of companies using Flutter for app development

Flutter app development is recent, but is already used by several companies, including:

  • Google of course has already used Flutter for app development in  multiple case
    •  Greentea is an internal management application used by Google’s sales department
    •  Stadia a platform of games on demand
  • Nubank, a Brazilian company, has decided to use Google Flutter for their mobile applications
  • Decathlon has chosen to integrate a Flutter module into a native application in production.

And there are many others, too, including BMW, Tencent, Philips and more.

While these companies all compete in different markets and represent different industries, what they have in common is that they are leaders and innovators in their field. Whether a tech giant like Google, an automotive powerhouse like BMW, a conglomerate with interests in various sectors like Philips, or a European consumer sports retail staple like Decathlon, companies that know how to get ahead are now getting ahead with Flutter.

In the case of Decathlon, which integrated a Google Flutter module into their application, feedback from their R&D and development teams proved they appreciated the ease of development and especially the ability to launch independently of the rest of their applications.

A common code base for Android and iOS, easy development, and the cost savings that flow from both? It’s clear that Flutter app development is a good means for shorten time to market and lift productivity on development teams.

 

Why go with Flutter for app development?

As stated at the outset, there are many reasons why these companies have adopted Flutter as their primary framework for the development of their app, but four stand out:

1/ Cost Savings

Using native technology (for example, Kotlin for Android and Swift for iOS) in the development of a mobile application, requires you to develop two versions of your app (one each for Android and iOS) which involves. This, in turn, represents a direct cost for the business as it usually means maintaining two code bases and employing or contracting two development teams, one for each platform.

Thanks to Google Flutter the costs of maintaining the two code bases disappears, and recruitment can be limited to a single team instead of two.

2/ Improved Productivity

With a single code base and a single development team, project management is less complicated and far easier to manage. Smaller development teams are more productive and project managers have a better chance at meeting their release and go-to-market targets when focused on a single, focused application than splitting their time between two concurrent projects.

Thanks to Flutter, app development teams are more productive and project management is easier, too.

3/ Mobile and Desktop Support – and Soon Embedded

Though originally focused only on Android and iOS, Google began adding support for Windows, MacOS, and Linux just over a year ago. The Flutter framework’s support for the Android and iOS platforms is by far the most advanced as it has been the priority since the framework was first developed. The Flutter framework’s support for desktop platforms is still under development but racing forward, and embedded support is coming soon.

Support for a Linux distribution has been greatly improved by the collaboration between Google and Canonical, the company that owns Ubuntu. Canonical wants to facilitate the development and deployment of Flutter applications on Linux platforms by facilitating Flutter installations via the SnapStore, itself owned by Canonical, and by allowing the publication of Flutter applications on Canonical. One can imagine that Canonical probably has the goal of making Flutter the flagship technology for the development of desktop application on Linux distributions.

In an attempt to show Flutter’s potential on the Linux platform the Canonical team, in collaboration with developers, have created an open-source desktop application called Flokk. The app compiles various features that Flutter offers (Button, List, Side Panel) and includes the integration of GitHub and Twitter activities. Canonical has announced that it wants to continue working with Google, with the aim of improving Flutter’s support on Linux distributions.

4/ Flutter app development is easy to Learn

Google Flutter is easy to learn and there are many resources available to help developers unfamiliar with the framework to get up to speed quickly.

To start, Flutter Programming is a series that will walk you through installing Flutter on your machine, setting it up and going through  your first Flutter app development. From there, other documentation portals have pages dedicated to the transition from other languages or frameworks to Flutter including from Android, iOS, React Native or Xamarin.

If you want to take inspiration from an existing app, Google Flutter provides a slew of demo apps that offer an overview of what Flutter is capable of. The Flutter app development team is also very active on YouTube where they regularly post videos on various topics be it the discovery of a Widget, how to optimize the performance of its application, how to do asynchronous programming, or many more.

On top of these four core advantages, though, Flutter also stands out from other multi-platform solutions by:

  • Offering test tools built into the framework in order to perform unit tests and end-to-end integration, which an alternative like React Native does not
  • Offering an interface that completely ignores the type of media on which it rests for the graphical interface, unlike an alternative like Kotlin Native.
  • Promising near equal performance to a native application or a competing framework without requiring a web technology to work, unlike an alternative like Ionic
  • Allowing its application to be deployed (eventually) on Windows, MacOS and Linux and as a web application

All in all, Flutter app development offers clear advantages for the R&D manager working with ever more constrained budgets,  seeking productivity gains, and looking for quick wins while delivering for both Android and iOS end user clients.

 

Flutter app development IRL: Our developers’ feedback is to wait and see

At Witekio we appreciate the ease of handling the framework – the simple Dart language used in Flutter – and if you have experience in object-oriented languages like Java or C, you will have no trouble taking control of Dart.

Google Flutter’s documentation is a strong point: it is complete, qualitative, easy to find and covers all aspects of the framework, including:

  • The Dart language
  • The inner workings of the framework
  • The various components (Widgets) made available to design an application
  • Different ways of programming (asynchronous, reactive programming, etc.)
  • A FAQ for more general questions
  • Examples of code, for just about anything and everything
  • Demonstration applications

Our Flutter app development works well on desktop platforms.

However, since this is still one of Google’s longer-term goals with Flutter and desktop platform support is still being developed, some plugins are not yet compatible on all platforms (including Webview and Shared Preferences).

Finally, Flutter still has trouble managing the resizing of windows causing the framerate to collapse consistently.

 

In early March 2021 Google released version 2.0 of Flutter proving the company’s confidence and continued investment in this framework. Hot on the heels of that announcement, Japanese automaker and manufacturing conglomerate Toyota announced that they would be adopting Flutter app development for their new UI projects. With Toyota’s well-known predilection for supporting open-source projects, this investment should accelerate the deployment of Flutter applications on embedded Linux.

Google Flutter needs some maturity but could soon be positioned as a real option for R&D managers seeking a framework that will help them save on spending, rationalize their development teams, and lift productivity across the board. With Google, Toyota, BMW, Decathlon, Philips and others already on board, there are plenty of reasons to choose Flutter app development in the future.

Maxime Lordey - Software Engineer
14 April 2021