Mobile Development Lab Setup

Chapter 11
11 min read
22 reads

What we're building: A development environment where you can write mobile apps using Dart/Flutter code on your Windows PC and run it on an Android device or emulator (and optionally iOS via a Mac build machine).

Who this is for: Developers setting up a brand-new Windows 11 machine for Flutter mobile development.

Time estimate: 2–3 hours, mostly waiting for downloads.

Part 1: The Foundation Layer (Framework-Agnostic Tools)

These tools are not Flutter-specific. You would install them regardless of whether you chose React Native, Kotlin, or any other development stack.

1. Git

What it is: A version control system.

Why you need it: Flutter's SDK itself is distributed as a Git repository, and the flutter upgrade command runs git pull under the hood. Beyond that, every real project uses Git to track changes, collaborate, and deploy.

Download:

git-scm.com

During installation, choose these options:

  • "Use Git from the Windows Command line and also from 3rd-party software" — this adds Git to your PATH so any terminal can find it.
  • "Use bundled OpenSSH" — saves you from installing a separate SSH client.

Verify the install:

git --version
# Expected: git version 2.x.x

2. A Package Manager: Chocolatey or Winget

What it is: A command-line tool that installs and updates software automatically.

Why you need it: Without a package manager, you manually download installers, click through wizards, and remember to update each tool separately. A package manager handles all of that with one command.

Framework-agnostic? Completely. Node.js developers, Python developers, and .NET developers all benefit from this equally.

Winget ships with Windows 11 by default (check with winget --version). For this guide we'll use Chocolatey since it has broader package coverage for developer tools.

Open PowerShell as Administrator and run:

Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Verify:

choco --version

3. Visual Studio Code (VS Code)

What it is: A lightweight, extensible code editor from Microsoft.

Why you need it: You need somewhere to write code. VS Code is the most popular choice for Flutter because Dart and Flutter have first-class official extensions for it. It handles syntax highlighting, error detection, code completion, and debugging.

Framework-agnostic? Yes. VS Code is used by JavaScript, Python, Go, Rust, and virtually every other developer community.

choco install vscode -y

Or download directly from code.visualstudio.com.

4. Windows Terminal

What it is: Microsoft's modern terminal application that supports multiple tabs and shells (PowerShell, Command Prompt, Git Bash).

Why you need it: You'll run Flutter commands constantly. The default Command Prompt is painful — no tabs, no color support, poor copy-paste. Windows Terminal is dramatically better.

Framework-agnostic? Yes.

choco install microsoft-windows-terminal -y

Or install it from the Microsoft Store.

Part 2: The Java Layer

This section surprises many newcomers: Android development — regardless of framework — requires Java.

5. Java Development Kit (JDK)

What it is: A runtime and compiler for the Java programming language.

Why you need it: The Android build system (Gradle) is written in Java and runs on the JVM (Java Virtual Machine). When you build your Flutter app for Android, Gradle compiles and packages it. Without the JDK, Gradle has nothing to run on.

Framework-agnostic? Yes. React Native, Xamarin, and Kotlin/Java Android development all require the JDK for the same reason.

Which version? Use JDK 17 (LTS). Android's tooling has historically been fussy about Java versions — JDK 17 is the current sweet spot that Android Studio and Gradle both support well.

choco install temurin17 -y

This installs Eclipse Temurin, the open-source OpenJDK distribution. Verify:

java -version
# Expected: openjdk version "17.x.x"

You also need to set JAVA_HOME. Open System Properties → Advanced → Environment Variables, create a new System variable:

  • Variable name: JAVA_HOME

Variable...

Want to support this author?

By unlocking the full story, you directly support local writers. You'll also be able to track your reads, and discover amazing content!

Mobile Development Lab Setup - SELF TAUGHT COMPUTER SCIENCE | Soma