back to work
2024 · android · productivity

Focus Flow.

stack
  • kotlin
  • android studio
status
built

README.md

dilrukshax/FocusFlow

GitHub

FocusFlow

A simple Android task manager written in Kotlin. Users create, edit, prioritize, and delete tasks that are stored locally on the device with SQLite. The app is a single-activity Android Studio project using view binding and Material components.

Project Status

Portfolio / course Android project. Implements the core read/create/update/delete flow for tasks with local SQLite persistence. Not published to any app store.

Key Features

  • View all tasks with title, content, due date, and priority (low / medium / high)
  • Add new tasks with custom details
  • Edit existing tasks
  • Delete tasks with confirmation
  • Task prioritization by level
  • Local on-device storage via SQLiteOpenHelper (no network backend)

Architecture

A single MainActivity lists tasks through a RecyclerView with a NotesAdapter. NewNote and UpdateNoteActivity handle create and edit; DatePickerFragment provides date selection. Persistence is handled by NoteDatabaseHelp, a SQLiteOpenHelper subclass that manages one table (alltasks) in taskapp.db.

Technology Stack

  • Language: Kotlin
  • Platform: Android (minSdk 24, compileSdk/targetSdk 34), Java 8 compatibility
  • UI: AndroidX appcompat, Material Components, ConstraintLayout, RecyclerView, view binding
  • Persistence: raw SQLite via SQLiteOpenHelper (no Room, no ViewModel)
  • Build: Gradle Kotlin DSL, AGP 8.2.2, Kotlin 1.9.22
  • Testing: JUnit 4 (unit), AndroidX Test + Espresso (instrumented) — only the Android Studio template test stubs are present

Repository Structure

.
├── app/
│   ├── build.gradle.kts
│   └── src/
│       ├── main/
│       │   ├── java/com/example/focusflow/
│       │   │   ├── MainActivity.kt
│       │   │   ├── NewNote.kt
│       │   │   ├── UpdateNoteActivity.kt
│       │   │   ├── NotesAdapter.kt
│       │   │   ├── Note.kt
│       │   │   ├── NoteDatabaseHelp.kt
│       │   │   └── DatePickerFragment.kt
│       │   ├── res/                 # layouts, drawables, strings, themes
│       │   └── AndroidManifest.xml
│       ├── test/                    # ExampleUnitTest.kt (stub)
│       └── androidTest/            # ExampleInstrumentedTest.kt (stub)
├── build.gradle.kts
├── settings.gradle.kts
├── gradle/
├── gradlew
└── gradlew.bat

Prerequisites

  • Android Studio
  • Android SDK 34 (build tools)
  • An emulator or physical device running Android minSdk 24 (Android 7.0) or newer

Getting Started

  1. Clone the repository:

    git clone https://github.com/dilrukshax/FocusFlow
    cd FocusFlow
    
  2. Open the project in Android Studio (File → Open → select the project root).

  3. Let Gradle sync and download dependencies.

  4. Build and run on an emulator or physical device:

    • Select a run configuration and press Run, or

    • From the command line:

      ./gradlew assembleDebug
      # install on a connected device/emulator
      ./gradlew installDebug
      

Testing

Only the Android Studio template test stubs (ExampleUnitTest.kt, ExampleInstrumentedTest.kt) are present; there are no project-specific tests.

./gradlew test               # unit tests
./gradlew connectedCheck     # instrumented tests (needs device/emulator)

Tests were not executed as part of this documentation update.

Screenshots

Task list, add task, edit task, and delete-with-confirmation views:

Task list Add task Edit task Delete task Delete task confirmation

Deployment

This is an Android application; "deployment" means building the APK/AAB and installing on a device. No backend or deployment URL.

Contributing

This is a personal portfolio project. If you'd like to suggest improvements, please open an issue first to discuss the change.

License

Licensed under the MIT License.

Author

Dilan Dilruksha
Software Engineer | Backend & Full-Stack Development
Portfolio: https://dilandilruksha.dev
LinkedIn: https://www.linkedin.com/in/dilan-dilruksha
GitHub: https://github.com/dilrukshax

overview

Android task management app designed to help users efficiently organise work and improve productivity. Task categorisation, reminders, and progress tracking come together to reduce context-switching and keep users on track.

approach

Native Android app built in Kotlin with Android Studio. Features task categorisation with custom labels, reminder scheduling via Android AlarmManager, and a progress dashboard that visualises completion rate and daily streaks.