em Sistemas de Informação • Escritora no Medium • São José/SC • marinacoelho.com Quem? Houssan A. Hijazi • Desenvolvedor Android desde 2013 • Formado em Análise de Sistemas • Organizador do GDG Foz do Iguaçu • Foz do Iguaçu/PR • hussan.com.br
Android para criar Interface de Usuário nativas que se tornou estável em 28 de julho de 2021. Ele simplifica e acelera o desenvolvimento da IU no Android para dar vida aos seus apps com menos código, ferramentas poderosas e APIs Kotlin intuitivas. Ele combina um modelo de programação reativa. A ideia é criar IU através de composição de funções Kotlin, ao invés de arquivos XML. Jetpack Compose
e detectadas por um fluxo de dados: • Eventos • Mensagens • Fluxo de dados Aplicações reativas são constituídas por reações a alterações nestes fluxos de dados. Programação reativa
valor que pode mudar ao longo do tempo. Essa é uma definição muito ampla e abrange tudo, de um banco de dados até a variável em uma classe. Em um Layout Compose, sempre que um estado é atualizado, ocorre uma recomposição dos elementos que estão ouvindo este estado. • MutableState (recomendado para Jetpack Compose) • LiveData • RxJava2 • Flow
usando o elemento remember. Um valor calculado por remember é armazenado durante a composição inicial, e o valor armazenado é retornado durante a recomposição. O remember armazena objetos na composição e esquece o objeto quando o elemento que ouve este remember é removido da tela. Gerenciamento de estado
para verificar o comportamento correto do código do Compose. Através destes testes podemos ter certeza que os elementos da nossa Atividade estão reagindo da forma esperada aos eventos que acontecem em nosso código. Sejam estes eventos disparados pelo View Model, ou pela interação do usuário com a tela (como, por exemplo, clicando em elementos da IU).
onAllNodes...) • Declarações: usadas para verificar se os elementos existem ou têm determinados atributos. (assertExists, assertIsDisplayed, assertTextEquals…) • Ações: injetam eventos de usuário simulados nos elementos. (performClick, performKeyPress, performGesture...)