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.
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.
- 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.
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:
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.
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.
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.
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.
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.
- Kotlin;
- Jetpack Compose;
- Material 3;
- Navigation Compose;
- Room Database;
- Retrofit e Gson;
- Coroutines e Flow;
- KSP para o compilador do Room;
- Gradle Kotlin DSL.
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.
- Android Studio;
- JDK 17;
- Android SDK com compileSdk 35;
- dispositivo físico ou emulador com Android 7.0 (API 24) ou superior.
Na raiz do projeto, no Windows:
.\gradlew.bat assembleDebug --console=plainPara instalar em um dispositivo conectado via ADB:
.\gradlew.bat installDebug --console=plainNo macOS ou Linux:
./gradlew assembleDebug --console=plainO APK de debug é gerado em:
app/build/outputs/apk/debug/app-debug.apk
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
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.
Se quiser contribuir com feedback ou sugestões, fique à vontade para abrir uma Issue ou enviar ideias.
Este projeto está licenciado sob a Licença MIT.
Veja o arquivo LICENSE para mais detalhes.
Projeto desenvolvido por Isaias Oliveira.
Conecte-se comigo no in/isaias-oliveira-dev
