It has been a while since I last wrote an article. With the beginning of the new academic year approaching, I thought it would be a good idea to discuss the current state of my essential toolkit for Flutter development. Please bear in mind that this toolkit is entirely subjective, and certain items may not be of any use to you.
1 - Hardware & room tour
As you may be aware, I am a freelance developer and work from home when I'm not wandering around attending conferences and since I recently relocated, I feel it's the perfect time to share with you my work environment and how I built my home development environment.
As I write this article, this is how it looks like.
https://twitter.com/EnzoConty/status/1690422384451358720
This is a small room used for working and occasionally drying laundry. 😅 The desk is in front of the window, which allows me to still enjoy natural light and gaze at the trees. All of my collectibles are used as a nice background for when I do video calls with clients or speak with other developers
You might have noticed that I own a total of two computers, but we'll concentrate on the MacBook since this is the one I mostly use for development, and the desk computer is used for accounting, music, and video calls (Also for gaming, but this is not the subject of this article).
https://twitter.com/EnzoConty/status/1685775948975628288?s=20
As previously stated, let us discuss the hardware in greater detail. For Flutter development, my primary computer is a MacBook M1 Max equipped with 32 GB of RAM. My MacBook is overkill for the job, in fact, I'd suggest a MacBook/Mini M1 with 16 GB of RAM to be able to run any emulator/simulator, code editor, browser, and still have room for any extra program.
2 - Software & Tools
I will list some programs and tools that I use during my development process. The list has no specific order, I will simply detail how I use the program, and its price.
2.1 - Rotato
https://www.youtube.com/watch?v=gU5QqGOvzg0
In seconds, Rotato can create mockup images and promotional videos. It is very useful for creating mockups for stores, but it can also be useful for creating presentations for conferences, meetups, or for clients. Many devices can be mocked up, like iPads, iPhones, Android phones, MacBooks, watch, iMac, TVs or combinations of these. Helpful in many situations, Rotato costs $59 in a one-time payment. One of the main drawbacks is that Rotato is only available on MacOS. I found that the closest alternative on Windows would be After Effect, but it is much heavier and does not allow you to create renders with as much ease as Rotato.
2.2 - FVM
Flutter Version Manager - FVM is a CLI tool that lets you use multiple versions of Flutter and Dart on the same computer. This is especially useful if you're working on multiple Flutter or Dart projects with different versions. If you switch between projects or packages with different flutter versions, you won't have to use the "flutter downgrade" or "flutter upgrade" every time. The only inconvenience is that you must add the prefix 'fvm' for every flutter or dart command you would normally use in your terminal. One option is to fix that with an alias.
2.3 - Arc
Arc is not directly related to Flutter or programming, however, since I began using it approximately one year ago, I have noticed a significant increase in my productivity, this is why I choose to include it into my toolkit. Arc is a browser for MacOS and iOS (but it is planned for Windows) that allows you to divide your tabs into multiple spaces. I typically utilize spaces to distinguish each project, wherein one space represents a single project. This allows for the systematic management of all resources within a project, thereby preventing any potential confusion when switching to another one. Additionally, there are "easels", which serve as a canvas for capturing notes, transferring images, and integrating live websites. Arc is completely free.
2.4 - Version Lens
For those who, like me, use Visual Studio Code, I recommend using Version Lens, which is an extension that allows you to find updates, when available, for your dependencies. It works with pub.dev, composer, dotnet, dub, maven, and npm. It is very useful for maintaining your apps with the latest update of the dependencies you have chosen. You can simply click on the text on top of your dependency to update it to its latest version or to the latest satisfied version, depending on your current version.
2.5 - Pubspec Assist
Pubspec Assist is another extension for Visual Studio Code; this one allows you to quickly add dependencies in your project without having to find the latest version on pub.dev It also sorts alphabetically all the dependencies, so it's easier to search for an element in your pubspec.yaml
3 - Conclusion
That was a list of the top software and tools that I frequently or almost daily use for Flutter development. In order to keep this list short, I did not include very popular software like Figma, Slack, Git, etc.
Still, I will mention some great programs and tools that I like, but they aren't specific to Flutter or Dart. You can look into them yourself.
I hope you enjoy reading my article and find something useful for your next project. You can always reach me on Twitter/X if you have any more questions, or if you want to share something from your toolkit, I'd be happy to test it and maybe include it in an article later on.