📊 Slides: Cap 13 — Conectando ao Mundo (PokeAPI)
Resumo visual da aula, em blocos — use como roteiro de revisão ou apresentação.
🟦 Slide 1: Objetivo da Aula
- Entender como o app “conversa” com a internet.
- Criar um Contrato (Modelagem) e usar um Mock para simular dados de Pokémons.
🟦 Slide 2: O Cenário Prático
Os dados dos Pokémons não estão no celular — estão na nuvem (PokeAPI). Aprenda a pedir esses dados e entender como eles chegam até o seu código.
🟦 Slide 3: Dicionário do Programador
| Termo | Significado |
|---|---|
| API | Um “garçom” que leva seu pedido ao servidor e traz a resposta |
| JSON | A “bandeja” — formato de texto dos dados |
| Mock | Um servidor “de mentirinha” para testar sem o servidor real |
| Corrotina | Tarefa em segundo plano que “pausa” sem travar a tela |
| Repository | O “Estoque Central” — decide de onde vêm os dados |
🟦 Slide 4: Da Tela até a API
graph LR
A["View: Tela"] -->|chama| B["ViewModel: carregarHeroi()"]
B -->|viewModelScope.launch| C["Repository: buscarHeroi()"]
C -->|suspend| D["GameService: Retrofit"]
D -->|JSON| C
C --> B
B -->|atualiza State| A
🟦 Slide 5: Exemplo — Modelando e Buscando
data class Pokemon(
val id: Int,
val name: String
)
class HeroiViewModel(private val repository: GameRepository) : ViewModel() {
private val _heroi = mutableStateOf<Personagem?>(null)
val heroi: State<Personagem?> = _heroi
fun carregarHeroi() {
viewModelScope.launch {
_heroi.value = repository.buscarHeroi()
}
}
}
🟦 Slide 6: Prática e Próximos Passos
- 🛠️ Prática 1: rota
GET /meu-pokeno Beeceptor. - 🛠️ Prática 2: interface
GameServicecom@GET+suspend fun. - 🛠️ Prática 3:
PersonagemRepository+PersonagemViewModel2comnomePersonagem. - 💪 Exercício extra: aproveitando o campo
power. - 🧠 Quiz: teste seus conhecimentos.
- ➡️ Próximo capítulo: Cap 14 — Dados Pokémon: O Mundo Real.