Skip to content

1.2.0

Choose a tag to compare

@kdroidFilter kdroidFilter released this 09 Apr 20:52
7cc7266

What's Changed

JNA completely removed ? JNI everywhere

The entire native layer has been rewritten. JNA has been fully removed on all three platforms (macOS, Linux, Windows) and replaced by JNI.

Linux native rewritten in C ~20x smaller

The Linux native library has been rewritten from Go to C, reducing the packaged binary size by approximately 20x.

Linux ARM64 support

Native Linux libraries are now compiled for both x86_64 and aarch64, bringing first-class support for Linux ARM64 devices.

GraalVM native-image compatibility

ComposeNativeTray is now compatible with Nucleus GraalVM native-image compilation. Reachability metadata, native-image properties, and a dedicated NativeLibraryLoader have been added to ensure proper resource extraction at runtime.

Build system restructured

  • Native sources moved to src/native/{macos,windows,linux}/ with per-platform build scripts
  • Kotlin sources migrated from commonMain to jvmMain
  • New reusable CI workflow for native builds
  • Added Detekt + Ktlint for code quality
  • Upgraded to Gradle 9.4.1

Bug fixes

  • Fixed macOS Space behavior dispatch on main thread
  • Fixed GraalVM JNI method lookup via FindClass on interfaces

Full Changelog: v1.1.0...v1.2.0