Jetpack Compose: Testei, apanhei e aprendi!

Filipe Rehder
Fretebras Tech
Published in
3 min readFeb 28, 2021
Photo by medbadrc on Unsplash

A versão beta do Jetpack Compose — kit de ferramentas moderno do Android — foi liberada recentemente (24 de fevereiro, 2021) pelo Google. Na minha opinião, em pouco tempo acredito que veremos mudanças positivas no modo em que escrevemos e lidamos com UI no Android.

Seguindo todo hype que estamos tendo com interfaces declarativas, chega o Jetpack Compose e em meio a toda essa fumaça e expectativas decidi me aventurar um pouco.

Esse era o meu primeiro contato realmente com esse modo de escrever interfaces, sabia o que era e já tinha lido alguns exemplos do Flutter mas nunca tinha colocado a mão na massa.

Entre exemplos ali, codelabs aqui e freestyle na hora do aprendizado veio minha primeira dificuldade:

Como posicionar os elementos de colunas (Column) e linhas (Row) com o compose?

Arrangement

Este objeto Singleton é usado para controlar o posicionamento tanto no eixo X como no Y. Quando estamos no core do compose e começamos a desmiuçar algumas classes, objetos e métodos pra entender como funciona, vemos que alguns componentes como Row e Column possuem Arrangement e Alignment em seus parâmetros.

Note uma diferença como cada componente lida com o Arrangement, uma coluna trata o posicionamento na vertical enquanto uma linha tratará ele na horizontal.

Com essa breve introdução, vou trazer algumas opções que o próprio compose traz pra podermos utilizar.

Arrangement.Horizontal

Existem modos exclusivos para o eixo horizontal, eles são simples de entender e bem intuitivos. Vale lembrar que o começo/final do layout é subentendido se o layout está configurado como LTR ou RTL.

Arrangement.Start: Define o posicionamento o mais próximo possível do começo do layout

Arrangement.End: Define o posicionamento o mais próximo possível do fim do layout

Arrangement.Vertical

Também temos alguns exclusivos para o Vertical, que segue a mesma linha de começo e final de layout.

Arrangement.Top: Define o posicionamento o mais próximo possível do começo do layout

Arrangement.Bottom: Define o posicionamento o mais próximo possível do fim do layout

Arrangement.HorizontalOrVertical

Por últimos existem algumas opções que podem ser utilizadas tanto na vertical quanto na horizontal.

Arrangement.Center: Posiciona os itens no centro.

Arrangement.SpaceEvenly: Distribui todos os itens com o espaçamento igual, inclusive o espaço do inicio e fim.

Arrangement.SpaceAround: Coloca o mesmo espaçamento entre os filhos e metade do espaçamento entre o inicio e o fim.

Arrangement.SpaceBetween: Posiciona o primeiro item no inicio do layout e o ultimo item no final do layout, então distribui os demais entre eles.

Exemplo dos espaçamentos na vertical em colunas (Column).
Exemplo dos espaçamentos na horizontal utilizando linhas (Row).

Bom, espero que esse artigo te ajude a compreender como posicionar melhor os elementos utilizando o compose com as ferramentas que ele tem nos disponibilizado.

Ah, e pra quem chegou aqui sem saber muito sobre o Jetpack Compose vou deixar um artigo que gostei bastante, vale a leitura!

Understanding Jetpack Compose — part 1 of 2 | by Leland Richardson | Android Developers | Medium

--

--

Filipe Rehder
Fretebras Tech

Desenvolvedor Android na Fretebras, no tempo livre curto jogar video-game, assistir series e e-sports e ficar atoa as vezes