Kotlin en 2025 : quoi de neuf ? Aperçu pratique
L'année 2025 a été marquante pour l'écosystème Kotlin. Le langage, qui a commencé comme un « Java amélioré » pour Android, s'est finalement transformé en un outil universel couvrant le développement serveur, le frontend web, les applications natives et même la Data Science. Dans cet article, nous analyserons les changements clés survenus dans Kotlin d'ici 2025 et les illustrerons avec des exemples de code concrets.
1. Kotlin Multiplatform (KMP) — stabilité et maturité
L'événement principal de ces dernières années est la sortie de Kotlin Multiplatform de la phase bêta et l'obtention du statut de produit stable. Si auparavant KMP était perçu comme une technologie expérimentale, en 2025, c'est la principale façon d'écrire de la logique métier multiplateforme.
Ce qui a changé :
- Prise en charge complète de
kotlinx.serializationpour toutes les plateformes « prête à l'emploi ». - Intégration améliorée avec Swift et Objective-C via le nouveau
@ObjCName. - Apparition d'un plugin officiel pour Gradle qui automatise la configuration des modules.
Exemple : code commun pour Android et iOS
// commonMainimport kotlinx.serialization.Serializableimport kotlinx.serialization.json.Json
@Serializabledata class User(val name: String, val age: Int)
class UserRepository { private val json = Json { ignoreUnknownKeys = true } fun parseUser(data: String): User { return json.decodeFromString(data) } fun greet(user: User): String { return "Hello, ${user.name}! You are ${user.age}." }}Désormais, ce code fonctionne sur Android (via Kotlin/JVM) et sur iOS (via Kotlin/Native) sans aucune modification. En 2025, il n'est pas nécessaire d'ajouter des annotations expérimentales supplémentaires — tout est stable.
2. Nouveau gestionnaire de paquets et DSL amélioré
En 2025, l'équipe JetBrains a présenté une version mise à jour de Gradle (8.10+) avec un DSL natif pour Kotlin. La principale innovation est la description déclarative des dépendances avec résolution automatique des conflits de versions.
Exemple de la nouvelle syntaxe build.gradle.kts :
plugins { kotlin("multiplatform") version "2.1.0" kotlin("plugin.serialization") version "2.1.0"}
kotlin { jvm() iosArm64() iosSimulatorArm64() sourceSets { commonMain.dependencies { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.0") } jvmMain.dependencies { implementation("io.ktor:ktor-server-netty:3.0.0") } }}
// Nouveau bloc pour la mise à jour automatique des versionsdependencyLocking { lockAllConfigurations() lockMode = LockMode.STRICT}De plus, la prise en charge intégrée des Version Catalogs (libs.versions.toml) est apparue, qui est désormais générée automatiquement lors du premier lancement.
3. Performances du compilateur et nouvelles fonctionnalités du langage
Kotlin 2.1 et 2.2 ont apporté des améliorations significatives de la vitesse de compilation. Selon les tests de JetBrains, la compilation incrémentielle est devenue 30 à 40 % plus rapide par rapport à Kotlin 1.9. Cela a été réalisé grâce au nouveau backend basé sur IR (Intermediate Representation), qui est désormais utilisé par défaut pour toutes les plateformes.
Fonctionnalités linguistiques clés de 2025 :
- Conditions de garde dans when — il est désormais possible d'ajouter des vérifications supplémentaires directement dans la condition.
- Context receivers — fonctionnalité stable pour l'injection de dépendances sans frameworks.
- Classes inline étendues — prise en charge de plusieurs paramètres et méthodes.
Exemple : Conditions de garde
fun process(value: An