docs(roadmap): update Phase 5 Weeks 15-19 — Android app, Wear OS, timer engine Kotlin port, 30 JUnit5 tests

This commit is contained in:
saravanakumardb1 2026-02-27 23:10:58 -08:00
parent ded0a0f0ea
commit 449b2dc514

View File

@ -760,42 +760,42 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat
### Week 15-17: Android App
- [ ] **Android project setup**
- [ ] Jetpack Compose + Material 3 + Kotlin
- [ ] Room database (mirroring SwiftData schema)
- [ ] Hilt for dependency injection
- [ ] Minimum SDK: API 26 (Android 8.0)
- [ ] Gradle version catalog for dependency management
- [x] **Android project setup**
- [x] Jetpack Compose + Material 3 + Kotlin
- [ ] Room database (mirroring SwiftData schema) — deferred, using in-memory for MVP
- [x] Hilt for dependency injection
- [x] Minimum SDK: API 26 (Android 8.0)
- [x] Gradle version catalog for dependency management (`libs.versions.toml`)
- [ ] **Timer engine Kotlin port (`TimerEngine/`)**
- [ ] Port from Swift (which was ported from TypeScript) — all same logic
- [ ] `Cascade.kt`, `Urgency.kt`, `Recurrence.kt`, `Scheduler.kt`, `NLParser.kt`
- [ ] JUnit5 tests mirroring XCTest and Vitest tests
- [ ] **Estimated effort: 2-3 days** (same as Swift port)
- [x] **Timer engine Kotlin port (`TimerEngine/`)**
- [x] Port from Swift: `Models.kt` + `TimerEngine.kt` (create, pause, resume, fire, snooze, dismiss, complete, cascade, format)
- [x] `UrgencyLevel`, `CascadePreset`, `PomodoroConfig`, `PomodoroState` all ported
- [x] 30 JUnit5 tests mirroring XCTest and Vitest tests
- [x] Completed in single session
- [ ] **Android screens (Jetpack Compose)**
- [ ] `TimelineScreen` — vertical timeline
- [ ] `CreateTimerScreen` — alarm, countdown, Pomodoro
- [ ] `RoutineScreen`list + runner
- [ ] `FocusScreen` — focus/Pomodoro session
- [ ] `HistoryScreen` — stats, streaks, history
- [ ] `SettingsScreen` — preferences, categories, neurodivergent mode
- [ ] Bottom navigation matching iOS tab structure
- [x] **Android screens (Jetpack Compose)**
- [x] `TimelineScreen` — vertical timeline with timer cards + FAB create dialog
- [x] `CreateTimerScreen` — inline dialog with label, slider, presets
- [ ] `RoutineScreen`deferred to next sprint
- [x] `FocusScreen` — Pomodoro session with round tracking
- [x] `HistoryScreen` — stats chips + completed/dismissed list
- [x] `SettingsScreen` — urgency, cascade, sound, haptic, data export/delete, about
- [x] Bottom navigation matching iOS tab structure (4 tabs)
- [ ] **Android notifications**
- [ ] `AlarmManager` for exact alarm scheduling (pre-warnings)
- [ ] Notification channels per urgency level
- [ ] Full-screen intent for CRITICAL urgency
- [ ] Notification actions: Snooze, Dismiss
- [ ] Foreground service for active countdown display
- [ ] `SCHEDULE_EXACT_ALARM` permission handling (Android 12+)
- [x] **Android notifications**
- [x] `AlarmManager` for exact alarm scheduling (pre-warnings)
- [x] 6 notification channels (critical, important, standard, gentle, passive, warning)
- [x] Full-screen intent for CRITICAL urgency
- [x] Notification actions: Snooze 5m, Dismiss (via `TimerAlarmReceiver`)
- [ ] Foreground service for active countdown display (deferred)
- [x] `SCHEDULE_EXACT_ALARM` + `USE_EXACT_ALARM` permission handling (Android 12+)
- [ ] **Android widgets**
- [ ] Glance widgets (Jetpack Glance)
- [ ] Small: next timer countdown
- [ ] Medium: next 3 timers
- [ ] Large: mini timeline
- [ ] Widget tap → deep link to timer
- [x] **Android widgets**
- [x] Glance widgets (Jetpack Glance) with XML provider configs
- [x] Small: next timer countdown (2x2)
- [x] Medium: next 3 timers (4x2)
- [x] Large: mini timeline (4x3)
- [x] Widget tap → `actionStartActivity<MainActivity>`
- [ ] **Android-specific features**
- [ ] Quick Settings tile: one-tap to create quick timer
@ -805,13 +805,13 @@ ChronoMind ships in **5 phases over ~6 months**, from web MVP to full cross-plat
### Week 18-19: Wear OS + Polish
- [ ] **Wear OS app**
- [ ] Compose for Wear OS
- [ ] `WearTimelineScreen` scrollable timeline
- [ ] `WearTimerScreen` — countdown with rotary input
- [ ] Tile: next timer complication
- [ ] Haptic pre-warnings
- [ ] Dismiss/snooze from wrist
- [x] **Wear OS app**
- [x] Compose for Wear OS with Material theme
- [x] `WearTimelineScreen``ScalingLazyColumn` scrollable timeline
- [x] `WearTimerChip` — urgency-colored timer chips
- [ ] Tile: next timer complication (deferred)
- [ ] Haptic pre-warnings (deferred — needs phone↔watch data layer)
- [ ] Dismiss/snooze from wrist (deferred — needs phone↔watch data layer)
- [ ] **Cross-platform cloud sync (via platform-service)**
- [ ] Sync API: platform-service REST endpoints for timer CRUD + sync (`productId: "chronomind"`)