Sobre • Funcionalidades • Screenshots • Tecnologias • Arquitetura • Instalação • Como Usar • Autor
Task Master é uma aplicação completa de gestão de tarefas desenvolvida em Flutter, focada em simplicidade, eficiência e boa experiência do utilizador. O projeto demonstra implementação de CRUD completo, persistência de dados, filtros dinâmicos e estatísticas em tempo real.
- ✅ Praticar desenvolvimento Flutter com boas práticas
- ✅ Implementar CRUD completo com persistência de dados
- ✅ Aplicar princípios de Clean Code e arquitetura limpa
- ✅ Criar interface moderna com Material Design 3
- ✅ Desenvolver portfolio profissional
- ➕ Adicionar tarefas - Dialog com validação de campos
- 📋 Listar tarefas - ListView dinâmico com scroll
- ✅ Marcar como completa - Toque simples para alternar estado
- ✏️ Editar tarefas - Toque longo abre dialog de edição
- 🗑️ Apagar tarefas - Swipe to delete com confirmação
- SharedPreferences - Dados salvos localmente
- Serialização JSON - Conversão automática de objetos
- Carregamento automático - Dados carregados ao abrir app
- Filtro "Todas" - Mostra todas as tarefas
- Filtro "Completas" - Apenas tarefas concluídas
- Filtro "Incompletas" - Apenas tarefas pendentes
- Visual feedback - Botões com estado selecionado
- Contador de tarefas - Total, completas e incompletas
- Percentagem de conclusão - Cálculo automático
- Barra de progresso - Visualização gráfica do progresso
- Atualização dinâmica - Muda conforme interações
- Material Design 3 - Design moderno e consistente
- Feedback visual - Ícones de estado (✅/⭕)
- Texto riscado - Tarefas completas ficam riscadas
- Animações suaves - Transições ao adicionar/remover
- Dialog de confirmação - Previne exclusões acidentais
- Campos pré-preenchidos - Ao editar, mostra dados atuais
- Flutter 3.24 - Framework multiplataforma
- Dart 3.5 - Linguagem de programação
dependencies:
flutter:
sdk: flutter
shared_preferences: ^2.3.3 # Persistência local- Model-View - Separação de responsabilidades
- StatefulWidget - Gerenciamento de estado local
- Builder Pattern - Construção de widgets dinâmicos
- Factory Constructor - Deserialização de objetos
- ✅ CRUD completo (Create, Read, Update, Delete)
- ✅ Persistência de dados com SharedPreferences
- ✅ Serialização/Deserialização JSON
- ✅ Callbacks para comunicação entre widgets
- ✅ Filtros dinâmicos com lógica condicional
- ✅ Estatísticas calculadas em tempo real
- ✅ Validação de formulários
- ✅ Gestures (tap, long press, swipe)
flutter_task_master/
├── lib/
│ ├── models/
│ │ └── task.dart # Modelo de dados Task
│ ├── views/
│ │ └── pages/
│ │ └── tasks_page.dart # Página principal
│ └── main.dart # Entry point
│
├── screenshots/ # Screenshots da aplicação
├── .gitignore # Arquivos ignorados
├── LICENSE # Licença MIT
├── README.md # Este arquivo
└── pubspec.yaml # Dependências
┌─────────────────────────────────────────────┐
│ TasksPage (State) │
│ ┌───────────────────────────────────────┐ │
│ │ List<Task> _tasks = [] │ │
│ │ String _filtroAtual = 'todas' │ │
│ └───────────────────────────────────────┘ │
│ │ │
│ ┌─────────┼─────────┐ │
│ ▼ ▼ ▼ │
│ _saveTasks _loadTasks Filtros │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ SharedPreferences JSON ListView.builder │
└─────────────────────────────────────────────┘
- Flutter SDK 3.24 ou superior
- Dart SDK 3.5 ou superior
- Android Studio ou Xcode (para emuladores)
- VS Code ou Android Studio (IDEs recomendadas)
flutter doctor# 1. Clone o repositório
git clone https://github.com/CLopes86/flutter-task-master.git
# 2. Entre no diretório
cd flutter-task-master
# 3. Instale as dependências
flutter pub get
# 4. Execute a aplicação
flutter run- ✅ Android - API 21+
- ✅ iOS - iOS 12+
⚠️ Web - Não otimizado⚠️ Desktop - Não testado
- Toque no botão "+" (canto inferior direito)
- Preencha o título (obrigatório)
- Preencha a descrição (opcional)
- Toque em "Adicionar"
- Toque simples na tarefa para alternar entre completa/incompleta
- O ícone muda de ⭕ (cinza) para ✅ (verde)
- O texto fica riscado quando completa
- Toque longo (pressione e segure) na tarefa
- Altere o título e/ou descrição
- Toque em "Salvar"
- Deslize a tarefa para a esquerda
- Confirme a exclusão no dialog
- Toque em "Todas" - mostra todas as tarefas
- Toque em "Completas" - mostra só as concluídas
- Toque em "Incompletas" - mostra só as pendentes
- Card no topo mostra:
- Total de tarefas
- Tarefas completas e incompletas
- Percentagem de conclusão
- Barra de progresso visual
- Tema escuro (Dark Mode)
- Animações avançadas
- Feedback háptico
- Ícones personalizados
- Categorias/Tags para tarefas
- Prioridades (Alta, Média, Baixa)
- Data de vencimento (Deadline)
- Notificações
- Pesquisa de tarefas
- Ordenação customizada
- Migrar para SQLite/Hive
- Backup em nuvem
- Sincronização multi-dispositivo
- Export/Import de dados
- Testes unitários
- Testes de integração
- CI/CD com GitHub Actions
- Análise de código (linting)
Contribuições são bem-vindas! Para contribuir:
- Faça fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/NovaFuncionalidade) - Commit suas mudanças (
git commit -m 'feat: adiciona nova funcionalidade') - Faça push para a branch (
git push origin feature/NovaFuncionalidade) - Abra um Pull Request
Seguimos o padrão Conventional Commits:
feat: Nova funcionalidadefix: Correção de bugdocs: Documentaçãostyle: Formatação de códigorefactor: Refatoração de códigotest: Testeschore: Tarefas de build/configuração
Estudante de Ciências Informáticas e Multimédia
Instituto Politécnico de Castelo Branco | Portugal
Apaixonado por desenvolvimento mobile e tecnologias Flutter
- Linhas de código: ~800 linhas
- Tempo de desenvolvimento: ~15 horas
- Commits: 5+
- Funcionalidades: 15+
- Packages externos: 1 (shared_preferences)
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
✅ Uso comercial
✅ Modificação
✅ Distribuição
✅ Uso privado
❌ Responsabilidade
❌ Garantia
- Comunidade Flutter - Pela documentação e suporte
- Instituto Politécnico de Castelo Branco - Pela formação
- Você - Por visitar este projeto!