Focus Flow.
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 (
minSdk24,compileSdk/targetSdk34), 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
minSdk24 (Android 7.0) or newer
Getting Started
-
Clone the repository:
git clone https://github.com/dilrukshax/FocusFlow cd FocusFlow -
Open the project in Android Studio (File → Open → select the project root).
-
Let Gradle sync and download dependencies.
-
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:
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
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.
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.