Is Google’s Flutter the future for apps?

Or just the next in a series of suboptimal toolkits?

Tim Klein Haneveld
Adventures in Consumer Technology
6 min readFeb 3, 2020

--

Roel Orth (Pinch), using MockupsForFree.com.

Introduction
After a number of successful hackathon experiments with Flutter, we started creating our first real Flutter app at Pinch mid-2019 on behalf of YouBahn. Flutter is a software development kit by Google to build (among other things) iOS and Android apps. Whereas with native apps you develop a separate app for each operating system (iOS and Android), Flutter allows a developer to do this in one go, with the same “code base”. Flutter is not unique in this; In recent years, more similar frameworks have been developed that promise more or less the same, such as Ionic and React Native. We never became a fan of those frameworks at Pinch, though. Both in terms of user experience and stability of the apps created with these frameworks, the “toolkits” lagged behind the native apps that we made with the tools developed by Apple (Swift) and Google (Kotlin). Those frameworks also regularly caused frustration in the development process. Does Flutter keep the promise? Or will it just be the next in a series of unfortunately suboptimal toolkits?

About The YouBahn app
YouBahn is an employment agency, but different. Compare YouBahn with Uber, but for work. Do you need money as a student? In the app you can see at a glance where you can get started quickly. You can also filter extensively on what kind of jobs you want to do, your availability and how far you want to travel. Plus, you can use the app to see exactly how much you can earn, or how much you have earned already
The design, developed by NoProtocol, is clean and contemporary, and therefore fits in well with the relatively young users of the YouBahn app.” All data the user sees in the app, such as vacancies, services, salary, etc. come from the system “e-Matcher” used by YouBahn and are being enclosed via an API by the supplier of E-matcher Synerg-e.

In any case, knowledge of native app development remains essential when creating Flutter apps

The benefits of Flutter for developers
One of the major advantages of Flutter is that, unlike React Native for example, a developer has more direct influence over the screens (views) of the app. Every pixel is under control. Also, you’re able to immediately see the result in the app of everything you create or adjust (interpreted compiled). That is very pleasant as a developer. As with native apps, you don’t have to make a package (compile) to see the result of your work on the screen (which takes time).
Flutter projects are also less layered than native projects. That makes it easy for developers with limited Flutter experience to find their way in a project. The development language of Flutter is Dart. To some developers this may feel like a step back from Swift (language for iOS), or Kotlin (language for Android), but still, it seems that we really enjoy working with it. Still, it is good to work with. In comparison with React Native, Dart is a much more strict language. You are therefore quickly alerted if you make mistakes, which saves time when it comes to detecting bugs (debugging). Android developers tend to use Flutter a little faster — it is of course a Google product and Dart as a language strongly resembles Java, the predecessor of Kotlin as a language for Android apps. Nevertheless, we’ve noticed that iOS developers are also very comfortable with it. In any case, knowledge of native app development remains essential when creating Flutter apps.

The benefits of Flutter for business
A very big advantage is the speed with which you can show a working product on both Android and iOS devices. That makes Flutter ideal for making prototypes and Minimal Viable Products (MVPs). In the case of the YouBahn app, we only needed 12 man weeks for the full scope of the first version of the app. Whereas if we had done this natively, it would probably have been around 16 man weeks. A saving of 30%. And keep in mind that this was our first Flutter app. Flutter is also prepared for the use of 120 frames per second (fps). This means that, especially with animations, you can give apps an even richer visual experience. Of course your phone or tablet must be ready for this.

What can be done better?
Because Flutter is a new framework, many Software Development Kits (SDKs, collection of tools during programming) do not yet support Flutter as standard. The integration of those SDKs in the app therefore takes more time than with native projects, where the SDKs can be integrated seamlessly. Another point of attention is the so-called “internship management”. This means, for example, that the app remembers where the user ended up after closing the app. At the moment that is still a bit diffuse with Flutter and therefore it takes (disproportionately) a lot of time. In addition, we also see that when debugging (automatically detecting errors in the programming code) Flutter sometimes refers to the wrong place and the real error is somewhere else.

Photo by Shahadat Rahman on Unsplash

Can any app be made in Flutter?
We would certainly not blindly recommend it for all apps. Certainly if many integrations are needed with 3rd party SDKs and there is a lot of use being made of sensors in the telephone, we would not simply opt for it. Also of interest is the user group of the app. For example, if it consists of older users who do not have the latest phone models, Flutter is not immediately recommended.

Will Flutter replace the native development tools from Apple and Google?
Certainly not in the coming years. Although it is to be expected that the number of Flutter apps will increase rapidly. We can already see that happening: on GitHub the development community is now larger than that of React Native. Flutter’s development roadmap also plays a role in this: in addition to mobile apps, Flutter will focus on websites and MacOS applications. In our opinion, however, the native development tools will remain dominant for the time being when it comes to app development.

Conclusion
Flutter is a promising new development framework that allows you to quickly create good apps for both iOS and Android. Because of the development speed, it is also ideal for the development of prototypes and MVPs. Whether or not Flutter is suitable for you should be considered on a per-app basis, as it depends on integration with existing software, use of hardware and the target audience. Based on our experience with the YouBahn app, we have decided to embrace Flutter as a third development framework and new Flutter apps are already being worked on in the Pinch factory.

Download the YouBahn app here for Android and iOS.

Thank you: Thomas, Matthias, Stephan, Jason, Alex, Rob, Wiebe, Pepijn and the teams from Node1, NoProtocol, Synerg-e & YouBahn.

Feel free to get in touch: tim@pinch.nl
Pinch.nl

--

--