"A bad setup is the #1 reason beginners give up on Flutter before writing a single widget. Get this right once and you will never have to think about it again."

Flutter setup has a reputation for being complex. It does not have to be. The complexity comes from people skipping steps or not understanding what each tool does. This guide explains every step — including why you are installing each tool before telling you how.

What You Need — The Full Tool List

Before starting, understand what you are installing and why:

Tool
Why You Need It
Flutter SDK
The core framework — without this, nothing works
Dart SDK
Comes bundled with Flutter — no separate install
Android Studio
Provides Android SDK, emulator, and build tools for Android apps
VS Code (recommended)
Your code editor — lighter than Android Studio for Flutter development
Xcode (macOS only)
Required to build and test iOS apps — only available on Mac
Git
Flutter uses Git internally — required for some commands
⚠️ Important You cannot build or test iOS apps on Windows — Apple requires Xcode which only runs on macOS. On Windows, you can build and test Android apps fully. To publish to the App Store, you need a Mac at some point.

Step 1 — Install the Flutter SDK

Windows

  1. Go to flutter.dev/docs/get-started/install/windows
  2. Download the latest Flutter SDK zip file (approx. 1.2 GB)
  3. Extract to C:\flutter — do NOT extract to C:\Program Files\ (requires admin permissions that cause issues)
  4. Add Flutter to your PATH:
    • Search "Environment Variables" in Windows Start
    • Click "Environment Variables" → find "Path" under User variables → Edit
    • Add: C:\flutter\bin
    • Click OK all the way through
  5. Open a new Command Prompt and verify:
flutter --version

Expected output: something like Flutter 3.x.x • channel stable

macOS

  1. Download the Flutter SDK from flutter.dev — choose the ARM version if you have an M1/M2/M3 Mac
  2. Extract to your home directory: ~/development/flutter
  3. Add to PATH — open Terminal and edit your shell profile:
# For zsh (default on modern macOS):
echo 'export PATH="$HOME/development/flutter/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

# Verify:
flutter --version

Step 2 — Install Android Studio

Android Studio is required even if you plan to use VS Code for writing code. It provides the Android SDK and emulator that Flutter needs.

  1. Download from developer.android.com/studio
  2. Run the installer — accept all defaults
  3. On first launch, complete the Setup Wizard:
    • Choose "Standard" installation
    • Accept all license agreements
    • Let it download the Android SDK components (~2-3 GB)
  4. After setup, install Flutter and Dart plugins:
    • File → Settings → Plugins (Windows) OR Android Studio → Preferences → Plugins (Mac)
    • Search "Flutter" → Install → it will also install Dart automatically
    • Restart Android Studio

Accept Android SDK Licenses

This step is commonly forgotten and causes errors later. In your terminal/command prompt:

flutter doctor --android-licenses

Type y and press Enter for each license prompt.

Step 3 — Create an Android Emulator

An emulator lets you test your app without a physical phone.

  1. Open Android Studio
  2. Click the Device Manager icon (phone icon in toolbar) OR go to Tools → Device Manager
  3. Click Create Device
  4. Choose a phone: select Pixel 7 (recommended — good screen size)
  5. Click Next → select a system image:
    • Choose API 34 (Android 14) — click Download if not installed
    • Wait for download to complete
  6. Click Next → Finish
  7. Click the ▶ Play button next to your new device to start the emulator
  8. Wait ~60 seconds for it to boot

Step 4 — Install VS Code + Flutter Extension

VS Code is the preferred editor for Flutter development — faster and lighter than Android Studio for daily coding.

  1. Download VS Code from code.visualstudio.com
  2. Install it
  3. Open VS Code → click Extensions icon (left sidebar) → search "Flutter"
  4. Install the Flutter extension by Dart Code — this also installs the Dart extension
  5. Restart VS Code

You now have two options for writing Flutter code — Android Studio or VS Code. Most developers use VS Code for writing code and only open Android Studio to manage emulators.

Step 5 — iOS Setup (macOS Only)

  1. Install Xcode from the Mac App Store (~7 GB — be patient)
  2. Open Xcode once to accept the license agreement
  3. Install command line tools:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch
  1. Install CocoaPods (Flutter uses this for iOS dependencies):
sudo gem install cocoapods
  1. Open Simulator: run open -a Simulator in Terminal

Step 6 — Run Flutter Doctor

Flutter has a built-in diagnostic tool that checks your entire setup and tells you exactly what is missing or misconfigured.

flutter doctor

You will see output like this:

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.x.x)
[✓] Android toolchain - develop for Android devices
[✓] Chrome - develop for the web
[!] Xcode - develop for iOS and macOS
    ✗ Xcode not installed; this is necessary for iOS development.
[✓] Android Studio (version 2024.x)
[✓] VS Code (version 1.x.x)
[✓] Connected device (1 available)

Every [✓] is good. Every [!] or [✗] tells you what to fix. Read each message carefully — Flutter doctor usually tells you exactly what command to run to fix the issue.

✅ Target State For Android development: Flutter, Android toolchain, Android Studio, VS Code all showing ✓. The Xcode entry can show ✗ on Windows — that is expected and fine.

Step 7 — Create and Run Your First Flutter App

Create a new project

# Navigate to where you want to create the project
cd C:\projects    # Windows
cd ~/projects      # macOS

# Create a new Flutter app
flutter create my_first_app

# Navigate into it
cd my_first_app

Run on emulator

Make sure your emulator is running (started in Step 3), then:

flutter run

Flutter will compile the app and launch it on your emulator. First build takes 2-3 minutes. Subsequent builds are much faster thanks to incremental compilation.

What you will see

The default Flutter counter app — a blue app bar, a counter showing 0, and a floating action button with a + icon. Tap the + button — the counter increments. That is your first running Flutter app.

Hot Reload — Flutter's superpower

With the app running, open lib/main.dart in VS Code. Find the line:

'You have pushed the button this many times:'

Change it to something like 'Button pressed count:' and save the file. The app updates instantly on the emulator — without restarting. This is Flutter's Hot Reload. It makes development dramatically faster.

Common Setup Problems and Fixes

Problem: "flutter is not recognized as a command"

Fix: The Flutter bin folder is not in your PATH. Repeat Step 1 path setup. Open a NEW terminal window after editing PATH — old windows don't pick up changes.

Problem: "Android SDK not found"

Fix: Open Android Studio → SDK Manager → note the SDK location path → run: flutter config --android-sdk [path]

Problem: "No connected devices"

Fix: Start your emulator first (Device Manager → press ▶). Wait for it to fully boot before running flutter run.

Problem: "Gradle build failed"

Fix: Run flutter clean then flutter run again. This clears the build cache and usually resolves Gradle issues.

Problem: licenses not accepted

Fix: Run flutter doctor --android-licenses and accept all.

Setup Checklist

  • ✅ Flutter SDK downloaded and extracted
  • ✅ Flutter bin added to PATH
  • ✅ flutter --version works in terminal
  • ✅ Android Studio installed with Flutter + Dart plugins
  • ✅ Android SDK licenses accepted
  • ✅ Android emulator created and starts successfully
  • ✅ VS Code installed with Flutter extension
  • ✅ flutter doctor shows no critical errors
  • ✅ Counter app runs on emulator with flutter run
  • ✅ Hot reload works — save file, see instant update