Kotlin 2.2.0 : focus sur le compilateur, le langage, Gradle

Par:
francoistonic

lun, 23/06/2025 - 19:35

Kotlin 2.2.0 est disponible depuis le 23 juin. Une version particulièrement riche : nouveautés du langage, le compilateur, l'interopérabilité avec la JVM / Native, Wasm et JavaScript, la librairie standard, Gradle et la documation. La 2.2.0 est disponible sur les dernières version d'IntelliJ IDEA et Android Studio. 

1 Langage

Kollin 2.2.0 propose plusieurs fonctionnalités expérimentales, par exemple, les paramètres de contexte : permet aux fonctions et propriétés de déclarer des dépendances disponibles dans un contexte précis, ou encore des annotations cibles "use-site"

2 Compliateur

Introduction, en expérimentation, d'une gestion unifiée des avertissements de compilation avec l'option -Xwarning-level. 

3 Interopérabilité

Kotlin met à jour les ponts avec la JVM. Le compilateur supporte le bytecode Java 24. Avec cette version, on voit apparaitre les annotations en lecture et écriture dans les metadonnées Kotlin. Ces annotations seront intégrées au niveau de la librairie Kotlin Metadata KVM. Autre expérimentation, l'introduction de @JVMExposeBoxed pour consommer plus facilement des classes inline value de Java. Côté Kotlin/Native, LLVM 19 est supporté. Et on peut tester l'encodage Latin-1 des strings dns le runtime. Le langage promet aussi une amélioration du tracking de la mémoire sur macOS. Côté Kotlin/Wasm, le langage propose que l'infrastructure build pour Wasm soit séparée de celle de JavaScript. Jusqu'à présent, on devait utiliser la même infrastructure pour cibler JS et Wasm. 

4 Divers

Gradle est à jour avec la version 8.14. Autre fonction expérimentale, la possibilité de vérifier la compatibilité binaire directement depuis le plugin Gradle. Autre nouveauté, l'apparition de la couleur dans les données de sorties sur la console durant le build Gradle pour améliorer la compréhension des rapports. Kotlin 2.2.0 introduit aussi un nouvel outil pour le build d'API. Il supporte Kotlin/JVM uniquement. 

Kotlin stabilise l'encodage et le décodage Base64.  

5 Casse compatibilité et dépréciations

Attention, Kotlin 2.2.0 introduit de nombreuses casses de codes et des dépréciations : 

- le support du build Ant est déprécié

- JSR-223 ne sera pas migré sur K2

- dépréciation de kotlin-android-extensions

La liste est longue. Avant de migrer vers Kotlin 2.2.0 vérifiez attentivement vos codes. 

Note de version : https://kotlinlang.org/docs/whatsnew22.html#optimizenonskippinggroups-feature-flag-enabled-by-default