Skip to content

jsb-nci/simple-task-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Simple Task Manager (Jetpack Compose)

A simple task management Android app built using modern Android architecture with Jetpack Compose, MVVM, and StateFlow.

This project was created to using modern Android development patterns while building a functional task management application.


Features

  • Add tasks using bottom input field
  • Toggle task completion
  • Delete tasks
  • Filter tasks:
    • All
    • Active
    • Completed
  • Bottom input UX for easier one-hand usage
  • Clean architecture with repository layer

Tech Stack

  • Kotlin
  • Jetpack Compose
  • Material 3
  • MVVM Architecture
  • StateFlow
  • Repository Pattern

Project Architecture

The project follows a layered architecture:

UI (Compose)

ViewModel

Repository Interface

Repository Implementation (In-Memory)


Folder Structure

ui/
   home/
      HomeScreen.kt
      HomeViewModel.kt
      HomeUiState.kt

domain/
   model/
      Task.kt

data/
   repository/
      TaskRepository.kt
      TaskRepositoryImpl.kt

How It Works

  • The ViewModel manages UI state using StateFlow.
  • The Repository layer handles task operations like add, toggle, and delete.
  • The UI collects state using collectAsState() and automatically recomposes when data changes.

Example:

val state by viewModel.uiState.collectAsState()

This ensures the UI always reflects the latest application state.


UX Improvements

Some small UX improvements implemented:

  • Bottom task input for easier reach
  • Keyboard Done action adds tasks
  • Keyboard automatically dismisses after submission
  • Filter chips highlight the selected filter
  • Empty state messages when there are no tasks

Future Improvements

Planned improvements for the project:

  • Room database for persistence
  • Coroutines for async data operations
  • Loading and error state handling
  • Edit task functionality
  • Undo delete with Snackbar
  • Unit tests for ViewModel
  • Dependency injection (Hilt)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages