Native Android app for EiraFocus, written in Kotlin and Jetpack Compose.
A local-first mindfulness app for breathing, meditation, and focus. minSdk 31 (Android 12), targetSdk 35.
# JDK 17 required (not 21+ — Kotlin 2.0.21 incompatible with newer JDKs)
brew install openjdk@17
export JAVA_HOME=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home
# Configure SDK location (one-time, do not commit local.properties)
echo "sdk.dir=$HOME/Library/Android/sdk" > local.properties
# Build
./gradlew assembleDebugOpen the project in Android Studio (Koala or newer). It will pick up Gradle 8.10.2, AGP 8.7.2, Kotlin 2.0.21, Compose BOM 2024.10.01.
app/src/main/
├── AndroidManifest.xml
├── kotlin/com/eirafocus/android/
│ ├── EiraFocusApp.kt Application class
│ ├── MainActivity.kt @main entry
│ ├── design/ Color, typography, theme
│ ├── ui/ RootScreen with tab bar
│ └── feature/
│ ├── today/
│ ├── practice/
│ ├── insights/
│ └── you/
└── res/
├── values/ themes, colors, strings
├── values-night/ dark theme
├── drawable/ vector icons
├── mipmap-anydpi-v26/ adaptive launcher
└── xml/ backup + data extraction rules
See plan.md §12.2 for the full architecture rationale. Modular split (core/feature Gradle modules) is planned for Phase 1 — the v0 skeleton is single-module to keep launch simple.
- eirafocus-ios — sibling iOS app
- eirafocus-content — shared content bundle (audio, programs, quotes)
- eirafocus-sync — optional E2E sync backend (private)
- eirafocus-legacy — archived v1 Flutter app
MIT. See LICENSE.