Skip to content

Repository files navigation

TaskFlow API - Gerenciador de Tarefas

Kotlin Jetpack Compose Room Retrofit API HTTP Material 3

Aplicativo Android de gerenciamento de tarefas desenvolvido como projeto final do Módulo Avançado do Curso Capacita Brasil (iRede) - Desenvolvimento Android. O TaskFlow API permite criar, consultar, editar, concluir e excluir tarefas, combinando interface em Jetpack Compose, persistência local com Room e comunicação com uma API externa usando Retrofit.

Objetivo

Aplicar os principais conceitos estudados na formação Android em uma aplicação funcional, com múltiplas telas, navegação, persistência de dados e consumo de API.

Funcionalidades

  • Lista de tarefas pendentes e concluídas.
  • Contador total de tarefas.
  • Acesso à tela de tarefas concluídas.
  • Criação de tarefas com título, descrição e status.
  • Edição de tarefas e alteração do status por checkbox.
  • Exclusão com modal de confirmação reutilizado nos cards e nos detalhes.
  • Tela de detalhes com ID, título, status, descrição e usuário responsável.
  • Loading inicial e loading durante as transições entre telas.
  • Estado vazio exibido somente quando o carregamento termina e não há tarefas.
  • Feedback visual de sucesso e erro por mensagens na interface.
  • Persistência local para manter as tarefas disponíveis no dispositivo.

Preview

Demonstração da Aplicação

Confira abaixo como o TaskFlow API facilita a criação, visualização e exclusão de tarefas de forma simples, rápida e intuitiva.

Acompanhe o funcionamento pelo GIF a seguir:

Preview do TaskFlow API

Requisitos obrigatórios atendidos

1. Interface gráfica

O aplicativo utiliza Jetpack Compose, componentes Material 3 e possui quatro telas distintas:

  • Minhas Tarefas;
  • Tarefas Concluídas;
  • Nova Tarefa;
  • Detalhes da Tarefa.

A navegação entre as telas é feita com Navigation Compose.

2. Persistência local

O projeto utiliza Room Database com:

  • entidade TaskEntity;
  • DAO TaskDao;
  • operações de leitura por Flow;
  • operações de gravação, atualização e exclusão;
  • sincronização do estado efetivo no banco local.

3. Consumo de API

O projeto utiliza Retrofit e Gson para acessar a API externa DummyJSON. A interface remota contém as operações exigidas:

  • GET /todos;
  • GET /todos/{id};
  • POST /todos/add;
  • PUT /todos/{id};
  • DELETE /todos/{id}.

Quando a API não suporta uma alteração específica, o repositório preserva a operação local sem inventar um endpoint ou interromper a experiência do usuário.

Arquitetura

O projeto segue MVVM com Repository:

Compose UI
	↓
TaskViewModel
	↓
TaskRepository
	↓
Room Database / Retrofit API

O estado da interface é exposto pelo TaskViewModel através de StateFlow. As tarefas são observadas pelo Room através de Flow e atualizadas no UiState antes da tela decidir entre lista e estado vazio.

Estrutura do projeto

  • app/src/main/java/com/francisco/taskflow/MainActivity.kt — inicialização da aplicação e gate de carregamento inicial.
  • app/src/main/java/com/francisco/taskflow/ui/screens/ — telas Compose.
  • app/src/main/java/com/francisco/taskflow/ui/navigation/ — rotas e Navigation Compose.
  • app/src/main/java/com/francisco/taskflow/ui/components/ — cards, loading e diálogo de exclusão.
  • app/src/main/java/com/francisco/taskflow/ui/theme/ — cores, tipografia e tema Material 3.
  • app/src/main/java/com/francisco/taskflow/viewmodel/ — estado e regras de interação da interface.
  • app/src/main/java/com/francisco/taskflow/repository/ — orquestração entre API e banco local.
  • app/src/main/java/com/francisco/taskflow/data/local/ — entidade, DAO e banco Room.
  • app/src/main/java/com/francisco/taskflow/data/remote/ — API Retrofit, DTOs e conversões.

Tecnologias

  • Kotlin;
  • Jetpack Compose;
  • Material 3;
  • Navigation Compose;
  • Room Database;
  • Retrofit e Gson;
  • Coroutines e Flow;
  • KSP para o compilador do Room;
  • Gradle Kotlin DSL.

Requisitos opcionais

Como o TaskFlow API tem como foco o gerenciamento e a organização de uma lista de tarefas, não foi identificada necessidade de utilizar câmera, GPS, galeria, arquivos, sensores ou notificações locais na implementação atual. Esses recursos são opcionais no enunciado e poderão ser avaliados e incorporados em uma futura atualização da aplicação, caso sejam relevantes para a evolução do projeto.

Requisitos para execução

  • Android Studio;
  • JDK 17;
  • Android SDK com compileSdk 35;
  • dispositivo físico ou emulador com Android 7.0 (API 24) ou superior.

Como executar

Na raiz do projeto, no Windows:

.\gradlew.bat assembleDebug --console=plain

Para instalar em um dispositivo conectado via ADB:

.\gradlew.bat installDebug --console=plain

No macOS ou Linux:

./gradlew assembleDebug --console=plain

O APK de debug é gerado em:

app/build/outputs/apk/debug/app-debug.apk

Validação da entrega

O projeto foi compilado e instalado com sucesso durante a validação final:

:app:compileDebugKotlin
BUILD SUCCESSFUL

:app:installDebug
Installed on 1 device.
BUILD SUCCESSFUL

Conclusão

O TaskFlow API foi desenvolvido para cumprir os critérios do desafio final do Módulo Avançado do Curso Capacita Brasil (iRede) - Desenvolvimento Android, demonstrando o uso de Kotlin, Jetpack Compose, Room, MVVM, Retrofit (API) e Gson com um app funcional de gerenciamento de tarefas.

Contribuição

Se quiser contribuir com feedback ou sugestões, fique à vontade para abrir uma Issue ou enviar ideias.

Licença

Este projeto está licenciado sob a Licença MIT.

Veja o arquivo LICENSE para mais detalhes.

Autor

Projeto desenvolvido por Isaias Oliveira.
Conecte-se comigo no in/isaias-oliveira-dev

About

Aplicativo Android de gerenciamento de tarefas, desenvolvido como desafio final do módulo avançado do curso Capacita Brasil (iRede) - Desenvolvimento Android.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages