How to Install Flutter: Complete Setup Guide
Install Flutter on Windows, macOS, or Linux; choose a first target, configure your editor and platform tooling, run Flutter Doctor, and launch a real app.
Install the stable Flutter SDK, add its bin folder to your PATH, and run flutter doctor -v. Then set up only the target you need: a browser for the fastest web start, Android Studio for Android, or Xcode on macOS for iOS. Finish by creating and running a small app with flutter create and flutter run.
What you need
- A supported Windows, macOS, Linux, or ChromeOS (Linux) computer.
- A user-owned development folder for the SDK and projects—do not install an SDK inside a project repository.
- Enough free storage for the Flutter SDK and the platform tools you actually intend to use; Android Studio and Xcode add substantial space requirements.
- An editor with Flutter and Dart support, such as VS Code or Android Studio.
- A terminal you can completely close and reopen after changing PATH.
Choose your first target before installing extra tools
| What you want to run | Where you can develop | Extra tooling after Flutter |
|---|---|---|
| Web app | Windows, macOS, or Linux | A supported browser. This is the quickest first target. |
| Android app | Windows, macOS, or Linux | Android Studio, Android SDK, an emulator or a USB-debuggable device. |
| iPhone or iPad app | macOS only | Xcode and its command-line components; a physical device needs Apple signing. |
| Windows desktop app | Windows only | Visual Studio (not VS Code) with Desktop development with C++. |
| macOS desktop app | macOS only | Xcode; CocoaPods may be needed by plugins with native code. |
| Linux desktop app | Linux only | Your distribution's desktop build dependencies. |
Install Flutter for your operating system
- 01
Install Git
Install the current Git for Windows release if it is not already available. Flutter tooling uses Git when it updates SDK components.
- 02
Download and extract Flutter
Download the stable Windows Flutter SDK bundle from the official install page. Extract it to a directory you own, such as C:\Users\your-name\develop\flutter. Avoid Program Files and folders that require administrator permission.
- 03
Add Flutter to Path
Add the SDK's bin directory—not just the SDK folder—to your user Path environment variable. For the example above, add C:\Users\your-name\develop\flutter\bin. Close every terminal and restart your editor after saving.
flutter --version
dart --version
where.exe flutter
flutter doctor -vSet up your editor before creating a project
Flutter brings Dart with it, but your editor needs Flutter and Dart language support to provide code completion, debugging, widget inspection, hot reload controls, and device selection. VS Code is a fast default; Android Studio is useful when you also need Android SDK and emulator management.
- 01
Install the Flutter extension
Open Extensions, find the official Flutter extension, and install it. It also installs the Dart extension when needed.
- 02
Point it at the correct SDK if prompted
If VS Code cannot find Flutter automatically, choose the extracted SDK directory—not its bin directory—when it asks for the Flutter SDK path.
- 03
Restart VS Code
Restarting ensures the editor receives the updated PATH and discovers the Dart analysis server cleanly.
Flutter: New Project
Flutter: Select Device
Dart: Restart Analysis ServerConfigure the platforms you will build for
Android Studio and Android devices
Install Android Studio, then use SDK Manager to install the Android SDK components it recommends. In Device Manager, create an emulator with a system image, or connect a physical Android phone after enabling developer options and USB debugging. On Windows, a physical device may also need its manufacturer's USB driver.
flutter doctor --android-licenses
flutter emulators
flutter devicesXcode and iOS
On macOS, install Xcode from Apple, open it once to accept its license and install components, then select it for command-line tools. Start an iOS Simulator from Xcode or connect a device. You need macOS and Xcode to build or run iOS applications; a physical device also needs Apple signing configured in the project.
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch
flutter doctor -vWeb
For a quick first run, use a supported browser. Flutter normally discovers Chrome or another supported browser automatically. You do not need Android Studio or Xcode to learn the Flutter workflow on the web.
flutter devices
flutter run -d chromeDesktop
Desktop development requires a platform-specific native toolchain: Visual Studio with the Desktop development with C++ workload on Windows, Xcode on macOS, and distribution-specific build tools on Linux. Use the official desktop setup guide for the exact requirements of your target operating system.
Verify the installation with Flutter Doctor
Flutter Doctor inspects the SDK, editor integrations, and platform toolchains it can detect. Read its output by target: the Flutter SDK must be healthy, but a warning only blocks the platform named by that warning. Re-run Doctor after every toolchain change rather than guessing whether a change worked.
flutter doctor -vA useful first-pass result
- flutter --version and dart --version report versions from the SDK you installed.
- Flutter Doctor detects the SDK from the expected location.
- Your chosen editor integration is found, if you installed one.
- Android tooling is ready only if you plan to build Android apps.
- Xcode is ready only if you plan to build iOS or macOS apps.
- At least one device, emulator, or browser is available for the first run.
Create, run, and change your first Flutter app
A green Doctor result proves the environment is available; a running app proves your project, device, editor, and hot-reload loop work together. Create the project outside the Flutter SDK directory.
mkdir -p ~/projects
cd ~/projects
flutter create hello_flutter
cd hello_flutter
flutter devices
flutter run- 01
Select a device when Flutter asks
Choose Chrome for a quick web run, an open Android emulator, an iOS Simulator on macOS, or a connected device. You can make the target explicit with flutter run -d <device-id>.
- 02
Change one visible string
Open lib/main.dart and edit a line of text in the starter application. Save the file while flutter run is active.
- 03
Use hot reload, then hot restart deliberately
Press r in the running terminal for hot reload when changing widget code. Press R for hot restart when you need to rebuild application state from the beginning.
- 04
Stop cleanly
Press q or Ctrl+C in the terminal when you are finished. The project remains ready for the next flutter run.
flutter analyze
flutter test
flutter run -d chrome
flutter run -d <device-id>
flutter clean # only when a stale build artifact is the likely causeA dependable daily Flutter workflow
- From the project root, run flutter pub get after cloning a project or changing pubspec.yaml.
- Use flutter analyze before treating an editor warning as resolved.
- Run flutter test for the tests that apply to the change before building a release.
- Use flutter devices before blaming your code when an emulator or phone is not selectable.
- Use flutter doctor -v when a platform toolchain changes or a previously available target disappears.
- Update intentionally with flutter upgrade on the stable channel, then read breaking-change notes before upgrading production projects.
Common problems
| Symptom | What to check | Useful next step |
|---|---|---|
| flutter: command not found | The SDK bin directory is missing from PATH, an old terminal is still open, or another SDK wins on PATH. | Open a fresh terminal, run where.exe flutter on Windows or which flutter on macOS/Linux, then fix the path order. |
| Flutter extension cannot find the SDK | The editor may have started before PATH changed or has been pointed at the bin folder instead of the SDK root. | Restart the editor and select the Flutter SDK directory that contains bin. |
| Android licenses not accepted | Android Studio and a compatible SDK must be installed before Flutter can present every license. | Install the Android SDK components, run flutter doctor --android-licenses, accept the prompts, then run flutter doctor -v. |
| No devices found | An emulator is not booted, USB debugging is off, the phone is not authorized, or the browser target is unavailable. | Run flutter devices; start an emulator or reconnect and authorize the device before trying flutter run again. |
| Xcode warning on macOS | Xcode may not be installed, opened, licensed, or selected for command-line tools. | Complete Xcode first-run setup, run xcode-select and xcodebuild setup commands, then run flutter doctor again. |
| Build works on web but not mobile | Web does not require Android or iOS native tooling; the mobile toolchain is separate. | Read the Android or iOS section of flutter doctor -v and install only the missing platform component. |
| Gradle, CocoaPods, or dependency error | A project dependency or native build cache may be stale; this is usually not a Flutter SDK installation issue. | Read the first error, run flutter pub get, and use flutter clean only if generated build state is implicated. |
Frequently asked questions
What is the fastest way to try Flutter?
Install the stable SDK with VS Code or manually, run flutter doctor -v, then create an app and run it in a supported browser. Web usually needs less platform setup than Android or iOS.
Do I need Android Studio to use Flutter?
No. You can write Flutter in VS Code or another supported editor. Android Studio is still the usual way to install and manage the Android SDK and emulator tooling for Android development.
Do I need a Mac to build iOS apps?
Yes. iOS builds require macOS and Xcode. You can still develop Flutter apps for Android, web, Windows, or Linux from their respective supported operating systems.
Should I install Flutter with a package manager?
Use the installation method you can maintain confidently. Flutter's official setup offers editor-assisted and manual SDK installation paths. Whichever method you choose, confirm that flutter --version and dart --version point to one intended SDK.
Why does Flutter Doctor show warnings after Flutter itself is installed?
Doctor checks every target it can detect. The Flutter SDK must be healthy, but an Android, iOS, or desktop warning only blocks that specific target. Fix it when you plan to build for that platform.
How do I update Flutter safely?
Commit or stash project changes first, run flutter upgrade from the SDK's stable channel, then run flutter doctor -v and your project's flutter analyze and flutter test commands. Review Flutter's breaking changes before upgrading a production project.