Flutter with VS Code – Roadmap

learn Flutter with VS Code, step by step like a full course. I’ll guide you from installation → Hello World → real projects.


Flutter with VS Code – Roadmap

Step 1: Setup

  1. Install Flutter SDKDownload
  2. Add Flutter to PATH. flutter doctor → This checks setup.
  3. Install VS CodeDownload
  4. Install VS Code extensions:
    • Flutter
    • Dart

Now you can create and run apps.


Step 2: Create Your First Project

In VS Code terminal:

flutter create hello_world
cd hello_world
code .

Run on device/emulator:

flutter run

Step 3: Hello World App

Edit lib/main.dart:

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(title: const Text("Flutter in VS Code")),
        body: const Center(
          child: Text(
            "Hello World ",
            style: TextStyle(fontSize: 28, fontWeight: FontWeight.bold),
          ),
        ),
      ),
    );
  }
}

Run → You’ll see Hello World .


Step 4: Learn Flutter Widgets

Widgets = building blocks of Flutter.

  • Text, Container, Row, Column → UI basics.
  • ListView, GridView → scrollable views.
  • Scaffold → page layout.

Step 5: Navigation

Switch between pages using:

Navigator.push(
  context,
  MaterialPageRoute(builder: (context) => SecondPage()),
);

Step 6: State Management

  • Beginner: setState()
  • Intermediate: Provider
  • Advanced: Riverpod / Bloc

Step 7: APIs & Storage

  • Fetch data using http package.
  • Save data with SharedPreferences or local DB (sqflite, hive).

Step 8: Firebase & Deployment

  • Firebase Auth, Firestore, Push Notifications.
  • Publish to Play Store / App Store.

Understanding Flutter Project Structure

when you run flutter create project_name, Flutter creates a big folder structure that can feel overwhelming at first. Don’t worry , we’ll go from basics and I’ll explain which files are important, and we’ll build step by step in VS Code.


Step 1: Understanding Flutter Project Structure

When you create a project (flutter create hello_world), you’ll see folders like:

hello_world/
 ├── android/        # Native Android code (Java/Kotlin)
 ├── ios/            # Native iOS code (Swift/Obj-C)
 ├── web/            # For web apps
 ├── lib/            # Your main Flutter code (MOST IMPORTANT )
 ├── test/           # For writing tests
 ├── pubspec.yaml    # Project settings + dependencies
 └── README.md

As a beginner, you mostly work in lib/ and pubspec.yaml.
The rest is handled automatically by Flutter.


Step 2: The Important File – lib/main.dart

This is where your app starts.
Inside you’ll see something like:

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}
  • main() → starting point of every Dart program.
  • runApp() → tells Flutter to draw your app on the screen.
  • MyApp → root widget of your app.

Step 3: Simplest Hello World App

Let’s make the minimum code (ignore all other files for now):

import 'package:flutter/material.dart';

void main() {
  runApp(
    const Center(
      child: Text(
        'Hello World ',
        textDirection: TextDirection.ltr,
      ),
    ),
  );
}

This is the most basic Flutter app:

  • Center → places text in the center.
  • Text → displays “Hello World “.
  • textDirection → required in raw Flutter apps.

If you run this, you’ll see only Hello World on screen.


Step 4: Using MaterialApp (For Modern Apps)

Usually, we wrap the app inside MaterialApp for Android-like look:

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text("My First App")),
        body: Center(
          child: Text(
            "Hello Flutter ",
            style: TextStyle(fontSize: 28, fontWeight: FontWeight.bold),
          ),
        ),
      ),
    );
  }
}

Step 5: What You Should Focus On First

  1. lib/main.dart → write your UI here.
  2. Widgets (Text, Container, Row, Column, Image, Button).
  3. pubspec.yaml → to add dependencies (like http, firebase, etc).

start with Flutter setup + a Hello World app using VS Code

Install Flutter SDK & VS Code

VS Code + Flutter is lightweight and very beginner-friendly.
Let’s go step by step


Step 1: Install Flutter SDK

  1. Go to Flutter install page.
  2. Download Flutter SDK for your OS (Windows/Mac/Linux).
  3. Extract it somewhere safe, e.g.
    • Windows: C:\src\flutter
    • Mac/Linux: ~/flutter

Step 2: Add Flutter to PATH

So you can run flutter command from any terminal:

  • Windows (PowerShell): setx PATH "%PATH%;C:\src\flutter\bin"
  • Mac/Linux (bash/zsh): export PATH="$PATH:$HOME/flutter/bin"

Check with:

flutter doctor

This shows if anything is missing (like Android SDK).


Step 3: Install VS Code + Extensions

  1. Download Visual Studio Code.
  2. Open Extensions Marketplace (left toolbar).
    • Install Flutter extension.
    • It will also ask to install Dart → accept.

Step 4: Set Up Device to Run

You have 2 options:
Android Emulator

  • Install Android Studio.
  • In Android Studio → AVD Manager → create a virtual device.
  • Start the emulator before running Flutter apps.

Real Android Device

  • Enable Developer ModeUSB Debugging.
  • Connect phone via USB.
  • Run flutter devices → should show your phone.

Step 5: Create New Flutter Project

In VS Code terminal:

flutter create hello_world
cd hello_world
code .

This opens your new project in VS Code.


Step 6: Write Hello World

Open lib/main.dart → replace code with:

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(
          title: const Text("My First Flutter App"),
        ),
        body: const Center(
          child: Text(
            "Hello World ",
            style: TextStyle(fontSize: 28, fontWeight: FontWeight.bold),
          ),
        ),
      ),
    );
  }
}

Step 7: Run the App

  • Open VS Code Terminal → run: flutter run
  • Or press F5 (Run & Debug).
  • You should see Hello World on your emulator/phone.

Flutter Learning Roadmap

Flutter Learning Roadmap

1. Setup & Basics

2. Widgets (Building Blocks of UI)

  • Stateless vs Stateful widgets.
  • Common widgets: Text, Container, Row, Column, Stack, ListView.
  • Styling with Padding, Margin, Colors, Borders.

3. Layouts & Navigation

  • How layouts work in Flutter.
  • Navigation: Navigator.push & Navigator.pop.
  • Passing data between screens.

4. State Management

  • setState() (basic state).
  • Provider (recommended for medium apps).
  • Riverpod / BLoC (advanced).

5. Networking & APIs

  • Fetching data using http package.
  • JSON parsing.
  • Displaying API results in ListView.

6. Database & Storage

  • Local storage with SharedPreferences.
  • Database with SQFlite or Hive.
  • File handling.

7. Advanced Topics

  • Firebase (Authentication, Firestore, Push Notifications).
  • Animations & Custom UI.
  • Publishing app on Play Store & App Store.