📝 Lista de Tarefas - Jetpack Compose
Um aplicativo moderno e elegante de lista de tarefas construído com Jetpack Compose e Material Design 3
- ✅ Adicionar Tarefas - Interface intuitiva com campo de texto e botão flutuante
- ✅ Marcar como Concluída - Checkbox interativo com feedback visual
- ✅ Remover Tarefas - Botão de exclusão com ícone Material
- ✅ Contador Inteligente - Exibe o total de tarefas no título
- ✅ Estatísticas em Tempo Real - BottomBar com total, concluídas e pendentes
- ✅ Estado Vazio Amigável - Mensagem motivadora quando não há tarefas
- ✅ Tema Adaptativo - Suporte a modo claro e escuro
- ✅ Design Responsivo - Funciona em diferentes tamanhos de tela
- ✅ Animações Suaves - Transições fluidas com Compose
Este projeto segue as melhores práticas de desenvolvimento Android com uma arquitetura modular e limpa:
com.example.todoapp/
│
├── 📱 MainActivity.kt # Activity principal (80 linhas)
│
├── 🧩 components/ # Componentes UI reutilizáveis
│ ├── TodoTopBar.kt # Barra superior com contador
│ ├── TodoBottomBar.kt # Estatísticas (total, concluídas, pendentes)
│ ├── TaskInput.kt # Campo de entrada + FAB
│ ├── TaskItem.kt # Card de tarefa individual
│ └── TaskList.kt # Lista com LazyColumn
│
├── 📊 model/ # Modelos de dados
│ └── Task.kt # Data class da tarefa
│
└── 🎨 ui/theme/ # Tema Material 3
├── Color.kt # Paleta de cores
├── Theme.kt # Configuração do tema
└── Type.kt # Tipografia
- Single Responsibility Principle - Cada componente tem uma única responsabilidade
- Separation of Concerns - UI separada da lógica de negócio
- Composition over Inheritance - Composição de componentes pequenos
- Unidirectional Data Flow - Estado desce, eventos sobem
- Clean Code - Código legível e autodocumentado
| Tecnologia | Versão | Descrição |
|---|---|---|
| Kotlin | 1.9+ | Linguagem moderna e concisa |
| Jetpack Compose | 1.5+ | UI declarativa e reativa |
| Material 3 | Latest | Design system do Google |
| State Management | Compose | remember e mutableStateOf |
| Android SDK | 24+ | Compatível com 95%+ dispositivos |
- Android Studio Hedgehog (2023.1.1) ou superior
- JDK 17 ou superior
- Android SDK 34
- Dispositivo físico ou emulador com API 24+
-
Clone o repositório
git clone https://github.com/TallesGuerra/ListaDeTarefas.git cd todo-app-compose -
Abra no Android Studio
- File → Open → Selecione a pasta do projeto
-
Sincronize as dependências
- O Gradle sincronizará automaticamente
- Aguarde a conclusão (pode levar alguns minutos na primeira vez)
-
Execute o aplicativo
- Clique em "Run" (
▶️ ) ou pressioneShift + F10 - Selecione um dispositivo ou emulador
- Aguarde a instalação e aproveite!
- Clique em "Run" (
dependencies {
// Core Android
implementation("androidx.core:core-ktx:1.12.0")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.7.0")
// Jetpack Compose
implementation("androidx.activity:activity-compose:1.8.2")
implementation(platform("androidx.compose:compose-bom:2024.02.00"))
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.compose.material3:material3")
// Debug
debugImplementation("androidx.compose.ui:ui-tooling")
debugImplementation("androidx.compose.ui:ui-test-manifest")
}Barra superior que exibe o título do app e contador dinâmico de tarefas.
Features:
- Contador de tarefas no título
- Cores Material 3
- Design responsivo
Barra inferior com estatísticas em tempo real das tarefas.
Features:
- Total de tarefas
- Tarefas concluídas
- Tarefas pendentes
- Divisores verticais elegantes
- Aparece apenas quando há tarefas
Campo de entrada com botão flutuante para adicionar novas tarefas.
Features:
- TextField com placeholder
- FloatingActionButton (FAB)
- Validação de entrada vazia
- Callbacks para estado
Card individual representando uma tarefa.
Features:
- Checkbox interativo
- Texto com estilo condicional
- Texto riscado quando concluída
- Botão de exclusão
- Elevação sutil
Lista otimizada de tarefas com LazyColumn.
Features:
- Renderização eficiente
- Contador de tarefas
- Estado vazio com mensagem
- Espaçamento entre items
- ✅ Composables e recomposição
- ✅ Layouts (Column, Row, LazyColumn, Box)
- ✅ Modificadores customizados
- ✅ Material 3 components
- ✅ Estado e ciclo de vida
- ✅
remember- Preserva estado durante recomposições - ✅
mutableStateOf- Estado reativo - ✅ State hoisting - Elevar estado para compartilhar
- ✅ Estado derivado (computed values)
- ✅ Imutabilidade de dados
- ✅ Componentes reutilizáveis
- ✅ Separação de responsabilidades
- ✅ Props e callbacks
- ✅ Unidirectional data flow
- ✅ Clean Code
- ✅ Material Design 3
- ✅ Feedback visual
- ✅ Estados vazios
- ✅ Iconografia
- ✅ Responsividade
- Adicionar, completar e deletar tarefas
- Interface básica com Material 3
- Arquitetura modular
- TopBar e BottomBar
- Componentes isolados
- Estatísticas em tempo real
| Aspecto | Versão Inicial | Versão Atual |
|---|---|---|
| MainActivity | ~300 linhas | 80 linhas ✅ |
| Arquitetura | Monolítica | Modular ✅ |
| Componentes | Tudo junto | 5 arquivos separados ✅ |
| Reutilização | Difícil | Fácil ✅ |
| Manutenção | Complexa | Simples ✅ |
| Testabilidade | Baixa | Alta ✅ |
| Features | Básicas | Avançadas ✅ |
Aprenda os fundamentos do Jetpack Compose:
- Como criar interfaces declarativas
- Gerenciamento básico de estado
- Material Design 3
- Arquitetura de componentes
Explore conceitos avançados:
- State hoisting pattern
- Arquitetura modular escalável
- Boas práticas de código
- Padrões de design
Use como base para:
- Implementar persistência (Room)
- Adicionar injeção de dependências (Hilt)
- Integrar com backend
- Aplicar testes unitários
- ARCHITECTURE.md - Guia completo da arquitetura
- Código fonte comentado - Implementação detalhada
Contribuições são sempre bem-vindas! Sinta-se à vontade para:
- 🍴 Fazer fork do projeto
- 🌿 Criar uma branch para sua feature (
git checkout -b feature/AmazingFeature) - 💾 Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - 📤 Push para a branch (
git push origin feature/AmazingFeature) - 🎉 Abrir um Pull Request
- Mantenha o código limpo e bem documentado
- Siga os padrões de código existentes
- Adicione testes quando apropriado
- Atualize a documentação se necessário
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
MIT License
Copyright (c) 2024 Todo App Compose
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...
- 📧 Email: talles-guerra@hotmail.com
- 💼 LinkedIn: Talles Guerra
- 🐙 GitHub: @TallesGuerra
Se este projeto foi útil para você, considere dar uma ⭐ no repositório!
Feito com ❤️ e Jetpack Compose
2026 • Todo App

