📊 Slides: Cap 12 — Arquitetura de Jogo (MVVM)

📖 Ver Cap 12 completo

Resumo visual da aula, em blocos — use como roteiro de revisão ou apresentação.


🟦 Slide 1: Objetivo da Aula


🟦 Slide 2: O Cenário Prático

Até agora, a lógica e a tela viviam juntas na mesma função — virou bagunça. Crie o Motor do Jogo (ViewModel): a vida do personagem é calculada separadamente, e a tela só desenha.


🟦 Slide 3: Dicionário do Programador

Termo Significado
View (Visão) A tela (Compose) — só desenha o que o Garçom traz
ViewModel (O Garçom) Quem manda no estado — faz cálculos e avisa a tela
Encapsulamento Esconder dados sensíveis: a tela não muda a vida direto, pede ao Garçom

📂 Mapa das Pastas: ui/screens/ (Composables) + ui/viewmodel/ (ViewModels)


🟦 Slide 4: View ↔ ViewModel ↔ Model

graph TD
    A["View: Tela do Game"] <-->|Observa o Estado| B["ViewModel: Garçom da Lógica"]
    B <-->|Gerencia| C["Model: Dados do Personagem"]

🟦 Slide 5: Exemplo — O Garçom de Pontos

class JogoViewModel : ViewModel() {
    // 1. O dado secreto (Só o Garçom mexe)
    private val _pontos = mutableStateOf(0)

    // 2. O dado que a tela pode ver
    val pontos: State<Int> = _pontos

    // 3. A ação que muda o dado
    fun ganharPonto() {
        _pontos.value += 10
    }
}

🟦 Slide 6: Prática e Próximos Passos


⬅️ Voltar para Slides