All projects

Native Android App

TaskFlow

Engineered a modular task-management application and enforced Clean Architecture and MVVM patterns for scalability. Integrated Hilt for dependency injection and Room for local persistence with parameterized SQL queries.

Project Overview

TaskFlow is a robust, offline-first productivity platform built entirely natively for Android. The focus was heavily on establishing a scalable foundation utilizing industry-standard Clean Architecture, allowing the UI, domain, and data layers to evolve independently without tight coupling.

The network is optional. Every action — creating a task, reordering priorities, marking something complete — is written to local storage first and only then reconciled with anything outside the device, so the user never waits on a spinner to see the result of their own tap. Room is the single source of truth: every query is exposed as a Flow, so a write anywhere in the app re-emits downstream and the list, the calendar and the notification scheduler all observe the same stream rather than keeping their own copies.

Most small task apps start simple and then calcify: business rules leak into the UI, the database schema quietly becomes the app model, and adding something like a calendar view means touching every screen. Splitting the codebase into Domain, Data and Presentation layers with dependencies pointing inwards avoids that — the domain layer knows nothing about Room, Compose or Android at all, which keeps it unit-testable without an emulator and makes swapping a data source a contained change instead of a rewrite.

Scheduling was the other hard part. Deadline reminders are not held in memory or tied to an activity; they are handed to WorkManager, which persists its queue and re-schedules across reboots and process restarts, with each job keyed by task ID so editing a due date replaces the pending work instead of stacking a duplicate. Completion and deletion are likewise modelled as reversible transitions, so an accidental swipe costs a tap through the undo snackbar rather than costing the task.

On top of that foundation sits a Material Design 3 interface written in Jetpack Compose: live filtering by status, priority and due date, multi-criteria sorting, and a calendar in both day and month modes driven by the same task store as the list.

Architecture & Engineering

  • Clean Architecture separates Domain, Data, and Presentation layers
  • MVVM Pattern paired with Jetpack Compose for declarative UI rendering
  • Hilt for robust dependency injection across the application lifecycle
  • Room Database with parameterized queries for secure, offline-first storage
  • WorkManager for reliable background thread synchronization and daily scheduled notifications

Key Features & Highlights

  • Interactive task creation, sorting, and priority categorization
  • Background synchronization ensuring zero data loss on network drops
  • Dynamic Material Design 3 user interface with dark theme support
  • Scheduled local notifications for task deadlines and calendar view

Technology Stack

KotlinComposeMVVMHiltRoomWorkManager

Screenshots & Visual ArtifactsClick any image to zoom

Task list with live filtering
Task detail view
Create and edit a task
Calendar — day view
Calendar — month view
Multi-criteria sorting
Complete a task with undo
Reminder time picker
Project Repository & Delivery

Explore the full source code, commit history, and architectural implementation on GitHub.

Open to Opportunities

Let's Build Something Exceptional

Have a project in mind, an opportunity to discuss, or looking for a specialized Android engineer / fullstack developer? Let's connect.

Jacobel640@gmail.com

© 2026 Jacob Elcharar. All rights reserved.

Crafted withusing React, Tailwind CSS & Framer Motion