meldestelle/docs/02_Reference/Tech_Stack/Kotlin_2-3-0_ReleaseNotes.md
Stefan Mogeritsch f4563a3da3 docs: add new documentation for API Gateway, core model, and backend structure
Introduced detailed documentation for the API Gateway, including its configuration and responsibilities in the system (e.g., routing, security, and cross-cutting concerns). Added a README for the core model directory to define its structure and workflow. Created a new backend README to describe its components and their documentation structure. Simplified and clarified legacy specifications for archiving purposes.
2026-01-15 13:53:56 +01:00

3.6 KiB

What's new in Kotlin 2.3.0

Quelle: Original Kotlin Documentation Datum des Dokuments: 16. Dezember 2025 Kontext: Dieses Dokument dient als Referenz für die im Projekt verwendete Kotlin-Version.


The Kotlin 2.3.0 release is out! Here are the main highlights:

  • Language: More stable and default features, unused return value checker, explicit backing fields, and changes to context-sensitive resolution.
  • Kotlin/JVM: Support for Java 25.
  • Kotlin/Native: Improved interop through Swift export, faster build time for release tasks, C and Objective-C library import in Beta.
  • Kotlin/Wasm: Fully qualified names and new exception handling proposal enabled by default, as well as new compact storage for Latin-1 characters.
  • Kotlin/JS: New experimental suspend function export, LongArray representation, unified companion object access, and more.
  • Gradle: Compatibility with Gradle 9.0 and a new API for registering generated sources.
  • Compose compiler: Stack traces for minified Android applications.
  • Standard library: Stable time tracking functionality and improved UUID generation and parsing.

Language

Kotlin 2.3.0 focuses on feature stabilization, introduces a new mechanism for detecting unused return values, and improves context-sensitive resolution.

Stable features

The following features have now graduated to Stable:

  • Support for nested type aliases
  • Data-flow-based exhaustiveness checks for when expressions

Features enabled by default

  • Support for return statements in expression bodies with explicit return types is now enabled by default.

Experimental: Unused return value checker

Kotlin 2.3.0 introduces the unused return value checker to help prevent ignored results.

Experimental: Explicit backing fields

A new syntax for explicitly declaring the underlying field that holds a property's value, simplifying the common backing properties pattern.

Kotlin/JVM: Support for Java 25

Starting with Kotlin 2.3.0, the compiler can generate classes containing Java 25 bytecode.

Kotlin/Native

  • Improved Swift Export: Direct mapping for native enum classes and variadic function parameters.
  • C and Objective-C Library Import is in Beta: Better diagnostics for binary compatibility issues.
  • Faster Build Time: Up to 40% faster release builds, especially for iOS targets.

Kotlin/Wasm

  • Fully Qualified Names Enabled by Default: KClass.qualifiedName is now available at runtime without extra configuration.
  • Compact Storage for Latin-1 Characters: Reduces metadata and binary size.
  • New Exception Handling for wasmWasi: Enabled by default for better compatibility with modern WebAssembly runtimes.

Kotlin/JS

  • Experimental Suspend Function Export: Export suspend functions directly to JavaScript using @JsExport.
  • BigInt64Array for LongArray: Simplifies interop with JavaScript APIs that use typed arrays.
  • Unified Companion Object Access: Consistent access to companion objects in interfaces across all JS module systems.

Gradle

  • Fully compatible with Gradle 7.6.3 through 9.0.0.
  • New experimental API for registering generated sources.

Standard library

  • Stable Time Tracking: kotlin.time.Clock and kotlin.time.Instant are now stable.
  • Improved UUID Generation: New functions like Uuid.parseOrNull(), Uuid.generateV4(), and Uuid.generateV7().

Compose compiler

  • Stack Traces for Minified Android Apps: The compiler now outputs ProGuard mappings for Compose stack traces when applications are minified by R8.