4 Essential Flutter Tools for App Developers

Published in
3 min readApr 7, 2022


Each artisan has her or his favourite tools.

It could be one very sharp scissor for the hairdresser or a favorite brush for the painter. These are the essential items that help them do their job smoothly and boost the result’s quality at the same time.

As for a software engineer who primarily works with Flutter, what tools should you have?

In DKatalis, where Flutter is the main SDK, our engineers have built an arsenal of tools that help their app development projects run as efficiently as possible.

Here are 4 recommendations from our Tech Leads. Check them out:

1. bdd_widget_test

Imagine this: you are working on a project with three teams. Each team only speaks a particular language: one only knows Indonesian, the second one speaks exclusively English, and the last one only knows Chinese.

That’s what you might have to face in a tech company. A team can comprise developers, project managers, testers, business analytics, and all other team members. For everyone to be involved and work productively, there should be a natural language that they can understand.

Dart is now heading towards this goal. But for tests, there is already a language for that! It’s called Gherkin. But how can we test a Flutter app with Gherkin?

bdd_widget_test is a code-generation plugin for BDD-style (Gerkhin) tests for Flutter apps. Watch how it works in real-time in the video below.

2. golden_toolkit

You have almost finished building your Flutter app, and now it’s time for the golden tests.

You want to make sure that your app’s UI will not change even after adding more functionalities to your widget. But a Flutter app can have a ton of them, and each one might have different states such as error, progressing, or even exceptional. Testing each one of them will be a Herculean task.

This is where the golden_toolkit lib comes in handy: it will run the test for us.

3. Flutter Version Manager

Instead of installing a specific version of the Flutter binary each time, Flutter Version Manager (FVM) allows you to easily switch between flutter versions as you move between projects or just to test SDK upgrades within the mobile repository.

Additionally, they get cached, so we don’t have to go through the full installation process all the time.

Watch how it runs in this video below.

4. rbenv

OSX comes pre-installed with Ruby. But trust us, you don’t want to use it for project development.

You should try using a version manager instead, especially if you’re juggling multiple projects! It would save you from the heartache of permission and other dependency incompatibility issues.

rbenv works by adding shims (read here for more details) and intercepting Ruby-related commands. Note that simply running source ~/.zshrc does not appear to affect the changes — reopen your terminal to ensure that changes are applied. It also picks a Ruby version for your application and guarantees that your development environment matches production.

But remember, in order for Flutter to work, cocoapods must be installed in the Ruby version that you have set for use globally.

Do you have any other tool recommendations for fellow Flutter developers out there? Share your holy grail with us in the comment!

Want more tips & tricks from our engineers? Check out more articles in our publication and follow us!




A highly adaptive tech company, driven by the desire to always be better