📊 Slides: Cap 19 — Cadastro de Treinador: Formulários
Resumo visual da aula, em blocos — use como roteiro de revisão ou apresentação.
🟦 Slide 1: Objetivo da Aula
- Criar formulários de entrada de dados (Login, Cadastro).
- Validar campos e dar feedback visual de erro.
🟦 Slide 2: O Cenário Prático
Para entrar na Arena, o jogador precisa se cadastrar. Crie a Tela de Inscrição: nomes com menos de 3 letras mostram “Nickname muito curto!” e bloqueiam o envio.
🟦 Slide 3: Dicionário do Programador
| Termo | Significado |
|---|---|
| TextField | A “Caixa de Texto” onde o usuário escreve |
| Validação | Checar se o que foi escrito faz sentido |
| isError | Propriedade que deixa o campo com borda vermelha |
📂 Organização: telas de formulário em ui/screens/ (ex: CadastroScreen.kt)
🟦 Slide 4: Do Nickname ao Botão
graph TD
A["Jogador digita Nickname"] --> B{Tem 3 letras?}
B -->|Não| C["Mostra Erro em Vermelho"]
B -->|Sim| D["Libera Botão Confirmar"]
🟦 Slide 5: Exemplo — Validando o Nome
@Composable
fun CadastroScreen() {
var nickname by remember { mutableStateOf("") }
val temErro = nickname.length < 3 && nickname.isNotEmpty()
Column(modifier = Modifier.padding(16.dp)) {
TextField(
value = nickname,
onValueChange = { nickname = it },
label = { Text("Nome do Treinador") },
isError = temErro,
supportingText = {
if (temErro) Text("O nome deve ter no mínimo 3 letras", color = Color.Red)
}
)
Button(
onClick = { /* Próximo Passo */ },
enabled = nickname.length >= 3
) {
Text("Confirmar Inscrição")
}
}
}
🟦 Slide 6: Prática e Próximos Passos
- 🛠️ Prática 1: campo “E-mail” — botão só habilita se contém
@. - 🛠️ Prática 2:
KeyboardType.Emailno teclado. - 💪 Exercício extra: campo de senha com
PasswordVisualTransformation. - 🧠 Quiz: teste seus conhecimentos.
- ➡️ Próximo capítulo: Cap 20 — Login na Arena (Auth e Tokens).