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