The Flutter ecosystem is a huge game-changer among the many mobile app development tools available out there. As a result of using it, development time can be cut in half, and your productivity can increase significantly. Flutter allows for the reusability and interoperability of these apps across many platforms and is widely regarded as the most efficient toolkit for rapid iteration.

The most effective use of Flutter requires the use of specialized supporting tools. When developing in Flutter, you have access to many unmatched tools for addressing issues like code completion, debugging, and cross-platform support. Here you’ll learn the 5 best Flutter tools that will be useful for your daily development!

1. Android Studio or Visual Studio Code 

To develop a Flutter application in 2022, we of course need IDE. One of the most popular is Visual Studio Code and Android Studio. My daily driver is Android Studio so here are a few tips to make Flutter development faster. Most of them (if not every) you can also do in VS Code.

Plugins

Plugins can be really potent and make development a lot faster! Here are some of my favorite AS plugins:

  • Flutter and Dart – yeaa… you need this to develop Flutter in Android Studio,
  • Bloc – If you are a bloc/cubit user this is a must-have! Thanks to this plugin we can generate bloc/cubit files. How to use it? Just try to make a new file and you will see something like this: 
  • FlutterAssetAutoCompletion – So I think this is self-explanatory. Just install this plugin and try to write a path to the asset and magic will happen.
  • Rainbow Brackets – to make our life more colorful <3 and to better see where `{` is missing.

Flutter templates

Some of the plugins add templates but remember that you can make your own! Here is one of my favorite Flutter templates

import ‘package:freezed_annotation/freezed_annotation.dart’;

part ‘$file_name$_dto.freezed.dart’;
part ‘$file_name$_dto.g.dart’;

@freezed 
class $name$Dto with _$$$name$Dto {
	const factory $name$Dto({
	$values$
	}) = _$name$Dto;

	factory $name$Dto.fromJson(Map<String, dynamic> json) => _$$$name$DtoFromJson(json);
}

extension $name$DtoExtenstion on $name$Dto {
	$name$ get toEntity => $name$();
}

Thanks to this little template I can make my DTO class faster and more robust. Templates are very useful for small parts of code that are repeated frequently.

2. Codemagic 

Codemagic is a CI/CD tool for mobile platforms, especially for Flutter SDK. If you (like me) don’t like setting up CI/CD this tool is a blessing. You can set up your CI/CD in a few steps (with deployment to stores or to Firebase App Distribution). Even if you are new to this topic Codemagic has one of the best documentation I have ever seen. Every month 500 minutes so if you have a small project this is the perfect solution to try.

3. Firebase and Google Cloud Platform 

Firebase and GCP are together because these things are connected. Hard to explain how much this tool is useful, better to say that I use this in every project. Here are a few of the features that I use most:

  • Dynamic Links – If you ever try to make deep links for iOS, you know the struggle. Hosting this wired file etc. Firebase does this for us! The only thing we need to do is add our Apple Developer Team ID and set up dynamic links – just click Get Started.
  • App Distribution – This feature helps with testing a lot! We just need to do a small setup and every push to the development branch goes to our testers. I write about it above, and here is more info on how to setup it up.
  • Crashlytics – in my opinion, every app (especially if an app is in production) needs a monitor of crashes. This solution is easy to set up and easy to use.
  • Messaging (Push Notifications) – Push notifications are features that every (or almost) app has. Again with Firebase, it is easy to set up and use.

4. Vysor 

This app really does not help with development but more with presenting our app. Vysor allows us to display our phone screen on a PC and show what we and our app are doing. As I write – not really helpful in development but overall a nice-to-have application.

5. Mason 

This is one of my favorite Flutter app development tools and IMO really unappreciated. I already did a post on our blog about the Mason tool. So just a quick intro about what Mason actually is – it lets us generate code from bricks (templates). It works similarly to Android Studio templates but Mason is more powerful. With Mason, we can generate a few files or even whole projects! 

For example: when I’m doing a feature I create 4 files: use case file, request and request DTO files, and response and response DTO files. Without Mason, I have to make every one of these files separately, thanks to mason I can generate these files with just one command. If you don’t feel like making your own bricks here is the library with bricks created by the community. Also one of the biggest advantages of mason is code consistency through your team.

Contact

Do you want to find out more about Flutter app development?

Talk to us!

Boost your Flutter development

One thing is sure: new and exciting Flutter app development tools are constantly being developed and released. I hope this list of Flutter tools helps you in development and will make it easier for you to find what you need. In conclusion, if you’re interested in developing Flutter apps, you shouldn’t wait to give these tools a try. Thank you for reading!