herel
294aebd0b4
feat: add AuthViewModel, ScheduleViewModel, and EventDetailViewModel with StateFlow
2026-07-08 17:25:41 +02:00
herel
bb13a12d00
feat: add event filtering logic, TypeFilter enum, AuthSettings, and OAuthClient interface
2026-07-08 17:16:01 +02:00
herel
b61b6408f3
fix: bump kotlinx-datetime to 0.7.1, scope ExperimentalTime opt-in to saveEvents
2026-07-08 17:14:56 +02:00
herel
11c0a92421
feat: add ScheduleCache with multiplatform-settings for offline caching
2026-07-08 17:10:45 +02:00
herel
b1661aaa4f
feat: add Ktor networking layer with ApiService and auth token holder
...
Add ApiConfig, AuthTokenHolder singleton, expect/actual HttpClient
engine factories (CIO for Android/Desktop, Darwin for iOS), and
ApiService with four GET endpoints. Bearer token from AuthTokenHolder
is injected as Authorization header on each request.
Adjusted for Ktor 3.5.1: HttpClientEngineFactory lives in
io.ktor.client.engine; the timeout plugin is HttpTimeout (package
io.ktor.client.plugins), not HttpTimeoutPlugin. Tests wrap suspend
calls in runTest and assert request URLs without a trailing '?'.
2026-07-08 17:07:20 +02:00
herel
a24297f821
feat: add serializable data models with FlexibleStringSerializer for number coercion
2026-07-08 17:02:31 +02:00
herel
c931ec7143
fix: add missing Text import in desktop Main.kt
...
Task 1 scaffold omitted the material3 Text import, blocking desktop
compilation. Required to run common tests via desktopTest.
2026-07-08 17:02:29 +02:00
herel
9ee5b1c415
fix: correct tooling versions (Gradle 9.5.1, AGP 8.13.2) and add Kotlin Compose plugin
...
- AGP 2.1.3 doesn't exist; use 8.13.2 (latest stable 8.x)
- Gradle 9.6.1 incompatible with AGP 8.x; use 9.5.1
- Add org.jetbrains.kotlin.plugin.compose (required since Compose MP 1.6.10)
- Fix source set access (by getting) and iOS Darwin dependency injection
- Remove instrumentedTestVariant (KotlinSourceSetTree unresolved)
2026-07-08 16:59:26 +02:00
herel
15ae8cd046
feat: scaffold KMP project with Compose Multiplatform (Android, iOS, Desktop)
2026-07-08 16:53:13 +02:00