HackIndia Logo
HackathonsNewsSkillsGrowth
HackIndia LogoContact: +91 9910125804

General

  • Companies
  • Colleges
  • Board of Advisors
  • Brand Ambassadors
  • FAQ
  • Contact
  • Report a Bug

Hackathons

  • Upcoming Hackathons
  • Judges
  • Mentors
  • Partners
  • Participating Colleges
  • Testimonials

Resources

  • About Us
  • Branding
  • Latest News
  • Growth
  • Skills
  • Builders
  • Ecosystem
  • Forum
  • Ideas
  • Prompt Optimizer
  • Games

© 2026 HackIndia. All rights reserved.

Privacy PolicyTerms of ServiceCode of ConductSitemap

Build 2.139 · 05 Nov 2026, 10:27 UTC

    HackIndia
    HackathonsNewsInternshipsSkillsGrowthPro Perks
    FlutterWorking towardsFlutter
    0%

    0 of 9 steps done · +100 XP · +50 SHARP when it is yours

    1. 1Create your first Flutter screen5 min · +10 XP · +5 SHARP
    2. 2Use stateless and stateful widgets4 min · +10 XP · +5 SHARP
    3. 3Move between app screens4 min · +10 XP · +5 SHARP
    4. 4Fetch API data safely5 min · +10 XP · +5 SHARP
    5. 5Store data on the device4 min · +10 XP · +5 SHARP
    6. 6Prepare a phone demo build4 min · +10 XP · +5 SHARP
    7. 7Submit your public repo4 min · +10 XP · +5 SHARP
    8. The check10 questions, 7 to pass · +10 SHARP
    9. Hand in the taskA project that uses the skill
    10. Skill and certificate+100 XP · +50 SHARP
    Lesson 1 of 7 5 min

    Flutter

    Create your first Flutter screen

    • +10 XP for this lesson
    • +100 XP when the skill is proved
    • Nobody here has proved it yet
    In 30 seconds
    • Create a new Flutter app and run it on a device or emulator.
    • Replace the starter counter with your own first screen.
    Understand that Flutter screens are built by composing widgets.

    Start simple

    Your first goal is not a full app. It is one clean screen that opens on Android and looks like something you chose, not the default counter app.

    Flutter builds UI with widgets. Text is a widget. Padding is a widget. A Column is a widget. You combine small widgets to make a screen.

    Key point

    Remember this

    A Flutter screen is a tree of widgets. Your main job is to write a build() method that describes what should appear on the screen.

    Some widgets take one child. Others take many children. Center has child. Column has children.

    Your to-do

    Create the app

    Do each one yourself, then tap it to tick it off. The ticks are only a checklist for you: they are not marked or scored.

    0 of 5 done

    flutter doctor
    flutter create first_flutter_screen
    cd first_flutter_screen
    flutter devices
    flutter run
    Example

    Replace main.dart

    Open lib/main.dart. Replace everything with this screen.

    This example is a simple campus food finder landing screen. Change the text to your own app idea, such as notes, hostel complaints, event tracker, or UPI expense log.

    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,
          title: 'Campus Bites',
          home: Scaffold(
            appBar: AppBar(
              title: const Text('Campus Bites'),
            ),
            body: Padding(
              padding: const EdgeInsets.all(20),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: const [
                  Text(
                    'Find affordable food near campus',
                    style: TextStyle(fontSize: 26, fontWeight: FontWeight.bold),
                  ),
                  SizedBox(height: 12),
                  Text(
                    'Track canteen items, prices, and favourites in one place.',
                    style: TextStyle(fontSize: 16),
                  ),
                  SizedBox(height: 24),
                  Text('Today\'s plan'),
                  SizedBox(height: 8),
                  Text('1. Browse nearby stalls'),
                  Text('2. Compare prices in rupees'),
                  Text('3. Save your favourite meals'),
                ],
              ),
            ),
          ),
        );
      }
    }
    Tip

    Use AI carefully

    You can ask an AI tool to suggest a cleaner first screen. Give it your app idea and ask for only lib/main.dart code.

    Check three things before pasting: it imports material.dart, it has void main(), and it uses widgets you can roughly explain. Do not accept a huge file you cannot read.

    Common mistake

    Common mistake

    Do not edit random Android files to change the first screen. For now, most of your UI work happens in lib/main.dart.

    Also avoid adding API calls, storage, login, or navigation today. Those come later. A working first screen is enough proof for lesson 1.

    Check your result

    Run the app again after saving. If Flutter is already running, press r in the terminal for hot reload. If that does not work, stop and run flutter run again.

    Your screen should show your app name, one clear headline, and a short list of what the app will do. This is the seed of your final public repo.

    flutter run
    Your to-do

    Do this now

    Do each one yourself, then tap it to tick it off. The ticks are only a checklist for you: they are not marked or scored.

    0 of 5 done

    Sources

    Checked against the current documentation on 21 September 2026.

    • Building user interfaces with Flutter · docs.flutter.dev
    • Layouts in Flutter · docs.flutter.dev
    • Create a new Flutter app · docs.flutter.dev
    • flutter: The Flutter command-line tool · docs.flutter.dev

    Quick check

    0 of 2 right
    1.You want three text lines stacked vertically. Which widget property should you use in a Column?
    2.Where should you edit the first Flutter screen in this lesson?

    Answer the quick check to finish this lesson.

    Skip to lesson 2 →
    Flutter
    Working towards
    Flutter +100 XP

    0 of 7 lessons done · proved by a project that uses the skill

    See the track