mirror of
https://github.com/AdrianKuta/KahootQuiz.git
synced 2025-09-15 01:24:23 +02:00

This commit introduces the data layer, including the `QuizRepository` and its implementation, and integrates it with the domain layer's `GetQuizUseCase`. It also sets up Hilt for dependency injection in the app module and makes preliminary UI changes to display fetched quiz data. Key changes include: - **Data Layer (`model:data` module):** - Added `QuizRepositoryImpl` which implements `QuizRepository` from the domain layer. - Implemented `getQuiz()` in `QuizRepositoryImpl` to fetch quiz data from `QuizApi` and map it to the domain `Quiz` model using `QuizMapper`. - Created `QuizMapper` to convert `QuizResponseDto` to the domain `Quiz` model. - Added `RepositoryModule` for Hilt to provide `QuizRepository` bindings. - **Domain Layer (`domain` module):** - Created `Quiz` domain model. - Defined `QuizRepository` interface. - Implemented `GetQuizUseCase` to interact with `QuizRepository`. - **App Module (`app` module):** - Added `MyApplication` class annotated with `@HiltAndroidApp`. - Updated `AndroidManifest.xml` to use `MyApplication` and add internet permission. - In `MainActivity`: - Injected `GetQuizUseCase`. - Used `LaunchedEffect` to call the use case and update a mutable state `quizId`. - Modified the `Greeting` composable to display the fetched `quizId`. - Added dependency on the `domain` module in `app/build.gradle.kts`. - **Network Layer (`core:network` module):** - Moved DTOs from `core.network.model` package to `core.network.models`. - Made `NetworkModule` internal. - Removed unused `QuizService` interface and `QuizServiceImpl` class. - **Testing (`core:network` test):** - Updated import path for `QuizResponseDto` in `QuizResponseDtoParsingTest`.
37 lines
927 B
Plaintext
37 lines
927 B
Plaintext
plugins {
|
|
alias(libs.plugins.kotlin.serialization)
|
|
alias(libs.plugins.kahootquiz.android.application.compose)
|
|
alias(libs.plugins.kahootquiz.android.application.hilt)
|
|
}
|
|
|
|
android {
|
|
namespace = "dev.adriankuta.kahootquiz"
|
|
|
|
defaultConfig {
|
|
applicationId = "dev.adriankuta.kahootquiz"
|
|
versionCode = 1
|
|
versionName = "1.0"
|
|
|
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
isMinifyEnabled = false
|
|
proguardFiles(
|
|
getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
"proguard-rules.pro"
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation(projects.ui.quiz)
|
|
implementation(projects.domain)
|
|
|
|
implementation(projects.model.data)
|
|
|
|
implementation(libs.androidx.activity.compose)
|
|
implementation(libs.androidx.hilt.navigation.compose)
|
|
} |