diff --git a/.idea/compiler.xml b/.idea/compiler.xml index b73660a..fb7f4a8 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index cab170e..d384b66 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index dfc8711..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 797acea..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 69b535f..8509946 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -3,10 +3,10 @@ import org.jetbrains.compose.desktop.application.dsl.TargetFormat import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - val kotlinVersion = "1.5.31" + val kotlinVersion = "1.6.10" kotlin("jvm") version kotlinVersion kotlin("kapt") version kotlinVersion - id("org.jetbrains.compose") version "1.0.0-beta1" + id("org.jetbrains.compose") version "1.1.0" } group = "com.myapp" @@ -20,7 +20,7 @@ repositories { maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") } } -val daggerVersion by extra("2.39.1") +val daggerVersion by extra("2.41") dependencies { implementation(compose.desktop.currentOs) @@ -36,7 +36,7 @@ dependencies { implementation("com.theapache64:cyclone:1.0.0-alpha01") // Decompose : Decompose - val decomposeVersion = "0.2.5" + val decomposeVersion = "0.5.1" implementation("com.arkivanov.decompose:decompose-jvm:$decomposeVersion") implementation("com.arkivanov.decompose:extensions-compose-jetbrains-jvm:$decomposeVersion") @@ -44,7 +44,7 @@ dependencies { /** * Testing Dependencies */ - testImplementation("org.mockito:mockito-inline:3.7.7") + testImplementation("org.mockito:mockito-inline:4.3.1") testImplementation("com.nhaarman.mockitokotlin2:mockito-kotlin:2.2.0") // DaggerMock @@ -52,15 +52,13 @@ dependencies { testImplementation("com.github.fabioCollini.daggermock:daggermock-kotlin:0.8.5") // Mockito Core : Mockito mock objects library core API and implementation - testImplementation("org.mockito:mockito-core:3.7.7") + testImplementation("org.mockito:mockito-core:4.3.1") // Expekt : An assertion library for Kotlin testImplementation("com.github.theapache64:expekt:1.0.0") - // JUnit - // Kotlinx Coroutines Test : Coroutines support libraries for Kotlin - testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.4.3") + testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0") testImplementation(compose("org.jetbrains.compose.ui:ui-test-junit4")) // JUnit : JUnit is a unit testing framework for Java, created by Erich Gamma and Kent Beck. diff --git a/src/main/kotlin/com/myapp/ui/feature/MainActivity.kt b/src/main/kotlin/com/myapp/ui/feature/MainActivity.kt index 892a4d8..a635fd0 100644 --- a/src/main/kotlin/com/myapp/ui/feature/MainActivity.kt +++ b/src/main/kotlin/com/myapp/ui/feature/MainActivity.kt @@ -1,19 +1,17 @@ package com.myapp.ui.feature import androidx.compose.ui.res.painterResource -import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Window -import androidx.compose.ui.window.application import androidx.compose.ui.window.rememberWindowState -import com.arkivanov.decompose.extensions.compose.jetbrains.rememberRootComponent +import com.arkivanov.decompose.DefaultComponentContext +import com.arkivanov.decompose.extensions.compose.jetbrains.lifecycle.LifecycleController +import com.arkivanov.essenty.lifecycle.LifecycleRegistry import com.myapp.App import com.myapp.ui.navigation.NavHostComponent import com.myapp.ui.value.MyAppTheme import com.theapache64.cyclone.core.Activity import com.theapache64.cyclone.core.Intent -import java.awt.image.BufferedImage -import javax.imageio.ImageIO import androidx.compose.ui.window.application as setContent /** @@ -31,17 +29,23 @@ class MainActivity : Activity() { override fun onCreate() { super.onCreate() + val lifecycle = LifecycleRegistry() + setContent { + + val windowState = rememberWindowState(width = 720.dp, height = 720.dp) + + LifecycleController(lifecycle, windowState) + Window( onCloseRequest = ::exitApplication, title = "${App.appArgs.appName} (${App.appArgs.version})", icon = painterResource("drawables/launcher_icons/system.png"), - state = rememberWindowState(width = 1024.dp, height = 600.dp), + state = windowState, ) { MyAppTheme { // Igniting navigation - rememberRootComponent(factory = ::NavHostComponent) - .render() + NavHostComponent(DefaultComponentContext(lifecycle)).render() } } diff --git a/src/main/kotlin/com/myapp/ui/navigation/NavHostComponent.kt b/src/main/kotlin/com/myapp/ui/navigation/NavHostComponent.kt index 0ab6a19..2f79308 100644 --- a/src/main/kotlin/com/myapp/ui/navigation/NavHostComponent.kt +++ b/src/main/kotlin/com/myapp/ui/navigation/NavHostComponent.kt @@ -4,9 +4,9 @@ import androidx.compose.runtime.Composable import com.arkivanov.decompose.ComponentContext import com.arkivanov.decompose.extensions.compose.jetbrains.Children import com.arkivanov.decompose.extensions.compose.jetbrains.animation.child.crossfadeScale -import com.arkivanov.decompose.replaceCurrent -import com.arkivanov.decompose.router -import com.arkivanov.decompose.statekeeper.Parcelable +import com.arkivanov.decompose.router.replaceCurrent +import com.arkivanov.decompose.router.router +import com.arkivanov.essenty.parcelable.Parcelable import com.myapp.di.AppComponent import com.myapp.di.DaggerAppComponent import com.myapp.ui.feature.main.MainScreenComponent