"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:
Step 1 — Install the Flutter SDK
Windows
- Go to flutter.dev/docs/get-started/install/windows
- Download the latest Flutter SDK zip file (approx. 1.2 GB)
- Extract to
C:\flutter— do NOT extract toC:\Program Files\(requires admin permissions that cause issues) - 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
- Open a new Command Prompt and verify:
flutter --version
Expected output: something like Flutter 3.x.x • channel stable
macOS
- Download the Flutter SDK from flutter.dev — choose the ARM version if you have an M1/M2/M3 Mac
- Extract to your home directory:
~/development/flutter - 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.
- Download from developer.android.com/studio
- Run the installer — accept all defaults
- On first launch, complete the Setup Wizard:
- Choose "Standard" installation
- Accept all license agreements
- Let it download the Android SDK components (~2-3 GB)
- 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.
- Open Android Studio
- Click the Device Manager icon (phone icon in toolbar) OR go to Tools → Device Manager
- Click Create Device
- Choose a phone: select Pixel 7 (recommended — good screen size)
- Click Next → select a system image:
- Choose API 34 (Android 14) — click Download if not installed
- Wait for download to complete
- Click Next → Finish
- Click the ▶ Play button next to your new device to start the emulator
- 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.
- Download VS Code from code.visualstudio.com
- Install it
- Open VS Code → click Extensions icon (left sidebar) → search "Flutter"
- Install the Flutter extension by Dart Code — this also installs the Dart extension
- 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)
- Install Xcode from the Mac App Store (~7 GB — be patient)
- Open Xcode once to accept the license agreement
- Install command line tools:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch
- Install CocoaPods (Flutter uses this for iOS dependencies):
sudo gem install cocoapods
- Open Simulator: run
open -a Simulatorin 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.
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 --versionworks 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 doctorshows no critical errors - ✅ Counter app runs on emulator with
flutter run - ✅ Hot reload works — save file, see instant update