A distraction-free, zero-SaaS, 100% offline-first daily executive function and focus companion designed specifically for ADHD and neurodivergent minds.
Core Philosophy • Key Features • Architecture • Getting Started • Privacy • Contributing
Traditional productivity apps often trigger executive dysfunction and cognitive overload through overwhelming feature bloat, push notifications, continuous SaaS upsells, and complex hierarchical tag systems.
BrainHeal (com.emirozturk.brainheal) takes an uncompromising, humane
approach:
- Single-Task Spotlight (Anti-Paralysis): Instead of staring at an endless backlog, the interface narrows down to one active micro-step at a time.
- Energy-First Scheduling: Work is categorized not merely by artificial deadlines, but by real neurological energy states (Low Energy 5–10m, Medium Energy 15–30m, High Focus 45m+).
- Sensory Overload Protection: Clean typography, gentle haptics, optional AMOLED pitch-black theming, and a dedicated Ultra-Minimalist Mode.
- Impulse Spending Shield: A built-in 48-hour cooling-off buffer for impulse desires to curb dopamine-seeking financial behavior.
- Absolute Data Sovereignty: 100% on-device Room database. No accounts, no backend telemetry, no background data harvesting.
- Zero Decision Paralysis: Highlights one specific task on a
distraction-free screen (
FocusSingleTaskScreen). - Flexible Pomodoro Timer: Configurable interval countdowns with quick
extension triggers (
+5m,+10m). - Granular Subtask Chunking: Break intimidating monolith tasks into bite-sized checkboxes.
- Positive Reinforcement: Visual celebration animations and confetti bursts
(
ConfettiCelebrationOverlay) upon micro-milestone completions.
- Triaged Priority Matrix: Simple priority tiers (Urgent & Important, Important, Casual / Low Stakes) with distinctive, high-contrast indicators.
- Energy-Level Tagging: Filter tasks instantly based on current mental
capacity:
- 🟢 Low Energy (5–10 min): Quick wins to build initial momentum.
- 🟡 Medium Energy (15–30 min): Structured, steady-paced duties.
- 🔴 High Focus (45+ min): Deep-work immersion blocks.
- Reactive State Flow: Instant subtask toggling and status transitions backed by Room Flow queries.
- Frictionless Capture: Rapidly dump thoughts, thoughts in flight, or sensory reminders without mandatory tagging or sorting steps.
- Interactive Checklists: Convert any note into a real-time checklist
(
NoteChecklistItem) with single-tap completion. - Color Accent Organization: Distraction-free dark/slate surface palettes
(
NoteEntity) with pin-to-top support.
- Sensory-Gentle Agenda: Clear daily and monthly overviews without stressful
visual clutter (
CalendarScreen). - All-Day & Timed Blocks: Track meetings, self-care checkpoints, and routines with custom color highlights.
- Native Canvas Pie Chart (
ExpensePieChart): Smoothly animated, interactive ComposeCanvasbreakdown of spending categories with tap-to-inspect feedback. - Budget Pacing: Visual progress against daily and monthly threshold budgets.
- ADHD Impulse Spending Protection: Built-in 48-hour cooling-off lock for
non-essential purchase urges (
isImpulseWishlist,coolingHours), preventing regretful impulsive shopping.
- Sensory Decompression: Strips down all secondary tabs, widgets, and
navigations into a singular, high-contrast, essential action interface
(
MinimalistModeScreen). - AMOLED Pitch Black Theme: Minimizes eye fatigue and conserves battery on OLED devices.
- Complete Offline Privacy: All data resides exclusively in SQLite via Room
(
odak_flow_adhd_db). - One-Click JSON Import / Export: Seamless backup and restoration via
BackupJsonExporterandBackupJsonImporterwith clipboard and file-sharing support.
BrainHeal follows the modern Unidirectional Data Flow (UDF) and MVVM architecture, adhering to modern Android Jetpack development best practices.
┌─────────────────────────────────────────────────────────────┐
│ UI LAYER (Compose) │
│ TasksScreen │ FocusSingleTaskScreen │ ExpensesScreen │
│ NotesScreen │ CalendarScreen │ MinimalistScreen │
│ ExpensePieChart (Custom Canvas) │ SettingsScreen │
└──────────────────────────────▲──────────────────────────────┘
│ UI State (StateFlow)
│ User Events (Callbacks)
┌──────────────────────────────┴──────────────────────────────┐
│ VIEWMODEL LAYER │
│ MainViewModel │
│ (StateFlow, CoroutineScope, Timer & Filter State Logic) │
└──────────────────────────────▲──────────────────────────────┘
│ Reactive Kotlin Flows
│ Suspend Functions
┌──────────────────────────────┴──────────────────────────────┐
│ DATA & REPOSITORY LAYER │
│ OdakRepository │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Room Database Engine │ │
│ │ (odak_flow_adhd_db - v2) │ │
│ │ │ │
│ │ • TaskEntity -> TaskDao │ │
│ │ • NoteEntity -> NoteDao │ │
│ │ • ExpenseEntity -> ExpenseDao │ │
│ │ • CalendarEventEntity-> CalendarEventDao │ │
│ │ • AppSettingsEntity -> AppSettingsDao │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ • BackupJsonExporter / BackupJsonImporter (JSON Utils) │
└─────────────────────────────────────────────────────────────┘
| Layer / Domain | Technology | Version | Purpose |
|---|---|---|---|
| Language | Kotlin | 2.2.10 |
100% Kotlin codebase with Coroutines & StateFlow |
| UI Toolkit | Jetpack Compose | 2024.09.00 (BOM) |
Declarative UI, Animations, Custom Canvas Drawing |
| Design System | Material Design 3 | Latest Compose M3 | Adaptive color themes (AMOLED, Dark, Light) |
| Persistence | Room Database | 2.7.0 |
Local relational database with Kotlin Coroutines Flow |
| Architecture | AndroidX Lifecycle | 2.8.7 |
ViewModel, lifecycle-runtime-compose, StateFlow |
| Navigation | Navigation Compose | 2.8.9 |
Seamless in-app routing & tab switching |
| Code Generation | KSP (Symbol Processing) | 2.3.5 |
High-speed annotation processing for Room & Moshi |
| Build System | Gradle Kotlin DSL | AGP 9.1.1 |
Type-safe Gradle builds with Version Catalog (libs.versions.toml) |
| Testing | JUnit4, Roborazzi | 4.13.2 / 1.59.0 |
Unit testing & Screenshot regression testing |
com.emirozturk.brainheal
├── MainActivity.kt # Single Activity entry point & theme coordinator
├── data
│ ├── AppDatabase.kt # Room Database configuration (odak_flow_adhd_db)
│ ├── dao # Data Access Objects (TaskDao, ExpenseDao, NoteDao, etc.)
│ ├── model # Immutable data models & entities
│ │ ├── AppSettingsEntity.kt # Theme, language, budget, and mode settings
│ │ ├── CalendarEventEntity.kt # Schedule & event entity
│ │ ├── ExpenseEntity.kt # Expense entity & impulse protection attributes
│ │ ├── NoteEntity.kt # Notes & checklist structure
│ │ ├── PomodoroMode.kt # Focus & break cycle configurations
│ │ └── TaskEntity.kt # Tasks, subtasks, priority & energy levels
│ └── repository
│ └── OdakRepository.kt # Single source of truth abstracting DAOs
├── ui
│ ├── components # Reusable UI widgets (ExpensePieChart, Confetti, etc.)
│ ├── screens
│ │ ├── calendar # Calendar & Event dialogs
│ │ ├── expenses # Budget, transaction list & expense dialogs
│ │ ├── minimalist # High-contrast sensory-safe single-focus view
│ │ ├── notes # Brain-dump & checklist screen
│ │ ├── settings # Preferences, backup, language & theme controls
│ │ └── tasks # Task triage list & Single Task Focus screen
│ ├── theme # Color schemes, typography, shapes & dynamic theme
│ └── viewmodel
│ └── MainViewModel.kt # Central state holder & business logic dispatcher
└── util
├── BackupJsonExporter.kt # On-device JSON data serialization
└── BackupJsonImporter.kt # Robust validation & JSON deserialization
- JDK: Java Development Kit 17+
- Android Studio: Ladybug (2024.2.1+) or newer
- Android SDK:
compileSdk: 36targetSdk: 36minSdk: 24 (Android 7.0 Nougat+)
-
Clone the repository:
git clone https://github.com/emirozturk/BrainHeal.git cd BrainHeal -
Assemble the debug APK:
./gradlew assembleDebug
-
Run unit & Robolectric tests:
./gradlew testDebugUnitTest
-
Install directly to a connected device or emulator:
./gradlew installDebug
In a world filled with predatory attention economies, BrainHeal is your digital sanctuary:
- 🚫 No Analytics or Telemetry: No Google Analytics, no Mixpanel, no Facebook SDK, no user behavior fingerprinting.
- 🚫 No Network Requirement: The application operates completely offline without needing an active internet connection.
- 🚫 No Accounts or Logins: You never need to sign in, link an email, or submit personal credentials.
- 🛡️ Your Data Stays on Your Device: All your tasks, financial numbers, personal thoughts, and routines are stored exclusively on your device's internal storage and can be backed up as plain JSON anytime.
Contributions from the open-source community, neurodivergent developers, and accessibility advocates are warmly welcomed!
- Fork the Repository
- Create a Feature Branch:
git checkout -b feature/sensory-friendly-improvement - Commit Your Changes:
git commit -m "Add custom interval presets to Focus Mode" - Push to Your Branch:
git push origin feature/sensory-friendly-improvement - Open a Pull Request
Please ensure all changes pass existing unit tests and maintain strict offline privacy.
This project is licensed under the MIT License — see the LICENSE file for full details.