Allyday is a native Android app that turns your routines into a daily plan — and makes them stick. Inspired by Atomic Habits, it moves beyond simple reminders: each routine template is materialized into scheduled alarms, and skipping one gets progressively harder through a tunable "friction" system rather than a single dismissible notification.
- Define recurring routine templates (fixed-time, time-window, or pattern-based).
- Tag days (e.g. "Work Day", "Holiday") to control which routines apply when.
- The app resolves templates + day tags into a deterministic daily log with scheduled alarms.
- Each alarm enforces adherence through a friction level (0–4) — the harder it is to dismiss, the harder it is to skip:
| Level | Challenge |
|---|---|
| 0 | Tap to dismiss |
| 1 | Delay lock — snooze with escalating volume |
| 2 | Cognitive task (arithmetic/memory) |
| 3 | QR scan at a registered location |
| 4 | Movement proof (step detection) |
Completion is tracked honestly — Done / Missed / Avoided / Skipped — rather than just a checkmark.
The project follows a clean architecture approach with the following package structure:
data/: Data source implementations (Room, Preferences, etc.)domain/: Business logic, use cases, and repository interfaces (DayResolver,TagRuleEngine,PatternScheduler).scheduling/: WorkManager and AlarmManager logic.friction/: Multi-level alarm dismissal logic — the core differentiator.ui/: Compose screens and components.theme/: Theming and styling (Electric Black theme).today/: Today's task management.routines/: Routine building and management.plan/: Long-term planning features.insights/: Data visualization and productivity insights.common/: Shared UI components and modifiers.
di/: Hilt dependency injection modules.
- Ensure you have the latest Android Studio installed.
- Clone the repository.
- Run
./gradlew assembleDebugto build the project. - Run the app on an emulator or physical device.
- Language: Kotlin 2.0.21
- UI: Jetpack Compose (Material 3)
- DI: Hilt
- Persistence: Room (with KSP)
- Background Tasks: WorkManager & AlarmManager
- Sensors: Fused Location Provider
- Vision: CameraX + ML Kit Barcode Scanning, ZXing (QR generation)
- Async: Kotlin Coroutines & Flow
minSdk26,targetSdk35- Gradle 9.2.1
Actively in development, spec-driven (see docs/ for PRD, Concept Doc, and User Journey). Testing coverage is currently minimal.