Bird
Raised Fist0
Fluttermobile~15 mins

Android build configuration in Flutter - Mini App: Build & Ship

Choose your learning style10 modes available
Build: Build Configuration Info
This screen shows basic Android build configuration details for a Flutter app.
Target UI
-------------------------
| Build Configuration   |
|-----------------------|
| App Name: MyApp       |
| Version: 1.0.0        |
| Build Type: debug     |
| Min SDK: 21           |
| Target SDK: 33        |
|-----------------------|
Display app name, version, build type, min SDK, and target SDK
Use a Column with Text widgets for each detail
Add a title at the top with larger font
Use padding around the content for spacing
Starter Code
Flutter
import 'package:flutter/material.dart';

class BuildConfigScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Build Configuration'),
      ),
      body: Padding(
        padding: EdgeInsets.all(16),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            // TODO: Add title text here
            // TODO: Add build info texts here
          ],
        ),
      ),
    );
  }
}
Task 1
Task 2
Task 3
Solution
Flutter
import 'package:flutter/material.dart';

class BuildConfigScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Build Configuration'),
      ),
      body: Padding(
        padding: EdgeInsets.all(16),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Text(
              'Build Configuration Details',
              style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
            ),
            SizedBox(height: 16),
            Text('App Name: MyApp'),
            SizedBox(height: 8),
            Text('Version: 1.0.0'),
            SizedBox(height: 8),
            Text('Build Type: debug'),
            SizedBox(height: 8),
            Text('Min SDK: 21'),
            SizedBox(height: 8),
            Text('Target SDK: 33'),
          ],
        ),
      ),
    );
  }
}

This screen uses a Scaffold with an AppBar titled 'Build Configuration'. Inside the body, a Padding widget adds space around the content. A Column arranges the text vertically, aligned to the start (left). The title text uses a larger font size and bold weight to stand out. Each build detail is shown in its own Text widget with vertical spacing using SizedBox for clarity and neat layout.

Final Result
Completed Screen
-------------------------
| Build Configuration   |
|-----------------------|
| Build Configuration   |
| Details               |
|                       |
| App Name: MyApp       |
|                       |
| Version: 1.0.0        |
|                       |
| Build Type: debug     |
|                       |
| Min SDK: 21           |
|                       |
| Target SDK: 33        |
-------------------------
User sees the build configuration details clearly listed
No interactive elements on this screen
Stretch Goal
Add a button to refresh and reload the build configuration details
💡 Hint
Use a FloatingActionButton with an onPressed callback that reloads the data (simulate with setState or rebuild)

Practice

(1/5)
1. What file do you edit to change the Android app ID in a Flutter project?
easy
A. android/gradle.properties
B. lib/main.dart
C. android/app/build.gradle
D. pubspec.yaml

Solution

  1. Step 1: Identify where Android app settings are configured

    The Android app ID is set in the Gradle build configuration files.
  2. Step 2: Locate the specific file for app-level settings

    The file android/app/build.gradle contains the app ID under the defaultConfig section.
  3. Final Answer:

    android/app/build.gradle -> Option C
  4. Quick Check:

    App ID set in build.gradle [OK]
Hint: App ID is in app-level build.gradle file [OK]
Common Mistakes:
  • Editing pubspec.yaml instead of build.gradle
  • Changing main.dart which is for Dart code
  • Modifying gradle.properties which is for Gradle settings
2. Which syntax correctly sets the minimum SDK version in android/app/build.gradle?
easy
A. minSdkVersion -> 21
B. minSdkVersion = 21
C. minSdkVersion: 21
D. minSdkVersion 21

Solution

  1. Step 1: Understand Gradle syntax for SDK versions

    Gradle uses simple assignment without equals or arrows for SDK versions.
  2. Step 2: Identify correct syntax

    The correct syntax is minSdkVersion 21 without equals or colon.
  3. Final Answer:

    minSdkVersion 21 -> Option D
  4. Quick Check:

    Gradle uses space, not = or : [OK]
Hint: Use space, not equals, for SDK versions in Gradle [OK]
Common Mistakes:
  • Using equals sign (=) which causes syntax error
  • Using colon (:) which is invalid in Gradle
  • Using arrow (->) which is not Gradle syntax
3. Given this snippet in android/app/build.gradle:
defaultConfig {
    applicationId "com.example.app"
    minSdkVersion 19
    targetSdkVersion 33
    versionCode 5
    versionName "1.0.4"
}
What is the app version name that will appear to users?
medium
A. "1.0.4"
B. "1.0.5"
C. "5"
D. "33"

Solution

  1. Step 1: Identify versionName in the configuration

    The versionName is set to "1.0.4" which is the user-visible version.
  2. Step 2: Differentiate versionCode and versionName

    versionCode is an internal number (5), not shown to users.
  3. Final Answer:

    "1.0.4" -> Option A
  4. Quick Check:

    versionName is user-visible version [OK]
Hint: versionName shows app version to users [OK]
Common Mistakes:
  • Confusing versionCode with versionName
  • Using targetSdkVersion as version
  • Ignoring quotes around versionName
4. You added minSdkVersion 21 in android/app/build.gradle but get a build error. What is the likely cause?
medium
A. You forgot to update compileSdkVersion to at least 21
B. minSdkVersion must be less than 21
C. You need to add quotes around 21
D. minSdkVersion is set in pubspec.yaml, not build.gradle

Solution

  1. Step 1: Understand SDK version dependencies

    The compileSdkVersion must be equal or higher than minSdkVersion.
  2. Step 2: Check build.gradle for compileSdkVersion

    If compileSdkVersion is lower than 21, build fails when minSdkVersion is 21.
  3. Final Answer:

    You forgot to update compileSdkVersion to at least 21 -> Option A
  4. Quick Check:

    compileSdkVersion ≥ minSdkVersion [OK]
Hint: compileSdkVersion must be ≥ minSdkVersion [OK]
Common Mistakes:
  • Thinking minSdkVersion must be less than 21
  • Adding quotes around numeric SDK versions
  • Trying to set minSdkVersion in pubspec.yaml
5. You want to create a new build type called staging in android/app/build.gradle that behaves like debug but with a different app ID suffix. Which snippet correctly adds this?
hard
A. buildTypes { staging { extends debug applicationIdSuffix ".staging" } }
B. buildTypes { staging { initWith debug applicationIdSuffix ".staging" } }
C. buildTypes { staging { copyFrom debug applicationIdSuffix ".staging" } }
D. buildTypes { staging { inherit debug applicationIdSuffix ".staging" } }

Solution

  1. Step 1: Recall Gradle syntax for copying build types

    Gradle uses initWith to copy settings from another build type.
  2. Step 2: Verify correct method and syntax

    initWith debug correctly copies debug settings; applicationIdSuffix ".staging" adds suffix.
  3. Final Answer:

    buildTypes { staging { initWith debug applicationIdSuffix ".staging" } } -> Option B
  4. Quick Check:

    Use initWith to copy build type [OK]
Hint: Use initWith to clone build types in Gradle [OK]
Common Mistakes:
  • Using extends or inherit which are invalid Gradle keywords
  • Trying copyFrom which does not exist
  • Not adding applicationIdSuffix properly
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