Bird
Raised Fist0
Android Kotlinmobile~10 mins

Text composable in Android Kotlin - Mini App: Build & Ship

Choose your learning style10 modes available
Build: Simple Text Screen
This screen shows a simple text message centered on the screen using Jetpack Compose Text composable.
Target UI
---------------------
|                   |
|                   |
|   Hello, Compose!  |
|                   |
|                   |
---------------------
Use Text composable to display the message 'Hello, Compose!'
Center the text horizontally and vertically on the screen
Use a font size of 24sp
Use a padding of 16dp around the text
Starter Code
Android Kotlin
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp

@Composable
fun SimpleTextScreen() {
    Box(
        modifier = Modifier.fillMaxSize(),
        contentAlignment = Alignment.Center
    ) {
        // TODO: Add Text composable here
    }
}
Task 1
Task 2
Task 3
Task 4
Solution
Android Kotlin
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp

@Composable
fun SimpleTextScreen() {
    Box(
        modifier = Modifier.fillMaxSize(),
        contentAlignment = Alignment.Center
    ) {
        Text(
            text = "Hello, Compose!",
            fontSize = 24.sp,
            modifier = Modifier.padding(16.dp)
        )
    }
}

We use a Box to fill the whole screen and center its content both horizontally and vertically using contentAlignment = Alignment.Center. Inside the Box, we add a Text composable with the string "Hello, Compose!". We set the font size to 24sp for clear visibility and add 16dp padding around the text to keep some space from edges. This creates a simple centered text screen using Jetpack Compose.

Final Result
Completed Screen
---------------------
|                   |
|                   |
|   Hello, Compose!  |
|                   |
|                   |
---------------------
The text 'Hello, Compose!' is displayed centered on the screen.
No interactive elements on this screen.
Stretch Goal
Change the text color to blue and make it bold.
💡 Hint
Use the color parameter with Color.Blue and style parameter with FontWeight.Bold in the Text composable.

Practice

(1/5)
1. What is the main purpose of the Text composable in Jetpack Compose?
easy
A. To display text on the screen
B. To create buttons
C. To handle user input
D. To manage app navigation

Solution

  1. Step 1: Understand the role of Text composable

    The Text composable is designed to show words or sentences visibly on the app screen.
  2. Step 2: Compare with other UI elements

    Buttons handle clicks, input fields take user input, and navigation manages screen changes, so these are not the Text composable's job.
  3. Final Answer:

    To display text on the screen -> Option A
  4. Quick Check:

    Text composable = display text [OK]
Hint: Text composable always shows text content [OK]
Common Mistakes:
  • Confusing Text with Button composable
  • Thinking Text handles user input
  • Assuming Text manages navigation
2. Which of the following is the correct syntax to display the text "Hello World" using the Text composable?
easy
A. Text: "Hello World"
B. Text(content = "Hello World")
C. Text("Hello World")
D. Text { "Hello World" }

Solution

  1. Step 1: Recall Text composable syntax

    The Text composable accepts the text content as the first positional parameter.
  2. Step 2: Check each option

    A uses invalid colon syntax. B correctly uses positional argument Text("Hello World"). C uses invalid content parameter. D uses lambda syntax which is incorrect for Text.
  3. Final Answer:

    Text("Hello World") -> Option C
  4. Quick Check:

    Text("string") = positional first arg [OK]
Hint: Use Text("your text") for simple display [OK]
Common Mistakes:
  • Using content= parameter name
  • Using colon instead of parentheses
  • Trying to pass text inside braces
3. What will be displayed on the screen when this code runs?
Text(text = "Welcome", fontSize = 24.sp, color = Color.Red)
medium
A. The word "Welcome" in default color and size
B. The word "Welcome" in red color with font size 24 sp
C. An error because fontSize is not a valid parameter
D. The word "Welcome" in blue color with font size 24 sp

Solution

  1. Step 1: Understand parameters used

    The fontSize parameter sets the text size, and color sets the text color. Both are valid for Text composable.
  2. Step 2: Analyze the values

    Font size is 24.sp (scaled pixels), color is Color.Red, so text appears red and sized 24 sp.
  3. Final Answer:

    The word "Welcome" in red color with font size 24 sp -> Option B
  4. Quick Check:

    fontSize and color change text appearance [OK]
Hint: fontSize and color change text look visibly [OK]
Common Mistakes:
  • Assuming default color is applied ignoring color param
  • Thinking fontSize is invalid
  • Confusing color values
4. Identify the error in this Text composable code:
Text(text = Hello World)
medium
A. fontSize parameter is required
B. Incorrect parameter name, should be content instead of text
C. Text composable cannot display multiple words
D. Missing quotes around the string "Hello World"

Solution

  1. Step 1: Check string syntax

    In Kotlin, string literals must be enclosed in double quotes. Here, "Hello World" is missing quotes.
  2. Step 2: Validate parameter name and requirements

    The parameter name text is correct. Text composable can display multiple words. fontSize is optional.
  3. Final Answer:

    Missing quotes around the string "Hello World" -> Option D
  4. Quick Check:

    Strings need quotes in Kotlin [OK]
Hint: Always put text strings inside double quotes [OK]
Common Mistakes:
  • Forgetting quotes around text
  • Using wrong parameter names
  • Thinking fontSize is mandatory
5. You want to display a greeting message that changes color based on a Boolean variable isMorning. Which code correctly uses the Text composable to show "Good Morning" in green if isMorning is true, otherwise "Good Evening" in blue?
hard
A. Text(text = if (isMorning) "Good Morning" else "Good Evening", color = if (isMorning) Color.Green else Color.Blue)
B. Text(text = "Good Morning" or "Good Evening", color = Color.Green or Color.Blue)
C. Text(text = "Good Morning" && "Good Evening", color = Color.Green && Color.Blue)
D. Text(text = isMorning ? "Good Morning" : "Good Evening", color = isMorning ? Color.Green : Color.Blue)

Solution

  1. Step 1: Understand Kotlin conditional expressions

    Kotlin uses if (condition) value1 else value2 for inline conditions, not the ternary operator.
  2. Step 2: Analyze each option

    Text(text = if (isMorning) "Good Morning" else "Good Evening", color = if (isMorning) Color.Green else Color.Blue) correctly uses Kotlin's if-else expressions for both text and color. Text(text = "Good Morning" or "Good Evening", color = Color.Green or Color.Blue) uses invalid syntax with 'or'. Text(text = "Good Morning" && "Good Evening", color = Color.Green && Color.Blue) uses '&&' which is logical AND, not for choosing values. Text(text = isMorning ? "Good Morning" : "Good Evening", color = isMorning ? Color.Green : Color.Blue) uses ternary operator syntax which Kotlin does not support.
  3. Final Answer:

    Text(text = if (isMorning) "Good Morning" else "Good Evening", color = if (isMorning) Color.Green else Color.Blue) -> Option A
  4. Quick Check:

    Kotlin uses if-else, not ?: for inline conditions [OK]
Hint: Use Kotlin if-else, not ?:, for inline conditions [OK]
Common Mistakes:
  • Using ?: ternary operator syntax
  • Using logical operators instead of conditions
  • Trying to combine strings or colors with 'or' or '&&'
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