Introdução ao MotionLayout

Edilson Ngulele
GDG Maputo
Published in
3 min readNov 7, 2018

A animação tem um papel especial no design de interfaces, ela é uma das ferramentas mais importantes para uma boa interação. É especialmente boa para os aplicativos moveis, que devem ser desenvolvidos com uma interface informativa e funcional.

O ConstraintLayout é uma ferramenta fundamental nos dias de hoje, pois além de ser extremamente poderosa nos permite criar layouts complexos de forma muito simples. Contudo, fazer animações complexas com o ConstraintLayout pode ser um bocado complicado e pode nos consumir muito tempo.

Há pouco tempo a Google anunciou o ConstraintLayout 2.0 e deu bastante ênfase ao MotionLayout, pois este permite animar as nossas telas com muito pouco trabalho.

Este é o primeiro artigo da serie e eu irei explicar afinal de contas o que é o MotionLayout e como podemos usa-lo. Esta serie será composta por 4 artigos:

Motion

Como o nome sugere, Motion (movimento) é a acção e o efeito de mover um objecto ou um ponto, isto é, fazer com que o objecto deixe o seu lugar inicial e passe a ocupar outro.

source:https://dribbble.com/shots/1677657-Loader

Layout

Como expliquei neste artigo, um layout define a estrutura visual da interface do usuário. É composto por uma ou várias Views, que juntas, formam o design do aplicativo e interagem com o usuário (LinearLayout, RelativeLayout, ConstraintLayout, etc).

MotionLayout

O MotionLayout é uma subclasse do ConstraintLayout desenhada especialmente para facilitar na criação de animações e tornar a aplicação mais interativa. Possui as mesmas propriedades que o ConstraintLayout permitindo-nos posicionar os elementos e com a ajuda do layout editor maximizar a nossa produtividade.

Porque o MotionLayout?

Animações e transições podem ser feitas de varias formas no android, através do TransitionManager ou mesmo ate com o CoordinatorLayout, se alguma vez tentaste fazer uma animação qualquer deves ter utilizado uma delas.

O MotionLayout não foge muito a regra, na verdade, ele a junção das melhores propriedades do TransitionManager e do CoordinatorLayout.

Assim como no TransitionManager, o MotionLayout permite definir transições entre dois layouts e anima as suas propriedades. Como no CoordinatorLayout, ele permite conduzir transições através do toque e permite personalizá-las de acordo com as suas necessidades.

A parte mais interessante de tudo isso é que o MotionLayout é totalmente declarativo, isto é, podemos definir as animações e transições a partir de um ficheiro XML sem necessidade de algum código.

source: http://gph.is/2bcGfQj

Quando devemos usar?

Animações são sempre bem-vindas mas não podemos exagerar nem utilizá-las de forma arbitrária. Elas existem por um motivo, que é guiar e ajudar ao utilizador a perceber o que o teu aplicativo está a fazer.

Use o MotionLayout apenas quando quiseres mudar o tamanho ou animar uma elemento da tua interface como imagens, botões e outros.

Utilize o MotionLayout para animar os elementos que irão interagir com o utilizador.

Requisitos

Tudo que precisas para começar a utilizar o MotionLayout:

  • Android Studio 3.1.3 (ou versão superior)
  • Adicionar a dependência do ConstraintLayout 2.0 ao teu gradle:
implementation 'com.android.support.constraint:constraint-layout:2.0.0-alpha2'

É isso!

Esta foi apenas uma breve introdução ao MotionLayout, espero que tenha despertado alguma curiosidade e interesse em aprender mais sobre esta ferramenta extremante útil e poderosa. No próximo artigo eu irei dar uma introdução ás animações com o MotionLayout e trarei alguns exemplos pra ti.

Se tiver alguma questão ou sugestão deixe aí nos comentários e não hesite em contactar-me pelo email: edilsonngulele@gmail.com ou twitter: @edilson_ngulele

Obrigado e até a próxima!

--

--

Edilson Ngulele
GDG Maputo

Just a regular guy who loves coding and writing about Google Technologies | Project Manager @ MozDevz