Skip to content
akramsdmPublic

About

Native Android habit-enforcement app inspired by Atomic Habits. Routines materialize into daily logs with scheduled alarms and a 5-level "friction" dismissal system (tap → cognitive task → QR scan → step proof) that makes skipping harder than doing. Kotlin, Compose, Room, Hilt.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Allyday

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.

Core Concept

  • 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.

Project Structure

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.

Build Instructions

  1. Ensure you have the latest Android Studio installed.
  2. Clone the repository.
  3. Run ./gradlew assembleDebug to build the project.
  4. Run the app on an emulator or physical device.

Tech Stack

  • 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

Requirements

  • minSdk 26, targetSdk 35
  • Gradle 9.2.1

Status

Actively in development, spec-driven (see docs/ for PRD, Concept Doc, and User Journey). Testing coverage is currently minimal.

About

Native Android habit-enforcement app inspired by Atomic Habits. Routines materialize into daily logs with scheduled alarms and a 5-level "friction" dismissal system (tap → cognitive task → QR scan → step proof) that makes skipping harder than doing. Kotlin, Compose, Room, Hilt.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages