🎮 Cap 05: Perfil de Jogador (Compose UI)
🎯 Objetivo da Aula:
Ao final desta aula, você sairá do mundo do “texto no console” e criará sua primeira interface visual. Você aprenderá a usar os componentes Text e Button para montar um Perfil de Jogador.
🏗️ Construindo o Projeto (Checklist Studio)
Para esta aula, vamos criar um projeto Android real! Siga o padrão:
- Template: Empty Compose Activity.
- Name:
AppPerfil_SeuNome. - Package Name:
br.com.curso.perfil. - Language: Kotlin.
- Build Configuration: Kotlin DSL.
🧠 Fundamentos: A Teoria Traduzida
📖 Dicionário do Programador
- Compose: É o jeito moderno de desenhar telas. É como brincar de LEGO: você junta peças prontas para formar o app.
- @Composable: É uma etiqueta (anotação) que diz ao Android: “Essa função é um desenho”. Toda função de tela deve ter isso em cima.
- Preview: É a janelinha no Android Studio que mostra o desenho sem precisar ligar o celular.
🎨 Padrão PascalCase
No Compose, funções de interface devem começar com Letra Maiúscula:
PerfilJogador()✅perfilJogador()❌
graph TD A[Componente: Text] --> B[Resultado Visual] C[Componente: Button] --> B
📖 Exemplo Passo a Passo: Sua Primeira Tela
- Apague o código padrão que o Android Studio criou.
- Crie sua própria função
@Composable. - Use
Columnpara colocar um item embaixo do outro.
package br.com.curso.perfil
import androidx.compose.runtime.Composable
import androidx.compose.material3.Text
import androidx.compose.foundation.layout.Column
@Composable
fun PerfilJogador() {
Column {
Text(text = "TREINADOR: Ash Ketchum", fontSize = 24.sp)
Text(text = "NÍVEL: 15")
Button(onClick = { /* Lógica futura */ }) {
Text("Ver Pokémons")
}
}
}🛠️ Prática Obrigatória 1:
Crie um @Composable chamado StatusHub. Ele deve exibir três textos: “Vida: 100”, “Mana: 50” e “Estamina: 80”. Use cores diferentes para cada texto.
🛠️ Prática Obrigatória 2:
Adicione um botão na sua interface chamado “Iniciar Partida”. Use a propriedade colors = ButtonDefaults.buttonColors(containerColor = Color.Green) para deixar o botão verde.
🔑 Gabarito Passo a Passo:
@Composable
fun StatusHub() {
Column {
Text(text = "Vida: 100", color = Color.Red)
Text(text = "Mana: 50", color = Color.Blue)
Text(text = "Estamina: 80", color = Color.Gray)
Button(
onClick = { },
colors = ButtonDefaults.buttonColors(containerColor = Color.Green)
) {
Text("Iniciar Partida")
}
}
}📤 Instruções de Entrega (Microsoft Teams):
- Envie o código da sua função
@Composable. - Nomeie como:
Gamer_SeuNome_Cap05.kt. - Submeta no canal de tarefas.