Android architecture
splick-android is Gradle with a composite build-logic. The target architecture matches iOS: presentation, then domain, then data. Hilt for dependency injection, Retrofit for HTTP, DataStore or Keystore-backed storage for the JWT. JSON is snake_case, matching the OpenAPI contract.
The README still says application code has not started. That sentence is stale. The tree contains feature/* modules with real Kotlin. Trust the modules, and fix the README when you next touch onboarding.
Modules
| Module | Role |
|---|---|
:app | Application, navigation, Hilt graph |
:domain | Use cases and models shared by features |
core:common | Result types, dispatchers, small utilities |
core:network | Retrofit, interceptors, auth header, base URL |
core:storage | Token storage |
core:designsystem | Compose theme |
core:localization | en and vi strings |
feature:auth | Login and session |
feature:friends | Social graph UI |
feature:feed | Feed |
feature:media | Capture and upload |
feature:expense | Bills |
feature:messaging | Chat |
feature:notification | Inbox and NotificationTapRouter |
feature:stickers | Stickers |
core:network is the only place that knows the host. Features depend on domain interfaces. Do not call Retrofit from a composable.
Debug builds point at http://localhost:8080/api (emulator host mapping applies). Release points at https://api.splick.app/api. Signing config stays in keystore/ which is local and gitignored. See Android release.