Skip to content
Open
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
2 changes: 1 addition & 1 deletion .idea/compiler.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 0 additions & 8 deletions .idea/modules.xml

This file was deleted.

10 changes: 0 additions & 10 deletions .idea/runConfigurations.xml

This file was deleted.

16 changes: 7 additions & 9 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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)
Expand All @@ -36,31 +36,29 @@ 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")


/**
* 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
testImplementation("com.github.fabioCollini.daggermock:daggermock:0.8.5")
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.
Expand Down
20 changes: 12 additions & 8 deletions src/main/kotlin/com/myapp/ui/feature/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -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

/**
Expand All @@ -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()
}
}

Expand Down
6 changes: 3 additions & 3 deletions src/main/kotlin/com/myapp/ui/navigation/NavHostComponent.kt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down