Aula 12 - UX/UI e Material Design 3 🎨
Objetivo
Objetivo: Elevar a qualidade visual do app seguindo os padrões do Google (Material Design 3), entendendo temas, cores dinâmicas e componentes modernos.
1. O que é Material Design? 💄
É o sistema de design do Google (criado em 2014, agora na versão 3 - "Material You"). Ele imita "papel e tinta" (sombras, elevação) mas com cores vibrantes e adaptáveis.
- Princípio: O design deve se adaptar ao usuário, não o contrário.
- Foco: Legibilidade, Acessibilidade e consistência.
🆚 Comparação: HIG (Human Interface Guidelines)
A Apple tem o HIG. * Material (Android): Mais colorido, elevação (sombras), Botões FAB (flutuantes), interação mais "brincalhona". * HIG (iOS): Mais plano (flat), minimalista, foco no conteúdo, desfoque (blur).
2. Material 3 (Material You) 🌸
A grande novidade é o Dynamic Color. O App pega as cores do papel de parede do usuário e aplica no tema dele. Se meu wallpaper é verde, todos os botões do seu app ficam verdes (se configurado).
Componentes Chave
- FAB (Floating Action Button): Botão flutuante para ação principal.
- Bottom Navigation: Barra inferior para navegação principal.
- Cards: Conteúdo agrupado com bordas arredondadas.
- TopAppBar: Barra superior (antiga Toolbar).
3. Implementando Material no Android 🛠️
Certifique-se de usar a biblioteca correta no build.gradle:
implementation 'com.google.android.material:material:1.x.x'
XML - Botão Material
<com.google.android.material.button.MaterialButton
style="@style/Widget.Material3.Button.Tonal"
android:text="Botão Moderno" ... />
XML - Card
<com.google.android.material.card.MaterialCardView
app:cardCornerRadius="16dp"
app:strokeWidth="1dp"
app:strokeColor="@color/material_dynamic_primary" ... >
<!-- Conteúdo do card aqui -->
</com.google.android.material.card.MaterialCardView>
4. Ícones e Tipografia 🔡
- Ícones: Use Vector Assets (SVG). O Android Studio tem uma biblioteca gigante de ícones embutida. (File > New > Vector Asset).
- Fontes: Use fontes legíveis. Material 3 usa muito a Roboto e variações de peso (Bold, Medium).
5. Dark Mode (Modo Escuro) 🌑
Hoje em dia é obrigatório.
O Android gerencia isso com pastas de recursos:
* values/colors.xml (Cores Dia)
* values-night/colors.xml (Cores Noite)
Defina nomes semânticos, não literais:
* ❌ background_white (Ruim: e se no escuro for preto?)
* ✅ background_color (Bom: no dia é branco, na noite é preto)
6. Feedback Tátil e Visual (Ripples) 🌊
O usuário precisa saber que tocou.
O Android tem o efeito Ripple (onda) nativo em botões. Se criar um componente customizado, adicione:
android:background="?attr/selectableItemBackground"
Se a ação for perigosa (deletar), use cores de erro (vermelho). Se for sucesso, cores de confirmação.
7. Desafio: Redesign do App 💅
Pegue o exercício da Lista de Filmes (Aula 09) ou Tarefas (Aula 08) e aplique Material Design:
1. Use MaterialCardView para os itens da lista.
2. Adicione um FloatingActionButton (+) para incluir novos itens.
3. Crie uma versão de cores para Modo Escuro (teste trocando o tema do celular).
4. Certifique-se que os textos têm contraste suficiente.
Próxima Aula: Sensores, GPS e Câmera! Acessando Hardware 📸