La sortie de Kotlin 1.2 apporte son lot d’améliorations dont la possibilité d’utiliser le même code entre les différentes couches d’une application : cela permet par exemple de partager la logique métier de votre application entre le backend, un navigateur frontend et une application mobile Android.
Développement multiplateforme
Un projet multiplateforme en Kotlin contient des modules communs dont le code est indépendant de la plateforme cible, et des modules spécifiques à une plateforme (JVM, JS) qui pourront utiliser les librairies de cette plateforme.
Lorsqu’une fonctionnalité doit être spécifiquement codée pour une plateforme cible, il suffit de déclarer dans un module commun que la fonction est expected
, chaque module plateforme devra alors fournir une implémentation annotée actual
de cette fonction.
L’idée, bien sûr, est de réduire au maximum le besoin des implémentations spécifiques afin de s’assurer que le maximum de code sera réutilisable entre les différentes plateformes, c’est pourquoi l’équipe de Kotlin travaille au développement de plusieurs librairies communes :
- kotlin.test permet d'exécuter ses tests communs sur les plateformes JVM et JS.
- Kotlinx.serialization fournit des fonctions de sérialisation des objets Kotlin au format JSON ou ProtoBuf.
- Kotlinx.html supporte un rendu isomorphique du HTML en backend comme en frontend.
Améliorations des performances du compilateur
La version 1.2 affiche également de nouvelles performances pour le compilateur avec des gains de l’ordre de 25% sur les temps de compilation.
Autres évolutions du langage
Plusieurs autres évolutions ont été livrées avec cette version 1.2 comme une librairie standard kotlin.math
, ainsi que de nouvelles fonctionnalités pour travailler avec les séquences et les collections.
L’équipe en charge du langage chez Jetbrains annonce également que de nouvelles optimisations du compilateur seront livrées au cours des versions 1.2.x afin de réduire encore les temps de compilation.
Les prochaines fonctionnalités
Kotlin est en développement très actif. 50 personnes chez JetBrains sont affectées au projet. L’objectif est de continuer d’apporter de nouvelles fonctionnalités au langage et de compléter l’écosystème.
La prochaine fonctionnalité majeure est Kotlin/Native qui permettra d’utiliser Kotlin pour une compilation native (sans l’utilisation de machine virtuelle). L’intérêt majeur sera la possibilité de partager du code d’application mobile entre Android et iOS. Une équipe dédiée y travaille depuis plus d’un an et l'on peut s'attendre à des annonces courant 2018.
Par ailleurs, JetBrains travaille également sur l’élargissement des fonctionnalités des librairies multiplateformes. Il manque encore aujourd’hui des API et des librairies pour la gestion des dates, les appels HTTP et d’autres fonctions de bases courantes dans toutes les applications modernes.
Après une année 2017 très riche, 2018 s’annonce tout aussi passionnante pour les développeurs Kotlin.