Por que usar o Compose
Menos código
Escrever menos código afeta todas as etapas do desenvolvimento: como autor, você se concentra no problema em questão, com menos itens para testar e depurar e com menos chances de bugs. Como avaliador ou mantenedor, você tem menos código para ler, entender, analisar e manter.
O Compose permite fazer mais com menos código, em comparação com o uso do sistema de visualização do Android. Seja qual for sua necessidade de criar, como botões, listas ou animação, agora haverá menos código para escrever. Veja o que alguns dos nossos parceiros dizem:
- “Para a mesma classe Button, o código era 10 vezes menor.” (Twitter)
- "Também há uma redução significativa em qualquer tela criada com uma RecyclerView, o que acontece com a maioria das nossas telas." (Monzo)
- "Ficamos muito felizes em ver que eram necessárias menos linhas para criar listas ou animações em nosso app. Estamos escrevendo menos linhas de código por recurso, o que nos permite focar mais em agregar valor aos nossos clientes." (Cuvva)
O código que você está criando é escrito apenas em Kotlin, em vez de dividido entre Kotlin e XML: "É muito mais fácil rastrear o código quando tudo está escrito na mesma linguagem e, geralmente, no mesmo arquivo, em vez de alternar entre Kotlin e XML (Monzo)
O código escrito com o Compose é simples e fácil de manter, seja o que for que você esteja criando. "O sistema de layout do Compose é conceitualmente mais simples e, assim, fica mais fácil de entendê-lo. Ler o código de componentes complicados também é mais fácil." (Square)
Intuitiva
O Compose usa uma API declarativa, o que significa que você só precisa descrever a IU. O Compose cuida do restante. As APIs são intuitivas e fáceis de descobrir e usar: "Nossa camada de temas é muito mais intuitiva e legível. Conseguimos realizar com um único arquivo Kotlin o que de outra forma se estenderia por vários arquivos XML, responsáveis por definições de atributos e atribuições usando várias sobreposições de tema em camadas.” (Twitter)
Com o Compose, você cria componentes pequenos e sem estado que não estão vinculados a uma atividade ou um fragmento específico. Isso facilita a reutilização e os testes: "Nós estabelecemos o objetivo de oferecer um novo conjunto de componentes de IU que fossem sem estado, fáceis de usar e manter, além de intuitivos de implementar, estender e personalizar. O Compose nos forneceu uma sólida resposta para conseguirmos fazer isso.” (Twitter)
No Compose, o estado é explícito e transmitido para a função que pode ser composta. Dessa forma, há uma única fonte de verdade para o estado, tornando-o encapsulado e desacoplado. À medida que o estado do app muda, a IU é atualizada automaticamente. “Há menos com o que se preocupar enquanto você pensa sobre algo e há menos comportamento que seja fora do seu controle ou mal compreendido” (Cuvva)
Acelerar o desenvolvimento
O Compose é compatível com todo o código já existente: você pode chamar o código do Compose em visualizações e vice-versa. Bibliotecas mais comuns, como Navigation e ViewModel, e corrotinas do Kotlin funcionam com o Compose. Você pode começar a adotá-lo quando e onde quiser. "Começamos a integrar o Compose pela interoperabilidade e descobrimos que ele simplesmente funciona. Descobrimos que não precisávamos pensar em coisas como modo claro e escuro, e toda a experiência foi incrivelmente simples." (Cuvva)
Com o suporte completo do Android Studio, com recursos como visualizações em tempo real, você pode iterar e enviar códigos mais rapidamente: "As visualizações no Android Studio nos têm permitido economizar muito tempo. Poder criar várias visualizações também economiza tempo. Muitas vezes, precisamos verificar um componente de IU em estados ou configurações diferentes, como estados de erro, com fontes de tamanho diferentes etc. Com a possibilidade de criar várias visualizações, conseguimos verificar isso facilmente." (Square)
Eficiente
O Compose permite criar apps lindos, com acesso direto às APIs da Plataforma Android e compatibilidade integrada com o Material Design, tema escuro, animações e muito mais: "O Compose também resolveu mais do que a IU declarativa: APIs de acessibilidade, layout, tudo foi aprimorado. Há menos etapas entre querer fazer algo e realmente fazê-lo" (Square).
Com o Compose, dar movimento e vida aos seus apps usando animações é rápido e fácil de implementar: "É tão fácil adicionar animações no Compose que não há motivo para não animar elementos como mudanças de cor/tamanho/elevação" (Monzo). "Você pode criar animações sem precisar de nada especial. Não é diferente de mostrar uma tela estática" (Square).
Não importa se você está desenvolvendo com o Material Design ou com seu próprio sistema de design. O Compose oferece flexibilidade para implementar o design que você quiser: “Ter o Material Design separado da base foi muito útil para nós na hora de criarmos nosso próprio sistema de design, o que geralmente exige requisitos de design diferentes do Material Design." (Square)
Confira os estudos de caso mais detalhados para saber mais sobre como Twitter, Square, Monzo e Cuvva estão usando o Compose.