Aller plus loin
Créer des annotations
Dans le chapitre La sérialisation et la désérialisation, nous avons utilisé des annotations sur des classes (@Serializable) et sur des attributs de classe (@SerialName).
Le langage Kotlin nous permet bien évidemment de créer nos propres annotations et de paramétrer très finement leur utilisation et leur comportement.
Surcharger les opérateurs d’une classe
En Kotlin, il est évidemment possible de faire des opérations mathématiques sur des nombres entiers ou décimaux avec les opérateurs mathématiques classiques (+, -, * et /). Et il est également possible de surcharger tous ces opérateurs pour les classes que nous créons.
Par exemple, on peut additionner deux instances d’une classe Dog pour en créer un troisième. Il suffit de surcharger l’opérateur + pour que son comportement soit celui attendu. Pour mettre en place un tel comportement, il faut utiliser le mot-clé operator.
L’interopérabilité avec Java
Le langage Kotlin est très jeune par rapport au langage Java. Même si Kotlin est de plus en plus utilisé, c’est Java qui est prépondérant dans le monde de l’entreprise. À titre d’exemple, énormément d’applications web tournent sous la technologie Java EE. En outre, Java est le langage historique des applications mobiles Android.
Si de nombreux programmes l’utilisent actuellement, de plus en plus souvent, les développeurs introduisent Kotlin pour développer de nouvelles fonctionnalités dans ces programmes nativement Java. Ceci est possible car Kotlin est interopérable avec le langage Java. Cela signifie que le code source d’un programme peut contenir aussi bien des fichiers écrits en Java que des fichiers écrits en Kotlin et qu’une classe écrite en Java peut être utilisée dans une classe Kotlin, et inversement.
Parfois, cette interopérabilité demande d’ajouter quelques annotations sur le code Kotlin. Aussi, si l’on rencontre des problèmes d’interopérabilité, il est toujours possible de se tourner vers les annotations @JvmName, @JvmStatic, @JvmOverloads, @Throws, etc.
Écrire et lire dans des fichiers
Dans le cadre de cet ouvrage, toute la partie permettant d’écrire ou de lire dans des fichiers a volontairement été passée sous silence. En effet, cet ouvrage se concentre uniquement sur le langage Kotlin. Or, la grosse partie des classes permettant d’écrire ou de lire dans des fichiers est en réalité héritée de Java.
Ce sont donc les classes Java que l’on manipule quand on lit ou qu’on écrit dans un fichier en Kotlin. Cependant, Kotlin apporte tout de même quelques méthodes pour faciliter la manipulation des fichiers par rapport à l’implémentation originale proposée dans le langage Java.
Tester un programme
Créer un programme ne se limite pas simplement à écrire du code et à l’exécuter. Programmer, c’est également s’assurer de la qualité du code que l’on produit afin de proposer un programme robuste qui ne comporte pas de régression au moindre changement dans son code source.
S’assurer de la non-régression d’un programme n’est pas une tâche évidente. Tout retester manuellement est envisageable quand le programme ne contient que quelques fonctionnalités et que son utilisation se limite à quelques scénarios bien précis. Mais dès que le programme devient trop conséquent, c’est une tâche impossible.
À chaque fois que l’on écrit du code, il convient d’écrire également des tests pour vérifier que le code produit fonctionne comme prévu, qu’il n’y a aucune régression fonctionnelle dans le code source de l’application, et ce à tous les niveaux du programme. Ce qui va de la simple fonction à l’interface graphique si le programme en contient une. C’est pour cela que l’on distingue généralement trois types de tests : les tests unitaires, les tests d’intégration et les tests d’interface graphique.
Certains développeurs utilisent ce que l’on...
Déboguer un programme
Coder n’est pas toujours évident. Parfois, le programme n’a pas le fonctionnement attendu et il n’est pas toujours simple de comprendre pourquoi. Comment savoir si le programme rentre bien dans telle ou telle condition, comment connaître la valeur d’une variable à un instant T dans le programme, etc. ?
La réponse se trouve dans les outils de débogage disponibles dans IntelliJ IDEA. Il est possible par exemple d’arrêter l’exécution d’un programme à une ligne précise du code source afin d’évaluer la valeur d’une variable ou d’une expression grâce à ce qu’on appelle un point d’arrêt. Maîtriser ces outils de débogage et avoir le réflexe de les utiliser est indispensable pour gagner en efficacité et devenir un bon développeur.