Implement Phase 1: project skeleton and data layer

Android project with Kotlin, Jetpack Compose, and Room. Includes:
- Gradle build system with version catalog, foojay JDK resolver, lint config
- Room entities (Notebook, Page, Stroke) with packed float BLOB encoding
- DAOs and repositories for all entities
- Unit tests for blob roundtrip and PageSize enum (10 tests, all passing)
- Minimal Application class and stub MainActivity

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-24 14:03:57 -07:00
parent 47778222b7
commit 0b53023a25
35 changed files with 1090 additions and 14 deletions

View File

@@ -15,9 +15,25 @@ See PROJECT_PLAN.md for the full step list.
- [x] 0.4: Updated CLAUDE.md — build commands, source tree, project doc
pointers.
### Phase 1: Project Skeleton + Data Layer (2026-03-24)
- [x] 1.1: Generated Android project — Gradle 8.14.2, AGP 8.10.1, Kotlin 2.1.20
- [x] 1.2: Version catalog with Compose BOM 2026.03.00, Room 2.8.4,
Navigation 2.9.7, Lifecycle 2.10.0
- [x] 1.3: Lint configured — warningsAsErrors, AGP version check suppressed
(AGP 9.x needs Gradle 9.x)
- [x] 1.4: Room entities: Notebook, Page, Stroke, PageSize enum
- [x] 1.5: Converters: FloatArray ↔ ByteArray (packed little-endian)
- [x] 1.6: DAOs: NotebookDao, PageDao, StrokeDao
- [x] 1.7: EngPadDatabase (Room, version 1)
- [x] 1.8: NotebookRepository, PageRepository
- [x] 1.9: Unit tests: StrokeBlobTest (6 tests), PageSizeTest (4 tests) — all pass
- Foojay resolver added for automatic JDK toolchain download
- compileSdk/targetSdk bumped to 36 (required by latest androidx dependencies)
## In Progress
Phase 1: Project Skeleton + Data Layer
Phase 2: Notebook List Screen
## Decisions & Deviations