Bird
Raised Fist0
Fluttermobile~20 mins

First Flutter app (Hello World) - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Flutter Hello World Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ ui_behavior
intermediate
2:00remaining
What will this Flutter app display?
Look at this Flutter code. What text will appear in the center of the screen when you run this app?
Flutter
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(
        body: Center(
          child: Text('Hello Flutter!'),
        ),
      ),
    );
  }
}
AHello Flutter!
BHello World!
CMaterialApp
DCenter
Attempts:
2 left
💡 Hint
Look at the Text widget inside Center. It shows the exact string displayed.
📝 Syntax
intermediate
2:00remaining
Which option fixes the syntax error in this Flutter code?
This Flutter code has a syntax error. Which option fixes it so the app runs and shows 'Hello World!'?
Flutter
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: Text('Hello World!'),
          widthFactor: 2.0,
        ),
      ),
    );
  }
}
AAdd a semicolon after class MyApp extends StatelessWidget
BRemove the parentheses after runApp
CChange StatelessWidget to StatefulWidget
DAdd a comma after Text('Hello World!')
Attempts:
2 left
💡 Hint
Check commas after widgets inside widget trees.
❓ lifecycle
advanced
2:00remaining
What happens if you replace StatelessWidget with StatefulWidget in this app?
If you change MyApp to extend StatefulWidget but keep the same build method, what will happen when you run the app?
Flutter
import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

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

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Scaffold(
        body: Center(
          child: Text('Hello World!'),
        ),
      ),
    );
  }
}
AThe app crashes because StatefulWidget needs initState method
BThe app shows a blank screen
CThe app runs normally and shows 'Hello World!'
DThe app shows an error about missing build method
Attempts:
2 left
💡 Hint
StatefulWidget requires a State class with build method.
❓ navigation
advanced
2:00remaining
What happens when you add Navigator.push to this Flutter app?
This app has a button that pushes a new screen. What will the user see after tapping the button?
Flutter
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(
      home: Scaffold(
        body: Center(
          child: ElevatedButton(
            child: const Text('Go'),
            onPressed: () {
              Navigator.push(
                context,
                MaterialPageRoute(builder: (context) => const SecondScreen()),
              );
            },
          ),
        ),
      ),
    );
  }
}

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Text('Second Screen'),
      ),
    );
  }
}
ANothing happens when the button is tapped
BThe app navigates to a new screen showing 'Second Screen'
CThe app closes when the button is tapped
DThe app shows an error about Navigator
Attempts:
2 left
💡 Hint
Navigator.push adds a new screen on top of the current one.
🔧 Debug
expert
2:00remaining
Why does this Flutter app throw a runtime error?
This Flutter app throws an error when run. What is the cause?
Flutter
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(
      home: Scaffold(
        body: Center(
          child: Text('Hello World!'),
        ),
      ),
    );
  }
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container();
  }
}
AThere are two classes named MyApp causing a duplicate class error
BThe Text widget is missing a required style parameter
CMaterialApp cannot be used inside a StatelessWidget
DScaffold requires an AppBar widget to run
Attempts:
2 left
💡 Hint
Check if any class names are repeated in the code.

Practice

(1/5)
1. What is the main function used to start a Flutter app?
easy
A. startApp()
B. runApp()
C. beginApp()
D. launchApp()

Solution

  1. Step 1: Identify the Flutter app entry point

    Flutter apps always start by calling the runApp() function to load the widget tree.
  2. Step 2: Confirm the correct function name

    The function runApp() is the official way to start the app and display widgets on screen.
  3. Final Answer:

    runApp() -> Option B
  4. Quick Check:

    App start function = runApp() [OK]
Hint: Remember Flutter apps always start with runApp() [OK]
Common Mistakes:
  • Using startApp() instead of runApp()
  • Confusing with main() function
  • Trying to use launchApp()
2. Which of the following is the correct way to display the text 'Hello World' centered on the screen in Flutter?
easy
A. Center(Text('Hello World'))
B. Text('Hello World').center()
C. Center(child: Text('Hello World'))
D. Text.center('Hello World')

Solution

  1. Step 1: Understand widget nesting in Flutter

    Widgets are nested by passing child widgets as parameters, so Center(child: Text('Hello World')) is correct.
  2. Step 2: Check syntax correctness

    Options A, B and C are invalid: A misses the named parameter 'child', B and C use invalid methods.
  3. Final Answer:

    Center(child: Text('Hello World')) -> Option C
  4. Quick Check:

    Center widget uses child: Text(...) [OK]
Hint: Use Center(child: Text('...')) to center text [OK]
Common Mistakes:
  • Omitting 'child:' label
  • Using invalid method calls on Text
  • Trying to call center() on Text widget
3. What will be displayed on the screen when running this Flutter code?
void main() {
  runApp(MaterialApp(
    home: Scaffold(
      body: Center(
        child: Text('Hello Flutter'),
      ),
    ),
  ));
}
medium
A. Centered text 'Hello Flutter'
B. A blank screen
C. An error message
D. Text 'Hello Flutter' aligned to top-left

Solution

  1. Step 1: Analyze widget tree structure

    The MaterialApp provides app structure, Scaffold gives a page layout, Center centers its child, and Text shows the string.
  2. Step 2: Determine the visible output

    The Text widget with 'Hello Flutter' is centered on the screen inside Scaffold's body.
  3. Final Answer:

    Centered text 'Hello Flutter' -> Option A
  4. Quick Check:

    Center widget centers Text = centered text [OK]
Hint: Center widget centers its child widget on screen [OK]
Common Mistakes:
  • Thinking Scaffold body is empty
  • Assuming default alignment is top-left
  • Expecting error without syntax issues
4. Identify the error in this Flutter code snippet:
void main() {
  runApp(MaterialApp(
    home: Scaffold(
      body: Center(
        child: Text('Hello World')
      ),
    ),
  ));
}
medium
A. No error, code is correct
B. Missing semicolon after Text widget
C. Missing closing parenthesis for Center widget
D. Missing comma after Text widget

Solution

  1. Step 1: Check widget parameter separators

    In Flutter, Center has only one named parameter (child: Text(...)); no comma is needed after a single parameter.
  2. Step 2: Verify parentheses and semicolons

    Parentheses are balanced and semicolons are correctly placed after runApp call. Code runs fine.
  3. Final Answer:

    No error, code is correct -> Option A
  4. Quick Check:

    Single named param needs no trailing comma [OK]
Hint: No comma needed for single widget param [OK]
Common Mistakes:
  • Thinking comma is required after single child
  • Confusing semicolon with comma
  • Ignoring Dart's flexible comma syntax
5. You want to create a Flutter app that shows 'Hello World' in the center with a blue background. Which code snippet correctly achieves this?
hard
A. runApp(MaterialApp(home: Scaffold(body: Center(child: Text('Hello World'))), backgroundColor: Colors.blue)));
B. runApp(MaterialApp(home: Scaffold(body: Center(child: Text('Hello World')), backgroundColor: Colors.blueAccent)));
C. runApp(MaterialApp(home: Scaffold(body: Center(child: Text('Hello World')), backgroundColor: Colors.blueGrey)));
D. runApp(MaterialApp(home: Scaffold(backgroundColor: Colors.blue, body: Center(child: Text('Hello World')))));

Solution

  1. Step 1: Understand Scaffold background color property

    Scaffold uses backgroundColor property to set the screen background color. It must be inside Scaffold's constructor.
  2. Step 2: Check correct color usage

    runApp(MaterialApp(home: Scaffold(backgroundColor: Colors.blue, body: Center(child: Text('Hello World'))))); correctly uses Colors.blue inside Scaffold. A places backgroundColor on MaterialApp (invalid). C uses blueGrey (greyish), D uses blueAccent (bright accent).
  3. Final Answer:

    runApp(MaterialApp(home: Scaffold(backgroundColor: Colors.blue, body: Center(child: Text('Hello World'))))); -> Option D
  4. Quick Check:

    Scaffold backgroundColor = Colors.blue [OK]
Hint: Set backgroundColor inside Scaffold, not MaterialApp [OK]
Common Mistakes:
  • Putting backgroundColor in MaterialApp
  • Using invalid color names
  • Forgetting to wrap Text in Center
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard