From the Ground Up

Some directions of getting started

Constantin Stan
5 min readJun 30, 2021


Photo by Mona Eendra on Unsplash

When you're set to build a Flutter mobile, web, and/or desktop application, you'll almost every time start the same way.

If you start from nothing at all, you might consider first installing and setting up Flutter itself. If you already have Flutter installed you can simply create a new project.

I'll do a summary of the installation process and creating a new project as presented in the Programming Fluter (a book by Carmine Zaccagnino from The Pragmatic Programmers).

Installing Flutter

The installation process differs from operating system to operating system. The easiest way to make sure you get it right from the first try is to go to and follow the installation that is specific to your OS (Windows, macOS, Linux, or Chrome OS).

This summary will target the macOS installation process. Most developers are using macOS because building mobile apps (both iOS and Android) kind of requires that you have a Mac. Building a macOS desktop application has this requirement too. You could do some cloud builds for iOS/macOS and do all the development/testing only on Android, though I think that's a stretch.

The same is valid for building Windows or Linux desktop apps. It is a bit harder to build and release Windows or Linux applications without having a machine running the specific OS you're targeting.

Before starting your macOS install you should check that your system meets the minimum requirements.

Once that is out of the way and you're in the clear you can download the latest stable release of the Flutter SDK (right now that is 2.2.2).

After that, you have to extract the *.zip file you've just downloaded. If that file landed in your Downloads folder you can use the following commands (1st select the development folder — make sure this exists, then unzip the contents of the zip file in there):

cd ~/development
unzip ~/Downloads/

Then you must add the flutter tool to your path by running this command: