Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MotionLayout - Criando animações sem escrever c...

MotionLayout - Criando animações sem escrever código

O Google Play possui atualmente mais de 3 milhões de aplicativos e para se destacar neste mar de aplicativos é preciso algum diferencial, por vezes a diferença entre um aplicativo bom e um excepcional está nos detalhes do app, como as animações. Recentemente o Google anunciou uma nova biblioteca de Animação para o Android, o MotionLayout, visando simplificar o processo de animação no Android. Utilizando o MotionLayout é possível criar animações sem utilizar uma única linha código! Utilizando para isso somente arquivos de Layout. Nesta apresentação será demonstrado o funcionamento básico desta biblioteca através de exemplos de código, explicando o necessário para você começar a utiliza-la.

Avatar for Tomaz Silva

Tomaz Silva

December 17, 2019

More Decks by Tomaz Silva

Other Decks in Programming

Transcript

  1. O que é? • Apresentado no Google IO 2018 •

    Subclasse do ConstraintLayout ◦ possui as todas as propriedades do ConstraintLayout • Possibilita animar transição entre 2 layouts de forma simples • Foco nas animações baseadas em interações • Totalmente Declarativo (xml)
  2. Quando usar? Quando deseja animar, redimensionar ou alterar atributos de

    componentes de UI baseado em interações com o usuário
  3. MotionLayout • Muito Similar ao ConstraintLayout ◦ Define os componentes

    de tela, suas propriedades e posições • Possui alguns atributos adicionais ◦ app:layoutDescription -> Define o MotionScene vinculado ao layout ◦ app:applyMotionScene -> Habilita os desabilita o motion scene ◦ app:showPaths -> Utilizado para auxiliar no desenvolvimento da animação, seta se o caminho da animação será visível ou não ◦ app:progress -> Permite setar o progresso da animação, utilizando um float entre 0 e 1
  4. MotionScene • Responsável por definir o comportamento da animação •

    Define ou referência o estado inicial e final da animação • Define como será a transição entre os estados • Define a forma como será a interação com o usuário • As informações de posição e propriedades dos componentes de UI definidas aqui tem precedência em relação às informações do MotionLayout
  5. ConstraintSet • Toda a animação terá pelo menos 2 ConstraintSet,

    um representando o estado inicial e outro o estado final da animação • Define posição, tamanho, propriedades de um ou mais componentes de tela
  6. Comparação entre os componentes MotionLayout • Muito similar ao ConstraintLayout

    • Define a posição e propriedades dos componentes de UI • Referencia o arquivo MotionScene MotionScene • Responsável por orquestrar a animação • Define a transição referência o estado inicial e final da animação ConstraintSet • Define os estados da animação • Define posição, tamanho e propriedades de elementos de UI para um estado da animação
  7. Referências • Statista : Estatísticas Play Store • Material Design:

    Understand Motion • Google Samples • Documentação Android • Artigo Medium • CodeLab