Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 21 additions & 3 deletions composeApp/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@

import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask

plugins {
alias(libs.plugins.kotlinMultiplatform)
Expand All @@ -8,6 +10,7 @@ plugins {
alias(libs.plugins.composeCompiler)
alias(libs.plugins.google.services)
alias(libs.plugins.firebase.crashlytics)
alias(libs.plugins.ksp)
}

kotlin {
Expand Down Expand Up @@ -35,9 +38,6 @@ kotlin {
implementation(compose.preview)
implementation(libs.androidx.activity.compose)

implementation(libs.koin.android)
implementation(libs.koin.androidx.compose)

implementation(libs.firebase.analytics)
implementation(project.dependencies.platform(libs.firebase.bom))
implementation(libs.firebase.crashlytics.ktx)
Expand All @@ -57,15 +57,31 @@ kotlin {
implementation(libs.adaptive.navigation)
//koin
api(libs.koin.core)
api(libs.koin.annotations)
implementation(libs.koin.compose)
implementation(libs.koin.compose.viewmodel)
}
commonTest.dependencies {
implementation(libs.kotlin.test)
}
}

sourceSets.named("commonMain").configure {
kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin")
}
}

ksp {
arg("KOIN_CONFIG_CHECK","true")
}

project.tasks.withType(KotlinCompilationTask::class.java).configureEach {
if (name != "kspCommonMainKotlinMetadata") {
dependsOn("kspCommonMainKotlinMetadata")
}
}


android {
namespace = "org.example.project"
compileSdk = libs.versions.android.compileSdk.get().toInt()
Expand Down Expand Up @@ -95,5 +111,7 @@ android {

dependencies {
debugImplementation(compose.uiTooling)
add("kspCommonMainMetadata", libs.koin.ksp.compiler)

}

Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,10 @@ package org.example.project

import android.app.Application
import org.example.project.di.initKoin
import org.koin.android.ext.koin.androidContext

class MyApp : Application() {
override fun onCreate() {
super.onCreate()
initKoin {
androidContext(this@MyApp)
}

initKoin ()
}
}

This file was deleted.

5 changes: 1 addition & 4 deletions composeApp/src/commonMain/kotlin/org/example/project/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,11 @@ import androidx.compose.runtime.Composable
import org.example.project.presentation.designsystem.textstyle.AppTheme
import org.example.project.presentation.ui.screens.setupScreens.AccountSetupCategoryScreen
import org.jetbrains.compose.ui.tooling.preview.Preview
import org.koin.compose.KoinContext

@Composable
@Preview
fun App() {
AppTheme {
KoinContext {
AccountSetupCategoryScreen()
}
AccountSetupCategoryScreen()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,14 @@ import org.example.project.data.repository.dataSource.CategoryDataSource
import org.example.project.data.repository.dataSource.memory.dto.CategoryEntity
import org.example.project.data.repository.mapper.toCategoryEntity
import org.example.project.domain.entity.Category
import org.koin.core.annotation.Provided
import org.koin.core.annotation.Single

class CategoryDataSourceImpl(val categoryList: List<Category>) : CategoryDataSource {
@Single(binds = [CategoryDataSource::class])
class CategoryDataSourceImpl(
@Provided val categoryList: List<Category>
) : CategoryDataSource {
override suspend fun getCategories(): List<CategoryEntity> {
return categoryList.map { it.toCategoryEntity() }
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,13 @@ import org.example.project.data.repository.dataSource.CategoryDataSource
import org.example.project.data.repository.mapper.toCategoryDomain
import org.example.project.domain.entity.Category
import org.example.project.domain.repository.CategoryRepository
import org.koin.core.annotation.Provided
import org.koin.core.annotation.Single

class CategoryRepositoryImpl(val dataSource: CategoryDataSource) : CategoryRepository {
@Single(binds = [CategoryRepository::class])
class CategoryRepositoryImpl(
@Provided val dataSource: CategoryDataSource
) : CategoryRepository {
override suspend fun getCategories(): List<Category> {
return dataSource.getCategories().map { it.toCategoryDomain() }
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package org.example.project.di

import org.koin.core.annotation.ComponentScan
import org.koin.core.annotation.Module

@Module
@ComponentScan("org.example.project")
class CraftoModule
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ package org.example.project.di

import org.koin.core.context.startKoin
import org.koin.dsl.KoinAppDeclaration
import org.koin.ksp.generated.module

fun initKoin(config: KoinAppDeclaration? = null) {
startKoin {
config?.invoke(this)
modules(sharedModules, platformModule)

modules(CraftoModule().module)
}
}
25 changes: 0 additions & 25 deletions composeApp/src/commonMain/kotlin/org/example/project/di/modules.kt

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,12 @@ package org.example.project.domain.usecase

import org.example.project.domain.entity.Category
import org.example.project.domain.repository.CategoryRepository
import org.koin.core.annotation.Provided
import org.koin.core.annotation.Single

class GetCategoriesUseCase(val repository: CategoryRepository) {
@Single
class GetCategoriesUseCase(
@Provided val repository: CategoryRepository) {
suspend operator fun invoke(): List<Category> {
return repository.getCategories()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import androidx.compose.ui.unit.dp
import org.example.project.data.memory.dataSource.categoryList
import org.example.project.presentation.designsystem.components.Chip
import org.example.project.presentation.designsystem.textstyle.AppTheme
import org.example.project.presentation.ui.extension.toAnimatedColor
import org.example.project.presentation.util.extension.toAnimatedColor
import org.example.project.presentation.viewmodel.accountSetup.AccountSetupCategoryState
import org.example.project.presentation.viewmodel.accountSetup.AccountSetupState
import org.jetbrains.compose.ui.tooling.preview.Preview
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import org.example.project.data.memory.dataSource.categoryList
import org.example.project.presentation.designsystem.components.ButtonState
import org.example.project.presentation.designsystem.components.PrimaryButton
import org.example.project.presentation.designsystem.textstyle.AppTheme
import org.example.project.presentation.ui.util.DeviceConfiguration
import org.example.project.presentation.util.DeviceConfiguration
import org.example.project.presentation.viewmodel.accountSetup.AccountSetupCategoryState
import org.example.project.presentation.viewmodel.accountSetup.AccountSetupState
import org.jetbrains.compose.resources.stringResource
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.example.project.presentation.ui.util
package org.example.project.presentation.util

import androidx.window.core.layout.WindowSizeClass

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package org.example.project.presentation.ui.extension
package org.example.project.presentation.util.extension

import androidx.compose.animation.animateColorAsState
import androidx.compose.animation.core.EaseInCirc
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@ import androidx.lifecycle.viewModelScope
import kotlinx.coroutines.launch
import org.example.project.domain.usecase.GetCategoriesUseCase
import org.example.project.presentation.viewmodel.base.BaseViewModel
import org.koin.android.annotation.KoinViewModel
import org.koin.core.annotation.Provided

@KoinViewModel
class AccountSetupViewModel(
private val getCategoriesUseCase: GetCategoriesUseCase,
@Provided private val getCategoriesUseCase : GetCategoriesUseCase
) : BaseViewModel<AccountSetupState, AccountSetupEffect>(AccountSetupState()),
AccountSetupInterActionListener {

Expand All @@ -16,7 +19,7 @@ class AccountSetupViewModel(

private fun fetchCategories() {
viewModelScope.launch {
val categories = getCategoriesUseCase()
val categories = getCategoriesUseCase.invoke()
updateState {
it.copy(
categoryState = it.categoryState.copy(categories = categories)
Expand All @@ -25,7 +28,6 @@ class AccountSetupViewModel(
}
}


override fun onCategorySelected(id: Int) {
updateState {
val categories = it.categoryState.categories.map { category ->
Expand All @@ -39,6 +41,5 @@ class AccountSetupViewModel(
categoryState = it.categoryState.copy(categories = categories)
)
}

}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
package org.example.project.di

import org.koin.dsl.module
import org.example.project.Platform

actual val platformModule = module {

}
class NativePlatform : Platform {
override val name: String = "Native"
}

fun getPlatform(): Platform = NativePlatform()
14 changes: 10 additions & 4 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ junit = "4.13.2"
kotlin = "2.2.20"
koin = "4.1.1"
koinComposeMultiplatform = "4.1.1"
ksp = "2.2.10-2.0.2"
koin-annotations = "2.1.0"



google-services = "4.4.3"
#newer version of firebase-bom causes gradle errors
Expand All @@ -40,11 +44,12 @@ firebase-bom = {group = "com.google.firebase", name = "firebase-bom", version.re
firebase-analytics = {group = "com.google.firebase", name = "firebase-analytics" }
firebase-crashlytics-ktx = { module = "com.google.firebase:firebase-crashlytics-ktx" }

koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" }
koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose", version.ref = "koin" }
#koin
koin-core = { module = "io.insert-koin:koin-core", version.ref = "koin" }
koin-compose = { module = "io.insert-koin:koin-compose", version.ref = "koinComposeMultiplatform" }
koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel", version.ref = "koinComposeMultiplatform" }
koin-ksp-compiler = { module = "io.insert-koin:koin-ksp-compiler", version.ref = "koin-annotations" }
koin-annotations = { module = "io.insert-koin:koin-annotations", version.ref = "koin-annotations" }
koin-compose = { module = "io.insert-koin:koin-compose", version.ref = "koin" }
koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel", version.ref = "koin" }

[plugins]
androidApplication = { id = "com.android.application", version.ref = "agp" }
Expand All @@ -54,3 +59,4 @@ composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "k
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
google-services = { id = "com.google.gms.google-services", version.ref = "google-services" }
firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebaseCrashlytics" }
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }