In this blog post, I will be going over Visual Studio Code as an IDE choice for Flutter development. I will be comparing it to those that I have previous experience with, including Atom and Android Studio.
I resisted trying VS Code for the first few years of my software engineering education because I held a general disdain for Microsoft products after experiencing near constant technical difficulties with my PC until making the change to Unix/Linux and macOS systems. However, over summer we were encouraged to use VS Code in "CS 492 – Mobile Software Development" because so many tools for Flutter development are highly integrated with VS Code.
When I did try it out, it took some adjusting to the workflow. Previously I had been using Atom, and was not leveraging suggestions as I coded. I also did not use many extensions in that IDE. However, as I began developing with VS Code I found that the suggestions (while distracting at first) did genuinely speed up my work, and the myriad of extensions available helped keep details clear (such as Bracket Pair Colorizer 2, which has since been integrated into the IDE itself).
However, to me the best feature of VS Code is the ability to view the documentation or navigate to the source of any method/class directly from my own code. This really helped as I was experimenting with new concepts, because when I was uncertain how to instantiate a new Flutter Widget or method I could simply hover over it to glance at the documentation, or cmd+click to see what the literal implementation was.
This tool is the best choice of IDE for Flutter development because of:
The only IDE which can compare with VS Code for GUI integrated Flutter development is Android Studio. I have minimal experience with this IDE, but I have found that it takes much more processing power to run and has a clunkier GUI. For these reasons, and because VS Code is used by so many professionals across so many niches in our field, I believe that VS Code is the better IDE choice.
I will be using VS Code to develop our codebase for our Flutter application. As we leverage new packages, I will use the "hover for documentation" and "cmd+click to navigate to source code" features when I am stuck instantiating new Widgets and methods to quickly get unstuck.
I will also personally be using it for any other development we do to accompany our Flutter application (such as a website and/or server-side code). Finally, I will be using the integrated git GUI to make my commits. (Though I will use GitHub Desktop to create branches and pull requests because it is what I have experience using, and it works for me.)