0Pricing
Kotlin Multiplatform Academy · Aula

Lide com intenções e ações do usuário

Acione mudanças de estado a partir de eventos da interface

Lide com intenções e ações do usuário é uma aula grátis de Kotlin Multiplatform Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Multiplatform Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.

A interface pergunta, você decide

Quando um usuário toca em um botão, a interface não deve executar a lógica por conta própria. Ela envia uma intenção ao ViewModel, que decide o que acontece.

Dê nomes às suas intenções

Modele cada ação possível do usuário como uma classe selada. Agora, toda intenção que a tela pode disparar tem nome e tipo, e é impossível escrevê-la incorretamente.

sealed class HomeIntent {
    object Refresh : HomeIntent()
    data class Search(val q: String) : HomeIntent()
}

Um único ponto de entrada

Exponha uma única função onIntent. Todo evento da tela passa por ela, oferecendo um único lugar organizado para encaminhar o comportamento.

fun onIntent(intent: HomeIntent) {
    // route to the right handler
}

when encaminha cada ação

Dentro de onIntent, um when corresponde cada tipo de intenção. Como a classe é selada, o compilador garante que você cubra todos os casos.

when (intent) {
    HomeIntent.Refresh -> refresh()
    is HomeIntent.Search -> search(intent.q)
}

Os manipuladores atualizam o estado

Cada manipulador realiza seu trabalho e depois atualiza o StateFlow. A interface é renderizada novamente a partir desse estado único, exatamente como antes.

private fun refresh() = scope.launch {
    _state.update { it.copy(isLoading = true) }
}

Por que não usar métodos públicos?

Você poderia expor vários métodos públicos, mas um canal único de intenção torna todo o contrato da tela visível em um único tipo. Limpo e fácil de testar.

Transporte dados na intenção

As intenções que precisam de dados usam uma classe de dados. A consulta ou o identificador do usuário acompanha a própria ação.

data class Search(val query: String) : HomeIntent()

Eventos pontuais são diferentes

O estado persiste, mas uma mensagem temporária ou uma navegação acontece uma única vez. Para esses eventos pontuais, use um Channel ou SharedFlow, não um StateFlow.

Emita eventos com um canal

Mantenha um canal privado para os eventos e exponha-o como um Flow. A interface o coleta para exibir mensagens ou navegar uma única vez.

private val _events = Channel<String>()
val events = _events.receiveAsFlow()

Os dois aplicativos, o mesmo fluxo

O Android envia intenções do Compose e o iOS do SwiftUI, mas ambas chegam ao mesmo onIntent. O comportamento nunca poderá divergir entre as plataformas.

Um ciclo previsível

Entra a intenção, sai o estado: esse ciclo unidirecional facilita compreender, depurar e testar a tela. Não há caminhos secundários ocultos.

Verificação rápida

Vamos verificar como os eventos da interface devem chegar à lógica compartilhada.

Recapitulação

Modele as ações como um tipo de intenção selado, encaminhe-as por um único onIntent e atualize o estado a partir dele. Use um canal para eventos pontuais. 🚀

Perguntas Frequentes

A aula “Lide com intenções e ações do usuário” é grátis?

Sim — o texto completo de “Lide com intenções e ações do usuário” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Multiplatform Academy, atualize para CoddyKit PRO. O curso de Kotlin Multiplatform Academy inclui 4 aulas no total.

O que vou aprender em “Lide com intenções e ações do usuário”?

Acione mudanças de estado a partir de eventos da interface Você pratica Kotlin Multiplatform Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Kotlin Multiplatform Academy?

Nenhuma experiência prévia é necessária. Kotlin Multiplatform Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Lide com intenções e ações do usuário”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Kotlin Multiplatform Academy?

Sim. Cada aula de Kotlin Multiplatform Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Uma base de ViewModel multiplataforma
  2. Exponha o estado da interface como StateFlow
  3. Lide com intenções e ações do usuário
  4. Vincule o ViewModel a cada interface
← Voltar para Kotlin Multiplatform Academy