DEV Community

Chanbong Park
Chanbong Park

Posted on

Getting Started with Compose for Desktop: Build Your First App

Image description

Post Overview

1. Introduction to Compose for Desktop

  • Compose for Desktop is an extension of Jetpack Compose that allows building desktop applications using Kotlin.
  • Supports multiple platforms (Windows, macOS, Linux).
  • Provides a modern UI development approach compared to Swing.

2. Setting Up the Environment

  • Install JDK 17 or higher.
  • Install IntelliJ IDEA (Ultimate or Community).
  • Create a Gradle project and configure Compose for Desktop.

3. Building a Simple Sample App

  • A basic GUI app that displays “Hello, Compose for Desktop!” with a button.

Creating a Simple Sample App

Here’s how to build a basic Compose for Desktop application.


1. Gradle Project Setup

Modify your build.gradle.kts file to include Compose for Desktop.

plugins {
    kotlin("jvm")
    id("org.jetbrains.compose")
    id("org.jetbrains.kotlin.plugin.compose")
}

group = "com.example"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
    google()
}

dependencies {
    implementation(compose.desktop.currentOs)
}

compose.desktop {
    application {
        mainClass = "MainKt"
    }
}
Enter fullscreen mode Exit fullscreen mode

2. Writing the Main Code

Create a file src/main/kotlin/Main.kt and add the following code:

import androidx.compose.desktop.ui.tooling.preview.Preview
import androidx.compose.foundation.layout.*
import androidx.compose.material.Button
import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text
import androidx.compose.runtime.*
import androidx.compose.ui.*
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.*

fun main() = application {
    Window(onCloseRequest = ::exitApplication, title = "Compose for Desktop App") {
        App()
    }
}

@Composable
@Preview
fun App() {
    var count by remember { mutableStateOf(0) }

    Column(
        modifier = Modifier.padding(16.dp),
        verticalArrangement = Arrangement.spacedBy(8.dp)
    ) {
        Text("Hello, Compose for Desktop!", style = MaterialTheme.typography.h3)
        Button(onClick = { count++ }) {
            Text("Click me: $count")
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

3. Running the App

Run the following command in the terminal:

./gradlew run
Enter fullscreen mode Exit fullscreen mode

Or simply run Main.kt from IntelliJ IDEA.
That’s it! You now have a basic Compose for Desktop application up and running. 🚀

Image description

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs