terça-feira, 20 de setembro de 2016

Constraint Layout no Android Studio 2.2

Olá pessoal,

Com o lançamento do Android Studio 2.2, resolvi fazer um vídeo falando um pouquinho sobre o novo gerenciador de layouts do Android: o ConstraintLayout.
O vídeo é um pouquinho longo (25min) e mostra como criar um layout de uma tela do aplicativo do Netflix utilizando o ConstraintLayout no novo editor visual do Android Studio.
Como é algo relativamente novo, qualquer feedback é muito bem vindo.


Esqueci de falar no vídeo que o ConstraintLayout é compatível com o Android 2.3 e superior.

Mais informações:



Bug report:



Errata:

  • No vídeo foi quando falei "Auto run" ao invés de "Instant Run".


Qualquer dúvida, deixem seus comentários.

4br4ç05,
nglauber

12 comentários:

Pablo Rodrigo disse...

Show de bola Glauber! creio que este seja o primeiro material produzido em relação ao ConstraintLayout, e ficou super bem explicado. Parabéns.

Aproveitando, poderia postar algo falando sobre vector drawable? nem sabia da existência :D
Valeu!

Anônimo disse...

Você utiliza mais os comandos "arrasta e solta" mesmo, ou acha mais produtivo fazer via código ?

Nelson Glauber disse...

Oi Anônimo,

No caso do ConstraintLayout, um dos maiores benefícios é agilidade do editor visual. Então é melhor usar o editor mesmo.
Mas para os demais layouts, prefiro arrastar os componentes pra tela usando o editor visual e ajustar as propriedades no XML.

4br4ç05,
nglauber

Nelson Glauber disse...

Oi Pablo,

Que bom que gostou! Quando tiver um tempinho posto algo sobre o VectorDrawable sim ;)

4b4r4ç05,
nglauber

Rafael Jóia disse...

Olá Glauber,

Parabéns pela explicação!
Você vê vantagens na utilização de ConstraintLayout? Faço esta pergunta pois, todos os developers já estão acostumados a trabalhar com o encadeamento de Layouts e seus ViewGroups.

De qualquer forma, pra ter um pouco mais de "feeling" nisso, vou trabalhar e mexer um pouco com essa nova forma de construção de layouts. Não devemos ser resistentes a mudanças, faz parte da evolução.

Abraços,

Nelson Glauber disse...

Oi Rafael,

Que bom que gostou do vídeo. :)
Acho que o ConstraintLayout tem algumas vantagens:
- Ele implementa um layout plano, ou seja, sem encadeamentos, o que o torna mais rápido na hora fazer uma referência a uma View (por um findViewById por exemplo).
- Eu costumo dizer que 90% (estatística aleatória) dos layouts você consegue implementar com o RelativeLayout e/ou LinearLayout. O ConstraintLayout é uma mistura dos dois.
- Facilita a criação do layout usando o editor visual. Isso para quem está começando é ótimo.
- Desenvolvedores iOS usam um conceito similar nos seus layouts, isso facilita a curva de aprendizado deles no Android.

No momento que eu estou te respondendo ele ainda está em alpha, então acho que não usaria em produção. Mas acho que ele será o futuro dos layouts no Android.

4br4ç05,
nglauber

Luciano disse...

Oi Glauber, parabéns pelo vídeo. Em relação ao problema do wrap_content, aparentemente foi resolvido no último build (alpha9).

Rafael Jóia disse...

Muito boa as suas considerações Glauber.
Realmente, pensando na curva de aprendizado dos developers iOS, esta forma de trabalho do ConstraintLayout foi muito boa :)

Só sei que temos que estudar infinitamente, Android está sempre mudando as coisas e acompanhar essas alterações não é uma tarefa fácil, obrigado por trazer novidades em seu blog, com certeza vou me tornar um leitor assíduo.

Abraços e bons códigos!

Nelson Glauber disse...

Oi Luciano,

Eu não sei se resolveram realmente no alpha-9...
https://code.google.com/p/android/issues/detail?id=223308

4br4ç05,
nglauber

leonardo disse...

Boa noite Nelson Glauber! Poderia fazer uma video aula de como adaptar o layout para diferentes resoluções?

Obrigado!

Nelson Glauber disse...

Oi Leonardo,

Utilizando as constraints corretamente seu layout já deve estar pronto para os diferentes tamanhos e densidades de tela existentes.

4br4ç05,
nglauber

Blog do ueder disse...

Show de bola, essa video aula Nelson Glauber.
Depois de começar a ler o seu livro virei espectador assiduo do seu blog.
Valeu