Top Banner
Material Design: Teoria e prática Eduardo Costa @eduardoscosta
34

Material design - Teoria e prática

Jul 06, 2015

Download

Software

Eduardo Costa

Apresentação feita no Meetup do GDG Poa de Novembro sobre material desing
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Material design - Teoria e prática

Material Design:Teoria e prática

Eduardo Costa

@eduardoscosta

Page 2: Material design - Teoria e prática

Sobre...

Talvez já tenha sido colega de vocês...

Com isso, provavelmente tive contato com um pouco de cada tecnologia e linguagem que se trabalha por ai...

Instrutor de cursos de iOS, Android e Windows Phone...

Organizer do GDG POA

Page 3: Material design - Teoria e prática

Material Design?

Page 4: Material design - Teoria e prática

Desenvolvimento de um sistema único que possibilita experiências similares nas diversas plataformas e dispositivos.

Page 5: Material design - Teoria e prática

Conceitos

Page 6: Material design - Teoria e prática

Aceleradoras e

investidores

Superfícies tangíveis

Animações

Experiência multiplataforma

Print like design

Page 7: Material design - Teoria e prática

Superfícies Tangíveis

Page 8: Material design - Teoria e prática

Eixo Z

O ambiente do Material é 3D, logo todos objetos tem dimensões x, y, e z

Cada “folha” tem espessura de 1dp

A tela pode ser vista como um conjunto de folhas de papel

Page 9: Material design - Teoria e prática

Folhas criam sombra nas folhas abaixo

Evitar muitas superfícies, entre 2 e 10 é o recomendado

Elementos de uma lista, ao serem tocados, podem sofrer uma animação de elevação

Page 10: Material design - Teoria e prática

<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_enabled="true" android:state_pressed="true">

<objectAnimatorandroid:duration="@android:integer/config_shortAnimTime"android:propertyName="translationZ"android:valueTo="@dimen/touch_raise"android:valueType="floatType" />

</item><item>

<objectAnimatorandroid:duration="@android:integer/config_shortAnimTime"android:propertyName="translationZ"android:valueTo="0dp"android:valueType="floatType" />

</item></selector>

Exemplo de animação

Elevação no click

Page 11: Material design - Teoria e prática

Luz e sombra

No ambiente Material temos luzes virtuais que iluminam o ambiente, permitindo assim que objetos tenham sombras

A sombra é composta em conjunto com o novo eixo Z

Permite criar um ambiente de sobreposição de superficies

Dar diferentes importâncias para cada superfície

Page 12: Material design - Teoria e prática

Cards

Cards são um agregador que estende FrameLayout e representam um conjunto de informações.Os Cards da support lib já trazem elevação, sombra e cantos arredondados

Uso exagerado de cards é ruim, eles devem ser colocados onde o conteúdo exija maior número de ações, informações, etc…

Para conteúdo com menos informações, com foco em imagens ou muito homogêneas temos as Listas e Grids

Page 13: Material design - Teoria e prática

Print like Design

Page 14: Material design - Teoria e prática

Tipografia

Foi criada uma Escala tipográfica, onde você pode verificar qual melhor estilo para sua Titulo, Sub Titulo, conteúdo, etc…

android:textAppearance= “@style/TextAppearance.AppCompat.Title”

Page 15: Material design - Teoria e prática

Keylines

O uso de espaço em branco para criar estruturas é incentivado, assim como a utilização de cores vibrantes e de grande contraste (primary e accent)

Page 16: Material design - Teoria e prática

Cores

Idealmente a cor primária e a de destaque (accent) devem possuir grande contraste, possibilitando maior destaque para os elementos chave da UI como FAB, aba selecionada e campos de formulário

Page 17: Material design - Teoria e prática

Material theme

Page 18: Material design - Teoria e prática

Material theme <style name="Theme.MyTheme" parent="Theme.AppCompat.Light">

<item name="colorPrimary">@color/my_awesome_color</item>

<item name="colorPrimaryDark">@color/my_awesome</item>

<item name="colorAccent">@color/accent</item>

</style>

@android:style/Theme.Material (dark version)

@android:style/Theme.Material.Light (light version)

@android:style/Theme.Material.Light.DarkActionBar

Page 19: Material design - Teoria e prática

Paletas

Permite extrair cores das imagens

Palette.generateAsync(bitmap,new Palette.PaletteAsyncListener() {

@Overridepublic void onGenerated(Palette palette) {

Palette.Swatch vibrant =palette.getVibrantSwatch();

if (swatch != null) {// If we have a vibrant color// update the title TextViewtitleView.setBackgroundColor(

vibrant.getRgb());titleView.setTextColor(

vibrant.getTitleTextColor());}

}});

Page 20: Material design - Teoria e prática

Imagens

Imagens, icones e fotos não deveriam ter sombra, nem elevação em relação a superfície

Imagens devem ser imersivas, de preferência

ocupando de ponta a ponta

Page 21: Material design - Teoria e prática

Animações

Page 22: Material design - Teoria e prática

O que fazer?

Elementos nunca aparecem e desaparecem, todos agem em harmonia com animações que fazem “sentido” para o usuário.

Ajudam a dar maior noção do que está acontecendo para o usuário.

Não fazer animação sem uma razão.

Page 23: Material design - Teoria e prática

Transition Animation

na origem:

ActivityOptionsCompat options =ActivityOptionsCompat.makeSceneTransitionAnimation(

getActivity(), view.findViewById(R.id.icon), Constantes.EXTRA_IMAGE);

ActivityCompat.startActivity(getActivity(), intent, options.toBundle());

no destino:

ViewCompat.setTransitionName(icon, Constantes.EXTRA_IMAGE);

Page 24: Material design - Teoria e prática

E mais...

Ripple

Podem ser usadas em mudança de estado de ícones (um “+” virando um “x”)

AnimatedStateListDrawable

Animações não deveriam durar mais do que 300 ms

Page 25: Material design - Teoria e prática

Multiplataforma

Page 26: Material design - Teoria e prática

Experiência

Torna a aplicação mais simples de ser utilizada independente da plataforma, usuário consegue aplicar seu conhecimento de usabilidade em qualquer dispositivo.

A experiência do usuário deve ser consistente entre todas as Telas (phone, tablet, laptop, TV, relogio, carros...

Page 27: Material design - Teoria e prática

Na prática...

Page 28: Material design - Teoria e prática

Sai ActionBar, entra ToolBar

ActionBar- é dificil de manipular- não faz parte da hierarquia de views

ToolBar- fácil de usar- emula todo comportamento da actionbarantiga- é uma view dentro da hierarquia que pode ser manipulada e estilizada como qualquer ViewGroup

Page 29: Material design - Teoria e prática

ToolBar <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/drawer_layoutandroid:layout_width="match_parentandroid:layout_height="match_parenttools:context=".MainActivity

<LinearLayout android:layout_width="match_parent"android:layout_height="match_parent"

android:orientation="vertical"><android.support.v7.widget.Toolbar

android:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="wrap_content"android:minHeight="?attr/actionBarSize"android:background="?attr/colorPrimary"app:theme="@style/ThemeOverlay.AppCompat"/>

<outros controles> ...</LinearLayout>

</android.support.v4.widget.DrawerLayout>

Page 30: Material design - Teoria e prática

ToolBar <android.support.v7.widget.Toolbarandroid:layout_height="wrap_content"android:layout_width="match_parent"android:minHeight="@dimen/triple_height_toolbar"app:theme="@style/ThemeOverlay.AppCompat.ActionBar"app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

import android.support.v7.widget.Toolbar;

@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.my_layout);

Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);setSupportActionBar(toolbar);

}

Page 31: Material design - Teoria e prática

Navigation Drawer

Page 32: Material design - Teoria e prática

Navigation Drawer

Tela toda!

Page 33: Material design - Teoria e prática

Referências Guideline Oficial

http://www.google.com/design/spec/material-design/introduction.html

Android Developers Guide

https://developer.android.com/training/material/index.html

Android Checklist

http://android-developers.blogspot.com.br/2014/10/material-design-on-android-checklist.html

Chris Banes - appCompat v21

https://chris.banes.me/2014/10/17/appcompat-v21/

Page 34: Material design - Teoria e prática

Eduardo [email protected]

@eduardoscosta

craftbox.com.br

Obrigado!