Android client for Livith (sibling of Livith iOS). Agent entry: AGENTS.md.
Gradle project root: android/ (:app).
flowchart TB
subgraph gitRoot ["Git root"]
agents["AGENTS.md"]
docs["docs/"]
androidDir["android/"]
end
subgraph gradle ["android/ (Gradle root)"]
app[":app"]
gradleFiles["build.gradle.kts · settings · libs.versions.toml"]
end
androidDir --> app
androidDir --> gradleFiles
flowchart LR
presentation["presentation"]
domain["domain"]
data["data"]
core["core"]
designsystem["designsystem"]
presentation --> domain
presentation --> designsystem
data --> domain
data --> core
Package root: com.youz2me.livith under android/app/src/main/java/.
flowchart TB
subgraph presentation ["presentation — UI & navigation"]
pMain["MainActivity"]
pNav["navigation/ LivithNavHost"]
pLogin["login/ LoginScreen · LoginViewModel · LoginUiState"]
pPlaceholder["login/ LoginPlaceholderScreens"]
end
subgraph domain ["domain — business contracts"]
dAuth["auth/ SignInUseCase · AuthRepository · SocialAuthPort · AuthError · …"]
end
subgraph data ["data — API & persistence"]
daAuth["auth/ AuthRepositoryImpl · AuthErrorMapper · KakaoSocialAuthPort"]
daApi["auth/remote/ OnboardingApi"]
daRemote["remote/ ServerResponse"]
end
subgraph core ["core — platform & DI"]
cDi["di/ AuthModule · NetworkModule"]
cKakao["auth/ KakaoAuthClient"]
cSession["session/ SessionTokenStore"]
cActivity["activity/ ActivityProvider"]
end
subgraph designsystem ["designsystem — shared visual tokens"]
dsTheme["theme/ Theme · Color · Type"]
end
subgraph app ["app entry"]
LivithApplication["LivithApplication"]
end
pMain --> pNav
pNav --> pLogin
pLogin --> dAuth
daAuth --> dAuth
daAuth --> cKakao
daAuth --> cSession
daAuth --> daApi
daApi --> daRemote
cDi --> daAuth
cDi --> cKakao
pLogin --> dsTheme
LivithApplication --> cKakao
flowchart LR
subgraph test ["android/app/src/test"]
unit["Unit tests e.g. KakaoLoginResponseTest"]
end
subgraph androidTest ["android/app/src/androidTest"]
instrumented["Instrumented tests"]
end
test -.-> data
test -.-> domain
| Area | Choice |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose, Material 3 |
| Architecture | Google-recommended layers (presentation · domain · data), UDF via ViewModel + UiState |
| DI | Hilt |
| Async | Kotlin Coroutines, Flow |
| Navigation | Navigation Compose |
| Network | Retrofit, OkHttp, Kotlin Serialization |
| Local (general) | DataStore Preferences |
| Local (session) | DataStore + Android Keystore (Tink) |
| Auth | Kakao SDK for Android (v2-user) |
| Build | Gradle (AGP), KSP, minSdk 26 |
applicationId |
com.youz2me.livith |