Conceitos e implementação do Jetpack Compose
Basicamente, a produção de estado é a aplicação incremental de mudanças ao estado da interface. O estado sempre existe e muda como resultado de eventos. As diferenças entre eventos e estados estão resumidas na tabela abaixo:
Eventos |
Estado |
Transitório, imprevisível e existe por um período finito. |
Sempre existe. |
As entradas da produção de estado. |
A saída da produção de estado. |
O produto da interface ou de outras origens. |
Consumido pela interface. |
Confira quais podem ser a origem dos eventos:
- Usuários: à medida que interagem com a interface do app.
- Outras origens de mudança de estado: APIs que apresentam dados de apps da interface, do domínio ou de camadas de dados, como eventos de tempo limite da snackbar, casos de uso ou repositórios, respectivamente.
APIs de produção de estado
Há duas APIs principais usadas na produção do estado, dependendo do estágio em que você está no pipeline:
Estágio do pipeline |
API |
Entrada |
Use APIs assíncronas para realizar o trabalho fora da linha de execução de interface para manter a interface sem instabilidade. Por exemplo, corrotinas ou fluxos em Kotlin e RxJava ou callbacks na linguagem de programação Java. |
Saída |
Use APIs do detentor de dados observáveis para invalidar e renderizar novamente a interface quando o estado mudar. Por exemplo, StateFlow ou LiveData. Os detentores de dados observáveis garantem que a interface sempre tenha um estado para mostrar na tela |
Das duas, a escolha da API assíncrona para entrada tem mais influência sobre a natureza do pipeline de produção de estado do que a escolha da API observável para saída. Isso ocorre porque as entradas ditam o tipo de processamento que pode ser aplicado ao pipeline.
Montagem do pipeline de produção de estado
As próximas seções abordam as técnicas de produção de estado mais adequadas para várias entradas e as APIs de saída correspondentes. Cada pipeline de produção de estado é uma combinação de entradas e saídas e precisa ter estas características:
- Conhecimento do ciclo de vida: quando a interface não está visível ou ativa, o pipeline de produção do estado não consome nenhum recurso, a menos que explicitamente necessário.
- Fácil de consumir: a interface precisa renderizar facilmente o estado produzido pela interface. As considerações da saída do pipeline de produção de estado variam em diferentes APIs de visualização, como o sistema de visualização ou o Jetpack Compose.
Tipos de saída em pipelines de produção de estado
A escolha da API de saída para o estado da interface e a natureza da apresentação dependem muito da API usada pelo app para renderizar a interface. Em apps Android, você pode usar visualizações ou o Jetpack Compose. Inclui as seguintes considerações:
- Estado de leitura de acordo com o ciclo de vida.
- O estado precisa ser exposto em um ou vários campos no detentor de estado?
A tabela a seguir resume as APIs a serem usadas para o pipeline de produção do estado ao usar o framework Views:
Entrada |
Saída |
APIs únicas |
|
APIs de fluxo |
|
APIs únicas e de fluxo |
|